-- GENERATED by C->Haskell Compiler, version 0.28.6 Switcheroo, 25 November 2017 (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,
  spotri,
  dpotri,
  cpotri,
  zpotri,
  spotri_bufferSize,
  dpotri_bufferSize,
  cpotri_bufferSize,
  zpotri_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 107 "./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 119 "./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 122 "./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 125 "./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 128 "./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 131 "./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 134 "./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 137 "./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 140 "./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 143 "./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 146 "./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 149 "./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 152 "./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 155 "./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 158 "./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 161 "./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 164 "./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 167 "./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 170 "./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 173 "./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 176 "./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 179 "./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 182 "./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 185 "./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 188 "./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 191 "./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 194 "./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 197 "./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 200 "./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 203 "./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 206 "./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 209 "./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 212 "./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 215 "./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 218 "./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 221 "./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 224 "./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 227 "./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 230 "./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 233 "./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 236 "./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 239 "./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 242 "./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 245 "./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 249 "./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 252 "./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 255 "./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 258 "./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 261 "./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 264 "./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 267 "./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 270 "./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 273 "./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 276 "./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 279 "./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 282 "./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 324 "./Foreign/CUDA/Solver/Dense/Linear.chs" #-}


{-# INLINEABLE spotri #-}
spotri :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Float) -> (Int) -> (DevicePtr Int32) -> IO ()
spotri 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 
  spotri'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >> 
  return ()

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


{-# INLINEABLE dpotri #-}
dpotri :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Double) -> (Int) -> (DevicePtr Int32) -> IO ()
dpotri 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 
  dpotri'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >> 
  return ()

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


{-# INLINEABLE cpotri #-}
cpotri :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> (DevicePtr Int32) -> IO ()
cpotri 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 
  cpotri'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >> 
  return ()

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


{-# INLINEABLE zpotri #-}
zpotri :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> (DevicePtr Int32) -> IO ()
zpotri 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 
  zpotri'_ a1' a2' a3' a4' a5' a6' a7' a8' >>= \res ->
  checkStatus res >> 
  return ()

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


{-# INLINEABLE spotri_bufferSize #-}
spotri_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Float) -> (Int) -> IO ((Int))
spotri_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' -> 
  spotri_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >> 
  peekIntConv  a6'>>= \a6'' -> 
  return (a6'')

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


{-# INLINEABLE dpotri_bufferSize #-}
dpotri_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr Double) -> (Int) -> IO ((Int))
dpotri_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' -> 
  dpotri_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >> 
  peekIntConv  a6'>>= \a6'' -> 
  return (a6'')

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


{-# INLINEABLE cpotri_bufferSize #-}
cpotri_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Float)) -> (Int) -> IO ((Int))
cpotri_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' -> 
  cpotri_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >> 
  peekIntConv  a6'>>= \a6'' -> 
  return (a6'')

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


{-# INLINEABLE zpotri_bufferSize #-}
zpotri_bufferSize :: (Handle) -> (Fill) -> (Int) -> (DevicePtr (Complex Double)) -> (Int) -> IO ((Int))
zpotri_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' -> 
  zpotri_bufferSize'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  checkStatus res >> 
  peekIntConv  a6'>>= \a6'' -> 
  return (a6'')

{-# LINE 374 "./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)))))))))))))

foreign import ccall unsafe "Foreign/CUDA/Solver/Dense/Linear.chs.h cusolverDnSpotri"
  spotri'_ :: ((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 cusolverDnDpotri"
  dpotri'_ :: ((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 cusolverDnCpotri"
  cpotri'_ :: ((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 cusolverDnZpotri"
  zpotri'_ :: ((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 cusolverDnSpotri_bufferSize"
  spotri_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 cusolverDnDpotri_bufferSize"
  dpotri_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 cusolverDnCpotri_bufferSize"
  cpotri_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 cusolverDnZpotri_bufferSize"
  zpotri_bufferSize'_ :: ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> (C2HSImp.CInt -> ((C2HSImp.Ptr ()) -> (C2HSImp.CInt -> ((C2HSImp.Ptr C2HSImp.CInt) -> (IO C2HSImp.CInt)))))))