-- GENERATED by C->Haskell Compiler, version 0.28.2 Switcheroo, 1 April 2016 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}
--
-- This module is auto-generated. Do not edit directly.
--

{-# LANGUAGE CPP #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
-- |
-- Module      : Foreign.CUDA.Solver.Dense.Linear
-- Copyright   : [2017] Trevor L. McDonell
-- License     : BSD3
--
-- Maintainer  : Trevor L. McDonell <tmcdonell@cse.unsw.edu.au>
-- Stability   : experimental
-- Portability : non-portable (GHC extensions)
--
-- For more information see the cuSolver function reference:
--
-- <http://docs.nvidia.com/cuda/cusolver/index.html#cuds-linearsolver-reference>
--

module Foreign.CUDA.Solver.Dense.Linear (

  Handle,
  Fill(..),
  Side(..),
  spotrf_bufferSize,
  dpotrf_bufferSize,
  cpotrf_bufferSize,
  zpotrf_bufferSize,
  spotrf,
  dpotrf,
  cpotrf,
  zpotrf,
  spotrs,
  dpotrs,
  cpotrs,
  zpotrs,
  sgetrf_bufferSize,
  dgetrf_bufferSize,
  cgetrf_bufferSize,
  zgetrf_bufferSize,
  sgetrf,
  dgetrf,
  cgetrf,
  zgetrf,
  sgetrs,
  dgetrs,
  cgetrs,
  zgetrs,
  sgeqrf_bufferSize,
  dgeqrf_bufferSize,
  cgeqrf_bufferSize,
  zgeqrf_bufferSize,
  sgeqrf,
  dgeqrf,
  cgeqrf,
  zgeqrf,
  sormqr,
  dormqr,
  cunmqr,
  zunmqr,
  ssytrf_bufferSize,
  dsytrf_bufferSize,
  csytrf_bufferSize,
  zsytrf_bufferSize,
  ssytrf,
  dsytrf,
  csytrf,
  zsytrf,
  sorgqr_bufferSize,
  dorgqr_bufferSize,
  cungqr_bufferSize,
  zungqr_bufferSize,
  sorgqr,
  dorgqr,
  cungqr,
  zungqr,
  sormqr_bufferSize,
  dormqr_bufferSize,
  cunmqr_bufferSize,
  zunmqr_bufferSize,

) where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp



import Data.Complex
import Foreign
import Foreign.C
import Foreign.Storable.Complex ()
import Foreign.CUDA.Ptr
import Foreign.CUDA.Solver.Dense.Context
import Foreign.CUDA.Solver.Dense.Analysis
import Foreign.CUDA.Solver.Error
import Foreign.CUDA.Solver.Internal.C2HS
import Foreign.CUDA.Solver.Internal.Types



{-# LINE 99 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINE useDevP #-}
useDevP :: DevicePtr a -> Ptr b
useDevP = useDevicePtr . castDevPtr

{-# INLINE useHostP #-}
useHostP :: HostPtr a -> Ptr b
useHostP = useHostPtr . castHostPtr


{-# INLINEABLE spotrf_bufferSize #-}
spotrf_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Float) -> (Int) -> IO ((Int))
spotrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  spotrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 111 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dpotrf_bufferSize #-}
dpotrf_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Double) -> (Int) -> IO ((Int))
dpotrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  dpotrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 114 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cpotrf_bufferSize #-}
cpotrf_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> IO ((Int))
cpotrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  cpotrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 117 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zpotrf_bufferSize #-}
zpotrf_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> IO ((Int))
zpotrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  zpotrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 120 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE spotrf #-}
spotrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
spotrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  spotrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 123 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dpotrf #-}
dpotrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dpotrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  dpotrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 126 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cpotrf #-}
cpotrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
cpotrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  cpotrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 129 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zpotrf #-}
zpotrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zpotrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = fromIntegral a7} in
  let {a8' = useDevP a8} in
  zpotrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 132 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE spotrs #-}
spotrs :: (Handle) -> (Fill) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
spotrs a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  spotrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 135 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dpotrs #-}
dpotrs :: (Handle) -> (Fill) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dpotrs a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  dpotrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 138 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cpotrs #-}
cpotrs :: (Handle) -> (Fill) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
cpotrs a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  cpotrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 141 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zpotrs #-}
zpotrs :: (Handle) -> (Fill) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zpotrs a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  zpotrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 144 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sgetrf_bufferSize #-}
sgetrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> IO ((Int))
sgetrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  sgetrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 147 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dgetrf_bufferSize #-}
dgetrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> IO ((Int))
dgetrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  dgetrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 150 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cgetrf_bufferSize #-}
cgetrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> IO ((Int))
cgetrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  cgetrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 153 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zgetrf_bufferSize #-}
zgetrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> IO ((Int))
zgetrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  zgetrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 156 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sgetrf #-}
sgetrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
sgetrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  sgetrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 159 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dgetrf #-}
dgetrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
dgetrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  dgetrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 162 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cgetrf #-}
cgetrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
cgetrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  cgetrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 165 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zgetrf #-}
zgetrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr Int32) -> (DevicePtr Int32) -> IO ()
zgetrf a1 a2 a3 a4 a5 a6 a7 a8 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  zgetrf'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 168 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sgetrs #-}
sgetrs :: (Handle) -> (Operation) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
sgetrs a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  sgetrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 171 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dgetrs #-}
dgetrs :: (Handle) -> (Operation) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dgetrs a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  dgetrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 174 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cgetrs #-}
cgetrs :: (Handle) -> (Operation) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
cgetrs a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  cgetrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 177 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zgetrs #-}
zgetrs :: (Handle) -> (Operation) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zgetrs a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  zgetrs'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 180 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sgeqrf_bufferSize #-}
sgeqrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> IO ((Int))
sgeqrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  sgeqrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 183 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dgeqrf_bufferSize #-}
dgeqrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> IO ((Int))
dgeqrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  dgeqrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 186 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cgeqrf_bufferSize #-}
cgeqrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> IO ((Int))
cgeqrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  cgeqrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 189 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zgeqrf_bufferSize #-}
zgeqrf_bufferSize :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> IO ((Int))
zgeqrf_bufferSize a1 a2 a3 a4 a5 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  alloca $ \a6' ->
  zgeqrf_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >>
  peekIntConv  a6'>>= \a6'' ->
  return (a6'')

{-# LINE 192 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sgeqrf #-}
sgeqrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
sgeqrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  sgeqrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 195 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dgeqrf #-}
dgeqrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dgeqrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  dgeqrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 198 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cgeqrf #-}
cgeqrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
cgeqrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  cgeqrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 201 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zgeqrf #-}
zgeqrf :: (Handle) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zgeqrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  zgeqrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 204 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sormqr #-}
sormqr :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
sormqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = useDevP a14} in
  sormqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 207 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dormqr #-}
dormqr :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dormqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = useDevP a14} in
  dormqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 210 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cunmqr #-}
cunmqr :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
cunmqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = useDevP a14} in
  cunmqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 213 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zunmqr #-}
zunmqr :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zunmqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  let {a12' = useDevP a12} in
  let {a13' = fromIntegral a13} in
  let {a14' = useDevP a14} in
  zunmqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' a13' a14' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 216 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE ssytrf_bufferSize #-}
ssytrf_bufferSize :: (Handle) -> (Int) -> (DevicePtr Float) -> (Int) -> IO ((Int))
ssytrf_bufferSize a1 a2 a3 a4 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useDevP a3} in
  let {a4' = fromIntegral a4} in
  alloca $ \a5' ->
  ssytrf_bufferSize'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  peekIntConv  a5'>>= \a5'' ->
  return (a5'')

{-# LINE 219 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dsytrf_bufferSize #-}
dsytrf_bufferSize :: (Handle) -> (Int) -> (DevicePtr Double) -> (Int) -> IO ((Int))
dsytrf_bufferSize a1 a2 a3 a4 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useDevP a3} in
  let {a4' = fromIntegral a4} in
  alloca $ \a5' ->
  dsytrf_bufferSize'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  peekIntConv  a5'>>= \a5'' ->
  return (a5'')

{-# LINE 222 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE csytrf_bufferSize #-}
csytrf_bufferSize :: (Handle) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> IO ((Int))
csytrf_bufferSize a1 a2 a3 a4 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useDevP a3} in
  let {a4' = fromIntegral a4} in
  alloca $ \a5' ->
  csytrf_bufferSize'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  peekIntConv  a5'>>= \a5'' ->
  return (a5'')

{-# LINE 225 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zsytrf_bufferSize #-}
zsytrf_bufferSize :: (Handle) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> IO ((Int))
zsytrf_bufferSize a1 a2 a3 a4 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = useDevP a3} in
  let {a4' = fromIntegral a4} in
  alloca $ \a5' ->
  zsytrf_bufferSize'_ a1' a2' a3' a4' a5' >>= \res ->
  checkStatus res >>
  peekIntConv  a5'>>= \a5'' ->
  return (a5'')

{-# LINE 228 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE ssytrf #-}
ssytrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
ssytrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  ssytrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 231 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dsytrf #-}
dsytrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dsytrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  dsytrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 234 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE csytrf #-}
csytrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
csytrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  csytrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 237 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zsytrf #-}
zsytrf :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zsytrf a1 a2 a3 a4 a5 a6 a7 a8 a9 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = useDevP a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = useDevP a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  zsytrf'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 241 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sorgqr_bufferSize #-}
sorgqr_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> IO ((Int))
sorgqr_bufferSize a1 a2 a3 a4 a5 a6 a7 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  alloca $ \a8' ->
  sorgqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  peekIntConv  a8'>>= \a8'' ->
  return (a8'')

{-# LINE 244 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dorgqr_bufferSize #-}
dorgqr_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> IO ((Int))
dorgqr_bufferSize a1 a2 a3 a4 a5 a6 a7 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  alloca $ \a8' ->
  dorgqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  peekIntConv  a8'>>= \a8'' ->
  return (a8'')

{-# LINE 247 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cungqr_bufferSize #-}
cungqr_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> IO ((Int))
cungqr_bufferSize a1 a2 a3 a4 a5 a6 a7 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  alloca $ \a8' ->
  cungqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  peekIntConv  a8'>>= \a8'' ->
  return (a8'')

{-# LINE 250 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zungqr_bufferSize #-}
zungqr_bufferSize :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> IO ((Int))
zungqr_bufferSize a1 a2 a3 a4 a5 a6 a7 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  alloca $ \a8' ->
  zungqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >>
  peekIntConv  a8'>>= \a8'' ->
  return (a8'')

{-# LINE 253 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sorgqr #-}
sorgqr :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
sorgqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  sorgqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 256 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dorgqr #-}
dorgqr :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dorgqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  dorgqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 259 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cungqr #-}
cungqr :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
cungqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  cungqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 262 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zungqr #-}
zungqr :: (Handle) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zungqr a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 =
  let {a1' = useHandle a1} in
  let {a2' = fromIntegral a2} in
  let {a3' = fromIntegral a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = useDevP a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = useDevP a8} in
  let {a9' = fromIntegral a9} in
  let {a10' = useDevP a10} in
  zungqr'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' >>= \res ->
  checkStatus res >>
  return ()

{-# LINE 265 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE sormqr_bufferSize #-}
sormqr_bufferSize :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (DevicePtr Float) -> (Int) -> IO ((Int))
sormqr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  alloca $ \a12' ->
  sormqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  peekIntConv  a12'>>= \a12'' ->
  return (a12'')

{-# LINE 268 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE dormqr_bufferSize #-}
dormqr_bufferSize :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (DevicePtr Double) -> (Int) -> IO ((Int))
dormqr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  alloca $ \a12' ->
  dormqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  peekIntConv  a12'>>= \a12'' ->
  return (a12'')

{-# LINE 271 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE cunmqr_bufferSize #-}
cunmqr_bufferSize :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (DevicePtr (Complex Float)) -> (Int) -> IO ((Int))
cunmqr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  alloca $ \a12' ->
  cunmqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  peekIntConv  a12'>>= \a12'' ->
  return (a12'')

{-# LINE 274 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE zunmqr_bufferSize #-}
zunmqr_bufferSize :: (Handle) -> (Side) -> (Operation) -> (Int) -> (Int) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (DevicePtr (Complex Double)) -> (Int) -> IO ((Int))
zunmqr_bufferSize a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 =
  let {a1' = useHandle a1} in
  let {a2' = cFromEnum a2} in
  let {a3' = cFromEnum a3} in
  let {a4' = fromIntegral a4} in
  let {a5' = fromIntegral a5} in
  let {a6' = fromIntegral a6} in
  let {a7' = useDevP a7} in
  let {a8' = fromIntegral a8} in
  let {a9' = useDevP a9} in
  let {a10' = useDevP a10} in
  let {a11' = fromIntegral a11} in
  alloca $ \a12' ->
  zunmqr_bufferSize'_ a1' a2' a3' a4' a5' a6' a7' a8' a9' a10' a11' a12' >>= \res ->
  checkStatus res >>
  peekIntConv  a12'>>= \a12'' ->
  return (a12'')

{-# LINE 315 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSpotrf_bufferSize"
  spotrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDpotrf_bufferSize"
  dpotrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCpotrf_bufferSize"
  cpotrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZpotrf_bufferSize"
  zpotrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSpotrf"
  spotrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDpotrf"
  dpotrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCpotrf"
  cpotrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZpotrf"
  zpotrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSpotrs"
  spotrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDpotrs"
  dpotrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCpotrs"
  cpotrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZpotrs"
  zpotrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSgetrf_bufferSize"
  sgetrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDgetrf_bufferSize"
  dgetrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCgetrf_bufferSize"
  cgetrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZgetrf_bufferSize"
  zgetrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSgetrf"
  sgetrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDgetrf"
  dgetrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCgetrf"
  cgetrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZgetrf"
  zgetrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSgetrs"
  sgetrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDgetrs"
  dgetrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCgetrs"
  cgetrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZgetrs"
  zgetrs'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSgeqrf_bufferSize"
  sgeqrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDgeqrf_bufferSize"
  dgeqrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCgeqrf_bufferSize"
  cgeqrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZgeqrf_bufferSize"
  zgeqrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSgeqrf"
  sgeqrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDgeqrf"
  dgeqrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCgeqrf"
  cgeqrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZgeqrf"
  zgeqrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSormqr"
  sormqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDormqr"
  dormqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCunmqr"
  cunmqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZunmqr"
  zunmqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSsytrf_bufferSize"
  ssytrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDsytrf_bufferSize"
  dsytrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCsytrf_bufferSize"
  csytrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZsytrf_bufferSize"
  zsytrf_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSsytrf"
  ssytrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDsytrf"
  dsytrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCsytrf"
  csytrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZsytrf"
  zsytrf'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSorgqr_bufferSize"
  sorgqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDorgqr_bufferSize"
  dorgqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCungqr_bufferSize"
  cungqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZungqr_bufferSize"
  zungqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSorgqr"
  sorgqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDorgqr"
  dorgqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCungqr"
  cungqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZungqr"
  zungqr'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSormqr_bufferSize"
  sormqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CFloat) -> ((C2HSImp.Ptr C2HSImp.CFloat) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnDormqr_bufferSize"
  dormqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CDouble) -> ((C2HSImp.Ptr C2HSImp.CDouble) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnCunmqr_bufferSize"
  cunmqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnZunmqr_bufferSize"
  zunmqr_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))))))))