-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | FFI bindings to the CUDA Sparse BLAS library
--
-- The cuSPARSE library contains a set of basic linear algebra
-- subroutines for handling sparse matrices on NVIDIA GPUs. Sparse
-- vectors and matrices are those where the majority of elements are
-- zero. Sparse BLAS routines are specifically implemented to take
-- advantage of this sparsity. This package provides FFI bindings to the
-- functions of the cuSPARSE library. You will need to install the CUDA
-- driver and developer toolkit:
--
-- http://developer.nvidia.com/cuda-downloads
--
-- See the travis-ci.org build matrix for tested CUDA library
-- versions.
@package cusparse
@version 0.3.0.0
module Foreign.CUDA.BLAS.Sparse.Error
-- | Error codes used by cuSPARSE library functions
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsestatust
data Status
Success :: Status
NotInitialized :: Status
AllocFailed :: Status
InvalidValue :: Status
ArchMismatch :: Status
MappingError :: Status
ExecutionFailed :: Status
InternalError :: Status
MatrixTypeNotSupported :: Status
ZeroPivot :: Status
NotSupported :: Status
describe :: Status -> String
data CUSparseException
ExitCode :: Status -> CUSparseException
UserError :: String -> CUSparseException
-- | Raise a CUSparseException in the IO Monad
cusparseError :: String -> IO a
-- | Return the results of a function on successful execution, otherwise
-- throw an exception with an error string associated with the return
-- code
resultIfOk :: (Status, a) -> IO a
-- | Throw an exception with an error string associated with an
-- unsuccessful return code, otherwise return unit.
nothingIfOk :: Status -> IO ()
-- | Throw an error if given error code is not CUSPARSE_STATUS_SUCCESS
checkStatus :: CInt -> IO ()
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Error.Status
instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Error.Status
instance GHC.Exception.Type.Exception Foreign.CUDA.BLAS.Sparse.Error.CUSparseException
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Error.CUSparseException
instance GHC.Enum.Enum Foreign.CUDA.BLAS.Sparse.Error.Status
module Foreign.CUDA.BLAS.Sparse.Context
-- | An opaque handle to the cuSPARSE library context, which is passed to
-- all library function calls.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehandlet
newtype Handle
Handle :: Ptr () -> Handle
[useHandle] :: Handle -> Ptr ()
-- | This function initializes the cuSPARSE library and creates a handle on
-- the cuSPARSE context. It must be called before any other cuSPARSE API
-- function is invoked. It allocates hardware resources necessary for
-- accessing the GPU.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsecreate
create :: IO Handle
-- | This function releases CPU-side resources used by the cuSPARSE
-- library. The release of GPU-side resources may be deferred until the
-- application shuts down.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroy
destroy :: Handle -> IO ()
-- | For functions which take scalar value arguments, determines whether
-- those values are passed by reference on the host or device.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsepointermode_t
data PointerMode
Host :: PointerMode
Device :: PointerMode
-- | Set the pointer mode used by cuSPARSE library functions.
--
-- The default mode is for values to be passed by reference from the
-- host.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetpointermode
setPointerMode :: Handle -> PointerMode -> IO ()
-- | Get the pointer mode used by cuSPARSE library functions to pass scalar
-- arguments.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetpointermode
getPointerMode :: Handle -> IO PointerMode
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Context.PointerMode
instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Context.PointerMode
instance GHC.Enum.Enum Foreign.CUDA.BLAS.Sparse.Context.PointerMode
module Foreign.CUDA.BLAS.Sparse.Analysis
-- | An opaque structure holding the information collected in the analysis
-- phase of the solution of the sparse triangular linear system.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolveanalysisinfot
newtype Info
Info :: Ptr () -> Info
[useInfo] :: Info -> Ptr ()
-- | Create and initialise the solve and analysis structure to default
-- values.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsecreatesolveanalysisinfo
createInfo :: IO Info
-- | Release memory associated with a matrix solver structure.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroysolveanalysisinfo
destroyInfo :: Info -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrsv2infot
newtype Info_csrsv2
Info_csrsv2 :: Ptr () -> Info_csrsv2
[useInfo_csrsv2] :: Info_csrsv2 -> Ptr ()
createInfo_csrsv2 :: IO Info_csrsv2
destroyInfo_csrsv2 :: Info_csrsv2 -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csric02infot
newtype Info_csric02
Info_csric02 :: Ptr () -> Info_csric02
[useInfo_csric02] :: Info_csric02 -> Ptr ()
createInfo_csric02 :: IO Info_csric02
destroyInfo_csric02 :: Info_csric02 -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrilu02infot
newtype Info_csrilu02
Info_csrilu02 :: Ptr () -> Info_csrilu02
[useInfo_csrilu02] :: Info_csrilu02 -> Ptr ()
createInfo_csrilu02 :: IO Info_csrilu02
destroyInfo_csrilu02 :: Info_csrilu02 -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrsv2infot
newtype Info_bsrsv2
Info_bsrsv2 :: Ptr () -> Info_bsrsv2
[useInfo_bsrsv2] :: Info_bsrsv2 -> Ptr ()
createInfo_bsrsv2 :: IO Info_bsrsv2
destroyInfo_bsrsv2 :: Info_bsrsv2 -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrsvminfot
newtype Info_bsrsm2
Info_bsrsm2 :: Ptr () -> Info_bsrsm2
[useInfo_bsrsm2] :: Info_bsrsm2 -> Ptr ()
createInfo_bsrsm2 :: IO Info_bsrsm2
destroyInfo_bsrsm2 :: Info_bsrsm2 -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsric02infot
newtype Info_bsric02
Info_bsric02 :: Ptr () -> Info_bsric02
[useInfo_bsric02] :: Info_bsric02 -> Ptr ()
createInfo_bsric02 :: IO Info_bsric02
destroyInfo_bsric02 :: Info_bsric02 -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrilu02infot
newtype Info_bsrilu02
Info_bsrilu02 :: Ptr () -> Info_bsrilu02
[useInfo_bsrilu02] :: Info_bsrilu02 -> Ptr ()
createInfo_bsrilu02 :: IO Info_bsrilu02
destroyInfo_bsrilu02 :: Info_bsrilu02 -> IO ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrgemm2infot
newtype Info_csrgemm2
Info_csrgemm2 :: Ptr () -> Info_csrgemm2
[useInfo_csrgemm2] :: Info_csrgemm2 -> Ptr ()
createInfo_csrgemm2 :: IO Info_csrgemm2
destroyInfo_csrgemm2 :: Info_csrgemm2 -> IO ()
-- | https://docs.nvidia.com/cuda/cusparse/index.html#csrsm2infot
newtype Info_csrsm2
Info_csrsm2 :: Ptr () -> Info_csrsm2
[useInfo_csrsm2] :: Info_csrsm2 -> Ptr ()
createInfo_csrsm2 :: IO Info_csrsm2
destroyInfo_csrsm2 :: Info_csrsm2 -> IO ()
newtype Info_color
Info_color :: Ptr () -> Info_color
[useInfo_color] :: Info_color -> Ptr ()
createInfo_color :: IO Info_color
destroyInfo_color :: Info_color -> IO ()
newtype Info_csru2csr
Info_csru2csr :: Ptr () -> Info_csru2csr
[useInfo_csru2csr] :: Info_csru2csr -> Ptr ()
createInfo_csru2csr :: IO Info_csru2csr
destroyInfo_csru2csr :: Info_csru2csr -> IO ()
newtype Info_prune
Info_prune :: Ptr () -> Info_prune
[useInfo_prune] :: Info_prune -> Ptr ()
createInfo_prune :: IO Info_prune
destroyInfo_prune :: Info_prune -> IO ()
module Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor
-- | An opaque type used to describe the shape and properties of a matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsematdescrt
newtype MatrixDescriptor
MatrixDescriptor :: Ptr () -> MatrixDescriptor
[useMatDescr] :: MatrixDescriptor -> Ptr ()
-- | Indicates the type of matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsematrixtypet
data MatrixType
General :: MatrixType
Symmetric :: MatrixType
Hermitian :: MatrixType
Triangular :: MatrixType
-- | Indicates whether indexing of matrix elements starts at zero or one.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparseindexbaset
data IndexBase
Zero :: IndexBase
One :: IndexBase
-- | Indicates whether the diagonal elements of the matrix are unity. The
-- diagonal elements are always assumed to be present, but if Unit
-- is passed to an API routine, then the routine assumes that all
-- diagonal entries are unity and will not read or modify those entries.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsediagtypet
data Diagonal
NonUnit :: Diagonal
Unit :: Diagonal
-- | Indicates whether the upper or lower part of the sparse matrix is
-- stored.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsefillmodet
data Fill
Lower :: Fill
Upper :: Fill
createMatDescr :: IO MatrixDescriptor
-- | Release memory associated with a matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroymatdescr
destroyMatDescr :: MatrixDescriptor -> IO ()
-- | Get the Diagonal type field of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmatdiagtype
getDiagonal :: MatrixDescriptor -> IO Diagonal
-- | Get the Fill mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmatfillmode
getFillMode :: MatrixDescriptor -> IO Fill
-- | Get the IndexBase mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmatindexbase
getIndexBase :: MatrixDescriptor -> IO IndexBase
-- | Get the MatrixType mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmattype
getMatrixType :: MatrixDescriptor -> IO MatrixType
-- | Set the Diagonal type field of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmatdiagtype
setDiagonal :: MatrixDescriptor -> Diagonal -> IO ()
-- | Set the Fill mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmatfillmode
setFillMode :: MatrixDescriptor -> Fill -> IO ()
-- | Set the IndexBase mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmatindexbase
setIndexBase :: MatrixDescriptor -> IndexBase -> IO ()
-- | Set the MatrixType mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmattype
setMatrixType :: MatrixDescriptor -> MatrixType -> IO ()
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Diagonal
instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Diagonal
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Fill
instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Fill
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.IndexBase
instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.IndexBase
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.MatrixType
instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.MatrixType
instance GHC.Enum.Enum Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.MatrixType
instance GHC.Enum.Enum Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.IndexBase
instance GHC.Enum.Enum Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Fill
instance GHC.Enum.Enum Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Diagonal
module Foreign.CUDA.BLAS.Sparse.Matrix.Hybrid
-- | An opaque structure holding the matrix in hybrid (HYB) format.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybmatt
newtype Hybrid
Hybrid :: Ptr () -> Hybrid
[useHYB] :: Hybrid -> Ptr ()
-- | Indicates how to perform the partitioning of the matrix into regular
-- (ELL) and irregular (COO) parts of the HYB format.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybpartitiont
data HybridPartition
Auto :: HybridPartition
User :: HybridPartition
Max :: HybridPartition
-- | Create a new (opaque) hybrid matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsecreatehybmat
createHYB :: IO Hybrid
-- | Destroy and release any memory associated with a hybrid matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroyhybmat
destroyHYB :: Hybrid -> IO ()
instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Matrix.Hybrid.HybridPartition
instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Hybrid.HybridPartition
instance GHC.Enum.Enum Foreign.CUDA.BLAS.Sparse.Matrix.Hybrid.HybridPartition
-- | For more information see the cuSPARSE Level-3 function reference:
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-level-3-function-reference
module Foreign.CUDA.BLAS.Sparse.Level3
-- | Indicates which operations need to be performed with the sparse
-- matrix.
--
--
-- - N: no transpose selected
-- - T: transpose operation
-- - C: conjugate transpose
--
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparseoperationt
data Operation
N :: Operation
T :: Operation
C :: Operation
-- | Indicates whether level information is used by some solver algorithms.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolvepolicy_t
data Policy
NoLevel :: Policy
UseLevel :: Policy
-- | An opaque type used to describe the shape and properties of a matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsematdescrt
data MatrixDescriptor
-- | An opaque structure holding the information collected in the analysis
-- phase of the solution of the sparse triangular linear system.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolveanalysisinfot
data Info
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrsvminfot
data Info_bsrsm2
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrgemm2infot
data Info_csrgemm2
-- | https://docs.nvidia.com/cuda/cusparse/index.html#csrsm2infot
data Info_csrsm2
scsrmm :: Handle -> Operation -> Int -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Int -> Ptr Float -> DevicePtr Float -> Int -> IO ()
dcsrmm :: Handle -> Operation -> Int -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Int -> Ptr Double -> DevicePtr Double -> Int -> IO ()
ccsrmm :: Handle -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Int -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO ()
zcsrmm :: Handle -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Int -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO ()
scsrmm2 :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Int -> Ptr Float -> DevicePtr Float -> Int -> IO ()
dcsrmm2 :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Int -> Ptr Double -> DevicePtr Double -> Int -> IO ()
ccsrmm2 :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Int -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO ()
zcsrmm2 :: Handle -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Int -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO ()
scsrsm_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
dcsrsm_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
ccsrsm_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
zcsrsm_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
scsrsm_solve :: Handle -> Operation -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr Float -> Int -> DevicePtr Float -> Int -> IO ()
dcsrsm_solve :: Handle -> Operation -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr Double -> Int -> DevicePtr Double -> Int -> IO ()
ccsrsm_solve :: Handle -> Operation -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr (Complex Float) -> Int -> DevicePtr (Complex Float) -> Int -> IO ()
zcsrsm_solve :: Handle -> Operation -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr (Complex Double) -> Int -> DevicePtr (Complex Double) -> Int -> IO ()
sbsrmm :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Float -> Int -> Ptr Float -> DevicePtr Float -> Int -> IO ()
dbsrmm :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Double -> Int -> Ptr Double -> DevicePtr Double -> Int -> IO ()
cbsrmm :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr (Complex Float) -> Int -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO ()
zbsrmm :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr (Complex Double) -> Int -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO ()
sbsrsm2_bufferSize :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> IO Int
dbsrsm2_bufferSize :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> IO Int
cbsrsm2_bufferSize :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> IO Int
zbsrsm2_bufferSize :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> IO Int
sbsrsm2_analysis :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> Policy -> DevicePtr () -> IO ()
dbsrsm2_analysis :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> Policy -> DevicePtr () -> IO ()
cbsrsm2_analysis :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> Policy -> DevicePtr () -> IO ()
zbsrsm2_analysis :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> Policy -> DevicePtr () -> IO ()
sbsrsm2_solve :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> DevicePtr Float -> Int -> DevicePtr Float -> Int -> Policy -> Ptr () -> IO ()
dbsrsm2_solve :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> DevicePtr Double -> Int -> DevicePtr Double -> Int -> Policy -> Ptr () -> IO ()
cbsrsm2_solve :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> DevicePtr (Complex Float) -> Int -> DevicePtr (Complex Float) -> Int -> Policy -> Ptr () -> IO ()
zbsrsm2_solve :: Handle -> Direction -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsm2 -> DevicePtr (Complex Double) -> Int -> DevicePtr (Complex Double) -> Int -> Policy -> Ptr () -> IO ()
xbsrsm2_zeroPivot :: Handle -> Info_bsrsm2 -> Ptr Int32 -> IO ()
xcsrgeamNnz :: Handle -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> IO ()
scsrgeam :: Handle -> Int -> Int -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
dcsrgeam :: Handle -> Int -> Int -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
ccsrgeam :: Handle -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zcsrgeam :: Handle -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
xcsrgemmNnz :: Handle -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> IO ()
scsrgemm :: Handle -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
dcsrgemm :: Handle -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
ccsrgemm :: Handle -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zcsrgemm :: Handle -> Operation -> Operation -> Int -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
scsrgemm2_bufferSizeExt :: Handle -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> IO Int
dcsrgemm2_bufferSizeExt :: Handle -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> IO Int
ccsrgemm2_bufferSizeExt :: Handle -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> IO Int
zcsrgemm2_bufferSizeExt :: Handle -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> IO Int
xcsrgemm2Nnz :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> Info_csrgemm2 -> DevicePtr () -> IO ()
scsrgemm2 :: Handle -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> DevicePtr () -> IO ()
dcsrgemm2 :: Handle -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> DevicePtr () -> IO ()
ccsrgemm2 :: Handle -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> DevicePtr () -> IO ()
zcsrgemm2 :: Handle -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrgemm2 -> DevicePtr () -> IO ()
scsrsm2_bufferSizeExt :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Int -> Info_csrsm2 -> Policy -> IO Int
dcsrsm2_bufferSizeExt :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Int -> Info_csrsm2 -> Policy -> IO Int
ccsrsm2_bufferSizeExt :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Int -> Info_csrsm2 -> Policy -> IO Int
zcsrsm2_bufferSizeExt :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Int -> Info_csrsm2 -> Policy -> IO Int
scsrsm2_analysis :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
dcsrsm2_analysis :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
ccsrsm2_analysis :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
zcsrsm2_analysis :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
scsrsm2_solve :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
dcsrsm2_solve :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
ccsrsm2_solve :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
zcsrsm2_solve :: Handle -> Int -> Operation -> Operation -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Int -> Info_csrsm2 -> Policy -> DevicePtr () -> IO ()
xcsrsm2_zeroPivot :: Handle -> Info_csrsm2 -> Ptr Int32 -> IO ()
sgemmi :: Handle -> Int -> Int -> Int -> Int -> Ptr Float -> DevicePtr Float -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> DevicePtr Float -> Int -> IO ()
dgemmi :: Handle -> Int -> Int -> Int -> Int -> Ptr Double -> DevicePtr Double -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> DevicePtr Double -> Int -> IO ()
cgemmi :: Handle -> Int -> Int -> Int -> Int -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO ()
zgemmi :: Handle -> Int -> Int -> Int -> Int -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO ()
xcsrgeam2Nnz :: Handle -> Int -> Int -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> DevicePtr () -> IO ()
scsrgeam2_bufferSizeExt :: Handle -> Int -> Int -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
dcsrgeam2_bufferSizeExt :: Handle -> Int -> Int -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
ccsrgeam2_bufferSizeExt :: Handle -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
zcsrgeam2_bufferSizeExt :: Handle -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
scsrgeam2 :: Handle -> Int -> Int -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
dcsrgeam2 :: Handle -> Int -> Int -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
ccsrgeam2 :: Handle -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Float) -> MatrixDescriptor -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
zcsrgeam2 :: Handle -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr (Complex Double) -> MatrixDescriptor -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
-- | For more information see the cuSPARSE Level-2 function reference:
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-level-2-function-reference
module Foreign.CUDA.BLAS.Sparse.Level2
-- | Indicates which operations need to be performed with the sparse
-- matrix.
--
--
-- - N: no transpose selected
-- - T: transpose operation
-- - C: conjugate transpose
--
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparseoperationt
data Operation
N :: Operation
T :: Operation
C :: Operation
-- | Indicates the underlying storage model for elements of matrices.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedirectiont
data Direction
Row :: Direction
Column :: Direction
-- | Used to specify the type of data underlying a void* pointer.
-- For example, it is used in the routine csrmvEx.
data Type
R32f :: Type
R64f :: Type
R16f :: Type
R8i :: Type
C32f :: Type
C64f :: Type
C16f :: Type
C8i :: Type
R8u :: Type
C8u :: Type
R32i :: Type
C32i :: Type
R32u :: Type
C32u :: Type
-- | Specify the algorithm to use, for example used in the routine
-- csrmvEx.
data Algorithm
Alg0 :: Algorithm
AlgNaive :: Algorithm
Alg1 :: Algorithm
AlgMergePath :: Algorithm
-- | Indicates whether level information is used by some solver algorithms.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolvepolicy_t
data Policy
NoLevel :: Policy
UseLevel :: Policy
-- | An opaque type used to describe the shape and properties of a matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsematdescrt
data MatrixDescriptor
-- | An opaque structure holding the matrix in hybrid (HYB) format.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybmatt
data Hybrid
-- | An opaque structure holding the information collected in the analysis
-- phase of the solution of the sparse triangular linear system.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolveanalysisinfot
data Info
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrsv2infot
data Info_bsrsv2
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrsv2infot
data Info_csrsv2
sbsrmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Float -> Ptr Float -> DevicePtr Float -> IO ()
dbsrmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Double -> Ptr Double -> DevicePtr Double -> IO ()
cbsrmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr (Complex Float) -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> IO ()
zbsrmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr (Complex Double) -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> IO ()
sbsrxmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Float -> Ptr Float -> DevicePtr Float -> IO ()
dbsrxmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Double -> Ptr Double -> DevicePtr Double -> IO ()
cbsrxmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr (Complex Float) -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> IO ()
zbsrxmv :: Handle -> Direction -> Operation -> Int -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr (Complex Double) -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> IO ()
scsrmv :: Handle -> Operation -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Ptr Float -> DevicePtr Float -> IO ()
dcsrmv :: Handle -> Operation -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Ptr Double -> DevicePtr Double -> IO ()
ccsrmv :: Handle -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> IO ()
zcsrmv :: Handle -> Operation -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> IO ()
sbsrsv2_bufferSize :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> IO Int
dbsrsv2_bufferSize :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> IO Int
cbsrsv2_bufferSize :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> IO Int
zbsrsv2_bufferSize :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> IO Int
sbsrsv2_analysis :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> Policy -> DevicePtr () -> IO ()
dbsrsv2_analysis :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> Policy -> DevicePtr () -> IO ()
cbsrsv2_analysis :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> Policy -> DevicePtr () -> IO ()
zbsrsv2_analysis :: Handle -> Direction -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> Policy -> DevicePtr () -> IO ()
sbsrsv2_solve :: Handle -> Direction -> Operation -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> DevicePtr Float -> DevicePtr Float -> Policy -> DevicePtr () -> IO ()
dbsrsv2_solve :: Handle -> Direction -> Operation -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> DevicePtr Double -> DevicePtr Double -> Policy -> DevicePtr () -> IO ()
cbsrsv2_solve :: Handle -> Direction -> Operation -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Policy -> DevicePtr () -> IO ()
zbsrsv2_solve :: Handle -> Direction -> Operation -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrsv2 -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Policy -> DevicePtr () -> IO ()
xbsrsv2_zeroPivot :: Handle -> Info_bsrsv2 -> Ptr Int32 -> IO ()
scsrsv_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
dcsrsv_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
ccsrsv_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
zcsrsv_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
scsrsv_solve :: Handle -> Operation -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr Float -> DevicePtr Float -> IO ()
dcsrsv_solve :: Handle -> Operation -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr Double -> DevicePtr Double -> IO ()
ccsrsv_solve :: Handle -> Operation -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> IO ()
zcsrsv_solve :: Handle -> Operation -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> IO ()
scsrsv2_bufferSize :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> IO Int
dcsrsv2_bufferSize :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> IO Int
ccsrsv2_bufferSize :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> IO Int
zcsrsv2_bufferSize :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> IO Int
scsrsv2_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> Policy -> DevicePtr () -> IO ()
dcsrsv2_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> Policy -> DevicePtr () -> IO ()
ccsrsv2_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> Policy -> DevicePtr () -> IO ()
zcsrsv2_analysis :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> Policy -> DevicePtr () -> IO ()
scsrsv2_solve :: Handle -> Operation -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> DevicePtr Float -> DevicePtr Float -> Policy -> DevicePtr () -> IO ()
dcsrsv2_solve :: Handle -> Operation -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> DevicePtr Double -> DevicePtr Double -> Policy -> DevicePtr () -> IO ()
ccsrsv2_solve :: Handle -> Operation -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Policy -> DevicePtr () -> IO ()
zcsrsv2_solve :: Handle -> Operation -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrsv2 -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Policy -> DevicePtr () -> IO ()
xcsrsv2_zeroPivot :: Handle -> Info_csrsv2 -> Ptr Int32 -> IO ()
shybmv :: Handle -> Operation -> Ptr Float -> MatrixDescriptor -> Hybrid -> DevicePtr Float -> Ptr Float -> DevicePtr Float -> IO ()
dhybmv :: Handle -> Operation -> Ptr Double -> MatrixDescriptor -> Hybrid -> DevicePtr Double -> Ptr Double -> DevicePtr Double -> IO ()
chybmv :: Handle -> Operation -> Ptr (Complex Float) -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Float) -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> IO ()
zhybmv :: Handle -> Operation -> Ptr (Complex Double) -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Double) -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> IO ()
shybsv_analysis :: Handle -> Operation -> MatrixDescriptor -> Hybrid -> Info -> IO ()
dhybsv_analysis :: Handle -> Operation -> MatrixDescriptor -> Hybrid -> Info -> IO ()
chybsv_analysis :: Handle -> Operation -> MatrixDescriptor -> Hybrid -> Info -> IO ()
zhybsv_analysis :: Handle -> Operation -> MatrixDescriptor -> Hybrid -> Info -> IO ()
shybsv_solve :: Handle -> Operation -> Ptr Float -> MatrixDescriptor -> Hybrid -> Info -> DevicePtr Float -> DevicePtr Float -> IO ()
dhybsv_solve :: Handle -> Operation -> Ptr Double -> MatrixDescriptor -> Hybrid -> Info -> DevicePtr Double -> DevicePtr Double -> IO ()
chybsv_solve :: Handle -> Operation -> Ptr (Complex Float) -> MatrixDescriptor -> Hybrid -> Info -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> IO ()
zhybsv_solve :: Handle -> Operation -> Ptr (Complex Double) -> MatrixDescriptor -> Hybrid -> Info -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> IO ()
sgemvi :: Handle -> Operation -> Int -> Int -> Ptr Float -> DevicePtr Float -> Int -> Int -> DevicePtr Float -> DevicePtr Int32 -> Ptr Float -> DevicePtr Float -> IndexBase -> DevicePtr () -> IO ()
dgemvi :: Handle -> Operation -> Int -> Int -> Ptr Double -> DevicePtr Double -> Int -> Int -> DevicePtr Double -> DevicePtr Int32 -> Ptr Double -> DevicePtr Double -> IndexBase -> DevicePtr () -> IO ()
cgemvi :: Handle -> Operation -> Int -> Int -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> IndexBase -> DevicePtr () -> IO ()
zgemvi :: Handle -> Operation -> Int -> Int -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> IndexBase -> DevicePtr () -> IO ()
sgemvi_bufferSize :: Handle -> Operation -> Int -> Int -> Int -> IO Int
dgemvi_bufferSize :: Handle -> Operation -> Int -> Int -> Int -> IO Int
cgemvi_bufferSize :: Handle -> Operation -> Int -> Int -> Int -> IO Int
zgemvi_bufferSize :: Handle -> Operation -> Int -> Int -> Int -> IO Int
csrmvEx :: Handle -> Algorithm -> Operation -> Int -> Int -> Int -> Ptr () -> Type -> MatrixDescriptor -> DevicePtr () -> Type -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> Type -> Ptr () -> Type -> DevicePtr () -> Type -> Type -> DevicePtr () -> IO ()
csrmvEx_bufferSize :: Handle -> Algorithm -> Operation -> Int -> Int -> Int -> Ptr () -> Type -> MatrixDescriptor -> DevicePtr () -> Type -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> Type -> Ptr () -> Type -> DevicePtr () -> Type -> Type -> IO Int
scsrmv_mp :: Handle -> Operation -> Int -> Int -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Ptr Float -> DevicePtr Float -> IO ()
dcsrmv_mp :: Handle -> Operation -> Int -> Int -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Ptr Double -> DevicePtr Double -> IO ()
ccsrmv_mp :: Handle -> Operation -> Int -> Int -> Int -> Ptr (Complex Float) -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Ptr (Complex Float) -> DevicePtr (Complex Float) -> IO ()
zcsrmv_mp :: Handle -> Operation -> Int -> Int -> Int -> Ptr (Complex Double) -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Ptr (Complex Double) -> DevicePtr (Complex Double) -> IO ()
csrsv_analysisEx :: Handle -> Operation -> Int -> Int -> MatrixDescriptor -> DevicePtr () -> Type -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> Type -> IO ()
csrsv_solveEx :: Handle -> Operation -> Int -> Ptr () -> Type -> MatrixDescriptor -> DevicePtr () -> Type -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> DevicePtr () -> Type -> DevicePtr () -> Type -> Type -> IO ()
-- | For more information see the cuSPARSE Level-1 function reference:
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-level-1-function-reference
module Foreign.CUDA.BLAS.Sparse.Level1
-- | Indicates whether indexing of matrix elements starts at zero or one.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparseindexbaset
data IndexBase
Zero :: IndexBase
One :: IndexBase
saxpyi :: Handle -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Int32 -> Ptr Float -> IndexBase -> IO ()
daxpyi :: Handle -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Int32 -> Ptr Double -> IndexBase -> IO ()
caxpyi :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr Int32 -> Ptr (Complex Float) -> IndexBase -> IO ()
zaxpyi :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr Int32 -> Ptr (Complex Double) -> IndexBase -> IO ()
sdoti :: Handle -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Float -> Ptr Float -> IndexBase -> IO ()
ddoti :: Handle -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Double -> Ptr Double -> IndexBase -> IO ()
cdoti :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Ptr (Complex Float) -> IndexBase -> IO ()
zdoti :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Ptr (Complex Double) -> IndexBase -> IO ()
cdotci :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Ptr (Complex Float) -> IndexBase -> IO ()
zdotci :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Ptr (Complex Double) -> IndexBase -> IO ()
sgthr :: Handle -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Int32 -> IndexBase -> IO ()
dgthr :: Handle -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Int32 -> IndexBase -> IO ()
cgthr :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr Int32 -> IndexBase -> IO ()
zgthr :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr Int32 -> IndexBase -> IO ()
sgthrz :: Handle -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Int32 -> IndexBase -> IO ()
dgthrz :: Handle -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Int32 -> IndexBase -> IO ()
cgthrz :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr Int32 -> IndexBase -> IO ()
zgthrz :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr Int32 -> IndexBase -> IO ()
sroti :: Handle -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Float -> Ptr Float -> Ptr Float -> IndexBase -> IO ()
droti :: Handle -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Double -> Ptr Double -> Ptr Double -> IndexBase -> IO ()
ssctr :: Handle -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Float -> IndexBase -> IO ()
dsctr :: Handle -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Double -> IndexBase -> IO ()
csctr :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr (Complex Float) -> IndexBase -> IO ()
zsctr :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr (Complex Double) -> IndexBase -> IO ()
-- | For more information see the cuSPARSE function reference:
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-format-conversion-reference
module Foreign.CUDA.BLAS.Sparse.Convert
-- | Indicates the underlying storage model for elements of matrices.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedirectiont
data Direction
Row :: Direction
Column :: Direction
-- | This type indicates whether the operation is performed only on indices
-- (Symbolic) or on data and indices (Numeric).
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparseactiont
data Action
Symbolic :: Action
Numeric :: Action
-- | An opaque structure holding the matrix in hybrid (HYB) format.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybmatt
data Hybrid
-- | Indicates how to perform the partitioning of the matrix into regular
-- (ELL) and irregular (COO) parts of the HYB format.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybpartitiont
data HybridPartition
Auto :: HybridPartition
User :: HybridPartition
Max :: HybridPartition
-- | Indices the algorithm to use for CSR to CSC matrix conversion
--
-- Algorithm 1 requires extra storage proportional to the number of
-- nonzero values nnz. It is in general faster than algorithm 2
-- and the result is deterministic.
--
-- Algorithm 2 requires extra storage proportional to the number of rows
-- m. It is non-deterministic, and does not ensure always the
-- same ordering of CSC column indices and values. It is faster than
-- algorithm 1 for regular matrices.
data Algorithm_csr2csc
Csr2cscAlg1 :: Algorithm_csr2csc
Csr2cscAlg2 :: Algorithm_csr2csc
data Info_csru2csr
data Info_prune
sbsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
dbsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
cbsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zbsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
sgebsr2gebsc_bufferSize :: Handle -> Int -> Int -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
dgebsr2gebsc_bufferSize :: Handle -> Int -> Int -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
cgebsr2gebsc_bufferSize :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
zgebsr2gebsc_bufferSize :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
sgebsr2gebsc :: Handle -> Int -> Int -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> DevicePtr () -> IO ()
dgebsr2gebsc :: Handle -> Int -> Int -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> DevicePtr () -> IO ()
cgebsr2gebsc :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> DevicePtr () -> IO ()
zgebsr2gebsc :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> DevicePtr () -> IO ()
sgebsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> Int -> Int -> IO Int
dgebsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> Int -> Int -> IO Int
cgebsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> Int -> Int -> IO Int
zgebsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> Int -> Int -> IO Int
sgebsr2gebsr :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
dgebsr2gebsr :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
cgebsr2gebsr :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
zgebsr2gebsr :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
xgebsr2gebsrNnz :: Handle -> Direction -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr Int32 -> Int -> Int -> Ptr Int32 -> DevicePtr () -> IO ()
sgebsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
dgebsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
cgebsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zgebsr2csr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
scsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
dcsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
ccsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
zcsr2gebsr_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> IO Int
scsr2gebsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
dcsr2gebsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
ccsr2gebsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
zcsr2gebsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Int -> DevicePtr () -> IO ()
xcsr2gebsrNnz :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Int32 -> DevicePtr Int32 -> MatrixDescriptor -> DevicePtr Int32 -> Int -> Int -> Ptr Int32 -> DevicePtr () -> IO ()
xcoo2csr :: Handle -> DevicePtr Int32 -> Int -> Int -> DevicePtr Int32 -> IndexBase -> IO ()
scsc2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Int -> IO ()
dcsc2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Int -> IO ()
ccsc2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Int -> IO ()
zcsc2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Int -> IO ()
scsc2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
dcsc2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
ccsc2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
zcsc2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
scsr2bsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
dcsr2bsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
ccsr2bsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zcsr2bsr :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
xcsr2bsrNnz :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> IO ()
xcsr2coo :: Handle -> DevicePtr Int32 -> Int -> Int -> DevicePtr Int32 -> IndexBase -> IO ()
scsr2csc :: Handle -> Int -> Int -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> IO ()
dcsr2csc :: Handle -> Int -> Int -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> IO ()
ccsr2csc :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> IO ()
zcsr2csc :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> IO ()
scsr2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> Int -> IO ()
dcsr2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> Int -> IO ()
ccsr2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> Int -> IO ()
zcsr2dense :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> Int -> IO ()
scsr2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
dcsr2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
ccsr2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
zcsr2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
sdense2csc :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> Int -> DevicePtr Int32 -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
ddense2csc :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> Int -> DevicePtr Int32 -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
cdense2csc :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> Int -> DevicePtr Int32 -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zdense2csc :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> Int -> DevicePtr Int32 -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
sdense2csr :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> Int -> DevicePtr Int32 -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
ddense2csr :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> Int -> DevicePtr Int32 -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
cdense2csr :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> Int -> DevicePtr Int32 -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zdense2csr :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> Int -> DevicePtr Int32 -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
sdense2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> Int -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
ddense2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> Int -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
cdense2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> Int -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
zdense2hyb :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> Int -> DevicePtr Int32 -> Hybrid -> Int -> HybridPartition -> IO ()
shyb2csc :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
dhyb2csc :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
chyb2csc :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zhyb2csc :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
shyb2csr :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
dhyb2csr :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
chyb2csr :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
zhyb2csr :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> IO ()
shyb2dense :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr Float -> Int -> IO ()
dhyb2dense :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr Double -> Int -> IO ()
chyb2dense :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Float) -> Int -> IO ()
zhyb2dense :: Handle -> MatrixDescriptor -> Hybrid -> DevicePtr (Complex Double) -> Int -> IO ()
snnz :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> Int -> DevicePtr Int32 -> Ptr Int32 -> IO ()
dnnz :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> Int -> DevicePtr Int32 -> Ptr Int32 -> IO ()
cnnz :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> Int -> DevicePtr Int32 -> Ptr Int32 -> IO ()
znnz :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> Int -> DevicePtr Int32 -> Ptr Int32 -> IO ()
createIdentityPermutation :: Handle -> Int -> DevicePtr Int32 -> IO ()
xcoosort_bufferSizeExt :: Handle -> Int -> Int -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
xcoosortByRow :: Handle -> Int -> Int -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
xcoosortByColumn :: Handle -> Int -> Int -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
xcsrsort_bufferSizeExt :: Handle -> Int -> Int -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
xcsrsort :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
xcscsort_bufferSizeExt :: Handle -> Int -> Int -> Int -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
xcscsort :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
scsru2csr_bufferSizeExt :: Handle -> Int -> Int -> Int -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> IO Int
dcsru2csr_bufferSizeExt :: Handle -> Int -> Int -> Int -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> IO Int
ccsru2csr_bufferSizeExt :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> IO Int
zcsru2csr_bufferSizeExt :: Handle -> Int -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> IO Int
scsru2csr :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
dcsru2csr :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
ccsru2csr :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
zcsru2csr :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
scsr2csru :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
dcsr2csru :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
ccsr2csru :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
zcsr2csru :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csru2csr -> DevicePtr () -> IO ()
csr2cscEx :: Handle -> Int -> Int -> Int -> DevicePtr () -> Type -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> Type -> DevicePtr Int32 -> DevicePtr Int32 -> Action -> IndexBase -> Type -> IO ()
scsr2csr_compress :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Int32 -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> IO ()
dcsr2csr_compress :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Int32 -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Double -> IO ()
ccsr2csr_compress :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Int32 -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Complex Float -> IO ()
zcsr2csr_compress :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> DevicePtr Int32 -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Complex Double -> IO ()
spruneDense2csr_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Float -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
dpruneDense2csr_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Double -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
hpruneDense2csr_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Half -> Int -> Ptr Half -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
spruneDense2csrNnz :: Handle -> Int -> Int -> DevicePtr Float -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> DevicePtr () -> IO ()
dpruneDense2csrNnz :: Handle -> Int -> Int -> DevicePtr Double -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> DevicePtr () -> IO ()
hpruneDense2csrNnz :: Handle -> Int -> Int -> DevicePtr Half -> Int -> Ptr Half -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> DevicePtr () -> IO ()
spruneDense2csr :: Handle -> Int -> Int -> DevicePtr Float -> Int -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
dpruneDense2csr :: Handle -> Int -> Int -> DevicePtr Double -> Int -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
hpruneDense2csr :: Handle -> Int -> Int -> DevicePtr Half -> Int -> Ptr Half -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
spruneCsr2csr_bufferSizeExt :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
dpruneCsr2csr_bufferSizeExt :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
hpruneCsr2csr_bufferSizeExt :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Half -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> IO Int
spruneCsr2csrNnz :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> Ptr Int32 -> DevicePtr () -> IO ()
dpruneCsr2csrNnz :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> Ptr Int32 -> DevicePtr () -> IO ()
hpruneCsr2csrNnz :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Half -> MatrixDescriptor -> DevicePtr Half -> Ptr Int32 -> DevicePtr () -> IO ()
spruneCsr2csr :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
dpruneCsr2csr :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Double -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
hpruneCsr2csr :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Half -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> IO ()
spruneDense2csrByPercentage_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Float -> Int -> Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> IO Int
dpruneDense2csrByPercentage_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Double -> Int -> Float -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> IO Int
hpruneDense2csrByPercentage_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Half -> Int -> Float -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> IO Int
spruneDense2csrNnzByPercentage :: Handle -> Int -> Int -> DevicePtr Float -> Int -> Float -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> Info_prune -> DevicePtr () -> IO ()
dpruneDense2csrNnzByPercentage :: Handle -> Int -> Int -> DevicePtr Double -> Int -> Float -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> Info_prune -> DevicePtr () -> IO ()
hpruneDense2csrNnzByPercentage :: Handle -> Int -> Int -> DevicePtr Half -> Int -> Float -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int32 -> Info_prune -> DevicePtr () -> IO ()
spruneDense2csrByPercentage :: Handle -> Int -> Int -> DevicePtr Float -> Int -> Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> DevicePtr () -> IO ()
dpruneDense2csrByPercentage :: Handle -> Int -> Int -> DevicePtr Double -> Int -> Float -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> DevicePtr () -> IO ()
hpruneDense2csrByPercentage :: Handle -> Int -> Int -> DevicePtr Half -> Int -> Float -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> DevicePtr () -> IO ()
spruneCsr2csrByPercentage_bufferSizeExt :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> IO Int
dpruneCsr2csrByPercentage_bufferSizeExt :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> IO Int
hpruneCsr2csrByPercentage_bufferSizeExt :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> IO Int
spruneCsr2csrNnzByPercentage :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int -> Info_prune -> DevicePtr () -> IO ()
dpruneCsr2csrNnzByPercentage :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int -> Info_prune -> DevicePtr () -> IO ()
hpruneCsr2csrNnzByPercentage :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Int32 -> Ptr Int -> Info_prune -> DevicePtr () -> IO ()
spruneCsr2csrByPercentage :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> DevicePtr () -> IO ()
dpruneCsr2csrByPercentage :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> DevicePtr () -> IO ()
hpruneCsr2csrByPercentage :: Handle -> Int -> Int -> Int -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Float -> MatrixDescriptor -> DevicePtr Half -> DevicePtr Int32 -> DevicePtr Int32 -> Info_prune -> DevicePtr () -> IO ()
snnz_compress :: Handle -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Int32 -> Float -> IO ()
dnnz_compress :: Handle -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Int32 -> Double -> IO ()
cnnz_compress :: Handle -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Int32 -> Complex Float -> IO ()
znnz_compress :: Handle -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Ptr Int32 -> Complex Double -> IO ()
csr2cscEx2 :: Handle -> Int -> Int -> Int -> DevicePtr () -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> DevicePtr Int32 -> DevicePtr Int32 -> Type -> Action -> IndexBase -> Algorithm_csr2csc -> DevicePtr () -> IO ()
csr2cscEx2_bufferSize :: Handle -> Int -> Int -> Int -> DevicePtr () -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr () -> DevicePtr Int32 -> DevicePtr Int32 -> Type -> Action -> IndexBase -> Algorithm_csr2csc -> IO Int
-- | For more information see the cuSPARSE function reference:
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-preconditioners-reference
module Foreign.CUDA.BLAS.Sparse.Precondition
-- | Indicates which operations need to be performed with the sparse
-- matrix.
--
--
-- - N: no transpose selected
-- - T: transpose operation
-- - C: conjugate transpose
--
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparseoperationt
data Operation
N :: Operation
T :: Operation
C :: Operation
-- | Indicates the underlying storage model for elements of matrices.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedirectiont
data Direction
Row :: Direction
Column :: Direction
-- | Indicates whether level information is used by some solver algorithms.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolvepolicy_t
data Policy
NoLevel :: Policy
UseLevel :: Policy
-- | An opaque type used to describe the shape and properties of a matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsematdescrt
data MatrixDescriptor
-- | An opaque structure holding the information collected in the analysis
-- phase of the solution of the sparse triangular linear system.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolveanalysisinfot
data Info
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csric02infot
data Info_csric02
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrilu02infot
data Info_csrilu02
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsric02infot
data Info_bsric02
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrilu02infot
data Info_bsrilu02
scsric0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
dcsric0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
ccsric0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
zcsric0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
scsric02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> IO Int
dcsric02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> IO Int
ccsric02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> IO Int
zcsric02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> IO Int
scsric02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
dcsric02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
ccsric02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
zcsric02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
scsric02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
dcsric02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
ccsric02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
zcsric02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csric02 -> Policy -> DevicePtr () -> IO ()
xcsric02_zeroPivot :: Handle -> Info_csric02 -> Ptr Int32 -> IO ()
scsrilu0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
dcsrilu0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
ccsrilu0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
zcsrilu0 :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> IO ()
scsrilu02_numericBoost :: Handle -> Info_csrilu02 -> Int -> Ptr Double -> Ptr Float -> IO ()
dcsrilu02_numericBoost :: Handle -> Info_csrilu02 -> Int -> Ptr Double -> Ptr Double -> IO ()
ccsrilu02_numericBoost :: Handle -> Info_csrilu02 -> Int -> Ptr Double -> Ptr (Complex Float) -> IO ()
zcsrilu02_numericBoost :: Handle -> Info_csrilu02 -> Int -> Ptr Double -> Ptr (Complex Double) -> IO ()
scsrilu02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> IO Int
dcsrilu02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> IO Int
ccsrilu02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> IO Int
zcsrilu02_bufferSize :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> IO Int
scsrilu02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
dcsrilu02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
ccsrilu02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
zcsrilu02_analysis :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
scsrilu02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
dcsrilu02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
ccsrilu02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
zcsrilu02 :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Info_csrilu02 -> Policy -> DevicePtr () -> IO ()
xcsrilu02_zeroPivot :: Handle -> Info_csrilu02 -> Ptr Int32 -> IO ()
sbsric02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> IO Int
dbsric02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> IO Int
cbsric02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> IO Int
zbsric02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> IO Int
sbsric02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
dbsric02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
cbsric02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
zbsric02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
sbsric02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
dbsric02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
cbsric02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
zbsric02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsric02 -> Policy -> DevicePtr () -> IO ()
xbsric02_zeroPivot :: Handle -> Info_bsric02 -> Ptr Int32 -> IO ()
sbsrilu02_numericBoost :: Handle -> Info_bsrilu02 -> Int -> Ptr Double -> Ptr Float -> IO ()
dbsrilu02_numericBoost :: Handle -> Info_bsrilu02 -> Int -> Ptr Double -> Ptr Double -> IO ()
cbsrilu02_numericBoost :: Handle -> Info_bsrilu02 -> Int -> Ptr Double -> Ptr (Complex Float) -> IO ()
zbsrilu02_numericBoost :: Handle -> Info_bsrilu02 -> Int -> Ptr Double -> Ptr (Complex Double) -> IO ()
sbsrilu02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> IO Int
dbsrilu02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> IO Int
cbsrilu02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> IO Int
zbsrilu02_bufferSize :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> IO Int
sbsrilu02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
dbsrilu02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
cbsrilu02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
zbsrilu02_analysis :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
sbsrilu02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
dbsrilu02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
cbsrilu02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
zbsrilu02 :: Handle -> Direction -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> Int -> Info_bsrilu02 -> Policy -> DevicePtr () -> IO ()
xbsrilu02_zeroPivot :: Handle -> Info_bsrilu02 -> Ptr Int32 -> IO ()
sgtsv :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> IO ()
dgtsv :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> IO ()
cgtsv :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO ()
zgtsv :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO ()
sgtsv_nopivot :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> IO ()
dgtsv_nopivot :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> IO ()
cgtsv_nopivot :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO ()
zgtsv_nopivot :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO ()
sgtsvStridedBatch :: Handle -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> Int -> IO ()
dgtsvStridedBatch :: Handle -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> Int -> IO ()
cgtsvStridedBatch :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> Int -> IO ()
zgtsvStridedBatch :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> Int -> IO ()
csrilu0Ex :: Handle -> Operation -> Int -> MatrixDescriptor -> DevicePtr () -> Type -> DevicePtr Int32 -> DevicePtr Int32 -> Info -> Type -> IO ()
sgtsv2_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> IO Int
dgtsv2_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> IO Int
cgtsv2_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO Int
zgtsv2_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO Int
sgtsv2 :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> DevicePtr () -> IO ()
dgtsv2 :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> DevicePtr () -> IO ()
cgtsv2 :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> DevicePtr () -> IO ()
zgtsv2 :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> DevicePtr () -> IO ()
sgtsv2_nopivot_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> IO Int
dgtsv2_nopivot_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> IO Int
cgtsv2_nopivot_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO Int
zgtsv2_nopivot_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO Int
sgtsv2_nopivot :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> DevicePtr () -> IO ()
dgtsv2_nopivot :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> DevicePtr () -> IO ()
cgtsv2_nopivot :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> DevicePtr () -> IO ()
zgtsv2_nopivot :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> DevicePtr () -> IO ()
sgtsv2StridedBatch_bufferSizeExt :: Handle -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> Int -> IO Int
dgtsv2StridedBatch_bufferSizeExt :: Handle -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> Int -> IO Int
cgtsv2StridedBatch_bufferSizeExt :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> Int -> IO Int
zgtsv2StridedBatch_bufferSizeExt :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> Int -> IO Int
sgtsv2StridedBatch :: Handle -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> Int -> DevicePtr () -> IO ()
dgtsv2StridedBatch :: Handle -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> Int -> DevicePtr () -> IO ()
cgtsv2StridedBatch :: Handle -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> Int -> DevicePtr () -> IO ()
zgtsv2StridedBatch :: Handle -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> Int -> DevicePtr () -> IO ()
sgtsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> IO Int
dgtsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> IO Int
cgtsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO Int
zgtsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO Int
sgtsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> DevicePtr () -> IO ()
dgtsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> DevicePtr () -> IO ()
cgtsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> DevicePtr () -> IO ()
zgtsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> DevicePtr () -> IO ()
sgpsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> IO Int
dgpsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> IO Int
cgpsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> IO Int
zgpsvInterleavedBatch_bufferSizeExt :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> IO Int
sgpsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> DevicePtr Float -> Int -> DevicePtr () -> IO ()
dgpsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> DevicePtr Double -> Int -> DevicePtr () -> IO ()
cgpsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> DevicePtr (Complex Float) -> Int -> DevicePtr () -> IO ()
zgpsvInterleavedBatch :: Handle -> Int -> Int -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> DevicePtr (Complex Double) -> Int -> DevicePtr () -> IO ()
-- | For more information see the cuSPARSE function reference:
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparse-reorderings-reference
module Foreign.CUDA.BLAS.Sparse.Reorder
data Info_color
scsrcolor :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Float -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Info_color -> IO ()
dcsrcolor :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Double -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Info_color -> IO ()
ccsrcolor :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Float) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Info_color -> IO ()
zcsrcolor :: Handle -> Int -> Int -> MatrixDescriptor -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr (Complex Double) -> DevicePtr Int32 -> DevicePtr Int32 -> DevicePtr Int32 -> Info_color -> IO ()
module Foreign.CUDA.BLAS.Sparse.Stream
-- | Sets the execution stream which all subsequent cuSPARSE library
-- functions will execute with. If not set, functions execute in the
-- default stream (which never overlaps any other operations).
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetstream
setStream :: Handle -> Stream -> IO ()
-- | The cuSPARSE library is an implementation of Sparse BLAS (Basic Linear
-- Algebra Subprograms) for NVIDIA GPUs. Sparse matrices are those where
-- the majority of elements are zero. Sparse BLAS routines are
-- specifically implemented to take advantage of this sparsity.
--
-- To use operations from the cuSPARSE library, the user must allocate
-- the required matrices and vectors in the GPU memory space, fill them
-- with data, call the desired sequence of cuSPARSE functions, then copy
-- the results from the GPU memory space back to the host.
--
-- The cuda package can be used for writing to and retrieving data
-- from the GPU.
--
--
--
-- The following is based on the following example:
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#appendix-b-cusparse-library-c---example
--
-- It assumes basic familiarity with the cuda package, as
-- described in the Foreign.CUDA.Driver module.
--
--
-- >>> import Foreign.CUDA.Driver as CUDA
--
-- >>> import Foreign.CUDA.BLAS.Sparse as Sparse
--
-- >>> CUDA.initialise []
--
-- >>> dev <- CUDA.device 0
--
-- >>> ctx <- CUDA.create dev []
--
--
-- We begin by creating the following matrix in COO format and
-- transferring to the GPU:
--
-- <math>
--
--
-- >>> let n = 4
--
-- >>> let nnz = 9
--
-- >>> d_cooRowIdx <- newListArray [ 0,0,0, 1, 2,2,2, 3,3 ] :: IO (DevicePtr Int32)
--
-- >>> d_cooColIdx <- newListArray [ 0,2,3, 1, 0,2,3, 1,3 ] :: IO (DevicePtr Int32)
--
-- >>> d_vals <- newListArray [ 1..9 ] :: IO (DevicePtr Double)
--
--
-- Create a sparse and dense vector:
--
--
-- >>> let nnz_vector = 3
--
-- >>> d_xVal <- newListArray [ 100, 200, 400 ] :: IO (DevicePtr Double)
--
-- >>> d_xIdx <- newListArray [ 0, 1, 3 ] :: IO (DevicePtr Int32)
--
-- >>> d_y <- newListArray [ 10, 20 .. 80 ] :: IO (DevicePtr Double)
--
--
-- Initialise the cuSPARSE library and set up the matrix descriptor:
--
--
-- >>> hdl <- Sparse.create
--
-- >>> mat <- Sparse.createMatDescr
--
-- >>> Sparse.setMatrixType mat General
--
-- >>> Sparse.setIndexBase mat Zero
--
--
-- Exercise the conversion routines to convert from COO to CSR format:
--
--
-- >>> d_csrRowPtr <- CUDA.mallocArray (n+1) :: IO (DevicePtr Int32)
--
-- >>> xcoo2csr hdl d_cooRowIdx nnz n d_csrRowPtr Zero
--
-- >>> peekListArray (n+1) d_csrRowPtr
-- [0,3,4,7,9]
--
--
-- Scatter elements from the sparse vector into the dense vector:
--
--
-- >>> dsctr hdl nnz_vector d_xVal d_xIdx (d_y `plusDevPtr` (n * sizeOf (undefined::Double))) Zero
--
-- >>> peekListArray 8 d_y
-- [10.0,20.0,30.0,40.0,100.0,200.0,70.0,400.0]
--
--
-- Multiply the matrix in CSR format with the dense vector:
--
--
-- >>> with 2.0 $ \alpha ->
--
-- >>> with 3.0 $ \beta ->
--
-- >>> dcsrmv hdl N n n nnz alpha mat d_vals d_csrRowPtr d_cooColIdx d_y beta (d_y `plusDevPtr` (n * sizeOf (undefined::Double)))
--
-- >>> peekListArray 8 d_y
-- [10.0,20.0,30.0,40.0,680.0,760.0,1230.0,2240.0]
--
--
-- Multiply the matrix in CSR format with a dense matrix:
--
--
-- >>> d_z <- CUDA.mallocArray (2*(n+1)) :: IO (DevicePtr Double)
--
-- >>> memset (castDevPtr d_z :: DevicePtr Word8) (2*(n+1)*sizeOf (undefined::Double)) 0
--
-- >>> with 5.0 $ \alpha ->
--
-- >>> with 0.0 $ \beta ->
--
-- >>> dcsrmm hdl N n 2 n nnz alpha mat d_vals d_csrRowPtr d_cooColIdx d_y n beta d_z (n+1)
-- >> peekListArray (2*(n+1)) d_z
-- [950.0,400.0,2550.0,2600.0,0.0,49300.0,15200.0,132300.0,131200.0,0.0]
--
--
-- Finally, we should free the device memory we allocated, and
-- release the Sparse BLAS context handle:
--
--
-- >>> Sparse.destroy hdl
--
--
--
-- - Additional information
--
--
-- For more information, see the NVIDIA cuSPARSE documentation:
--
-- http://docs.nvidia.com/cuda/cusparse/index.html
module Foreign.CUDA.BLAS.Sparse
-- | For functions which take scalar value arguments, determines whether
-- those values are passed by reference on the host or device.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsepointermode_t
data PointerMode
Host :: PointerMode
Device :: PointerMode
-- | An opaque handle to the cuSPARSE library context, which is passed to
-- all library function calls.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehandlet
newtype Handle
Handle :: Ptr () -> Handle
-- | This function initializes the cuSPARSE library and creates a handle on
-- the cuSPARSE context. It must be called before any other cuSPARSE API
-- function is invoked. It allocates hardware resources necessary for
-- accessing the GPU.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsecreate
create :: IO Handle
-- | This function releases CPU-side resources used by the cuSPARSE
-- library. The release of GPU-side resources may be deferred until the
-- application shuts down.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroy
destroy :: Handle -> IO ()
-- | Set the pointer mode used by cuSPARSE library functions.
--
-- The default mode is for values to be passed by reference from the
-- host.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetpointermode
setPointerMode :: Handle -> PointerMode -> IO ()
-- | Get the pointer mode used by cuSPARSE library functions to pass scalar
-- arguments.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetpointermode
getPointerMode :: Handle -> IO PointerMode
newtype Info_prune
Info_prune :: Ptr () -> Info_prune
[useInfo_prune] :: Info_prune -> Ptr ()
newtype Info_csru2csr
Info_csru2csr :: Ptr () -> Info_csru2csr
[useInfo_csru2csr] :: Info_csru2csr -> Ptr ()
newtype Info_color
Info_color :: Ptr () -> Info_color
[useInfo_color] :: Info_color -> Ptr ()
-- | https://docs.nvidia.com/cuda/cusparse/index.html#csrsm2infot
newtype Info_csrsm2
Info_csrsm2 :: Ptr () -> Info_csrsm2
[useInfo_csrsm2] :: Info_csrsm2 -> Ptr ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrgemm2infot
newtype Info_csrgemm2
Info_csrgemm2 :: Ptr () -> Info_csrgemm2
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrilu02infot
newtype Info_bsrilu02
Info_bsrilu02 :: Ptr () -> Info_bsrilu02
[useInfo_bsrilu02] :: Info_bsrilu02 -> Ptr ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsric02infot
newtype Info_bsric02
Info_bsric02 :: Ptr () -> Info_bsric02
[useInfo_bsric02] :: Info_bsric02 -> Ptr ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrsvminfot
newtype Info_bsrsm2
Info_bsrsm2 :: Ptr () -> Info_bsrsm2
-- | http://docs.nvidia.com/cuda/cusparse/index.html#bsrsv2infot
newtype Info_bsrsv2
Info_bsrsv2 :: Ptr () -> Info_bsrsv2
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrilu02infot
newtype Info_csrilu02
Info_csrilu02 :: Ptr () -> Info_csrilu02
[useInfo_csrilu02] :: Info_csrilu02 -> Ptr ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csric02infot
newtype Info_csric02
Info_csric02 :: Ptr () -> Info_csric02
[useInfo_csric02] :: Info_csric02 -> Ptr ()
-- | http://docs.nvidia.com/cuda/cusparse/index.html#csrsv2infot
newtype Info_csrsv2
Info_csrsv2 :: Ptr () -> Info_csrsv2
-- | An opaque structure holding the information collected in the analysis
-- phase of the solution of the sparse triangular linear system.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesolveanalysisinfot
newtype Info
Info :: Ptr () -> Info
-- | Create and initialise the solve and analysis structure to default
-- values.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsecreatesolveanalysisinfo
createInfo :: IO Info
-- | Release memory associated with a matrix solver structure.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroysolveanalysisinfo
destroyInfo :: Info -> IO ()
createInfo_csrsv2 :: IO Info_csrsv2
destroyInfo_csrsv2 :: Info_csrsv2 -> IO ()
createInfo_csric02 :: IO Info_csric02
destroyInfo_csric02 :: Info_csric02 -> IO ()
createInfo_csrilu02 :: IO Info_csrilu02
destroyInfo_csrilu02 :: Info_csrilu02 -> IO ()
createInfo_bsrsv2 :: IO Info_bsrsv2
destroyInfo_bsrsv2 :: Info_bsrsv2 -> IO ()
createInfo_bsrsm2 :: IO Info_bsrsm2
destroyInfo_bsrsm2 :: Info_bsrsm2 -> IO ()
createInfo_bsric02 :: IO Info_bsric02
destroyInfo_bsric02 :: Info_bsric02 -> IO ()
createInfo_bsrilu02 :: IO Info_bsrilu02
destroyInfo_bsrilu02 :: Info_bsrilu02 -> IO ()
createInfo_csrgemm2 :: IO Info_csrgemm2
destroyInfo_csrgemm2 :: Info_csrgemm2 -> IO ()
createInfo_csrsm2 :: IO Info_csrsm2
destroyInfo_csrsm2 :: Info_csrsm2 -> IO ()
createInfo_color :: IO Info_color
destroyInfo_color :: Info_color -> IO ()
createInfo_csru2csr :: IO Info_csru2csr
destroyInfo_csru2csr :: Info_csru2csr -> IO ()
createInfo_prune :: IO Info_prune
destroyInfo_prune :: Info_prune -> IO ()
data CUSparseException
ExitCode :: Status -> CUSparseException
UserError :: String -> CUSparseException
-- | Error codes used by cuSPARSE library functions
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsestatust
data Status
Success :: Status
NotInitialized :: Status
AllocFailed :: Status
InvalidValue :: Status
ArchMismatch :: Status
MappingError :: Status
ExecutionFailed :: Status
InternalError :: Status
MatrixTypeNotSupported :: Status
ZeroPivot :: Status
NotSupported :: Status
describe :: Status -> String
-- | Raise a CUSparseException in the IO Monad
cusparseError :: String -> IO a
-- | Throw an error if given error code is not CUSPARSE_STATUS_SUCCESS
checkStatus :: CInt -> IO ()
-- | Indicates the type of matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsematrixtypet
data MatrixType
General :: MatrixType
Symmetric :: MatrixType
Hermitian :: MatrixType
Triangular :: MatrixType
-- | Indicates whether indexing of matrix elements starts at zero or one.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparseindexbaset
data IndexBase
Zero :: IndexBase
One :: IndexBase
-- | Indicates whether the upper or lower part of the sparse matrix is
-- stored.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsefillmodet
data Fill
Lower :: Fill
Upper :: Fill
-- | Indicates whether the diagonal elements of the matrix are unity. The
-- diagonal elements are always assumed to be present, but if Unit
-- is passed to an API routine, then the routine assumes that all
-- diagonal entries are unity and will not read or modify those entries.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsediagtypet
data Diagonal
NonUnit :: Diagonal
Unit :: Diagonal
-- | An opaque type used to describe the shape and properties of a matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsematdescrt
newtype MatrixDescriptor
MatrixDescriptor :: Ptr () -> MatrixDescriptor
createMatDescr :: IO MatrixDescriptor
-- | Release memory associated with a matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroymatdescr
destroyMatDescr :: MatrixDescriptor -> IO ()
-- | Get the Diagonal type field of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmatdiagtype
getDiagonal :: MatrixDescriptor -> IO Diagonal
-- | Get the Fill mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmatfillmode
getFillMode :: MatrixDescriptor -> IO Fill
-- | Get the IndexBase mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmatindexbase
getIndexBase :: MatrixDescriptor -> IO IndexBase
-- | Get the MatrixType mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsegetmattype
getMatrixType :: MatrixDescriptor -> IO MatrixType
-- | Set the Diagonal type field of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmatdiagtype
setDiagonal :: MatrixDescriptor -> Diagonal -> IO ()
-- | Set the Fill mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmatfillmode
setFillMode :: MatrixDescriptor -> Fill -> IO ()
-- | Set the IndexBase mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmatindexbase
setIndexBase :: MatrixDescriptor -> IndexBase -> IO ()
-- | Set the MatrixType mode of the matrix descriptor.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsesetmattype
setMatrixType :: MatrixDescriptor -> MatrixType -> IO ()
-- | Indicates how to perform the partitioning of the matrix into regular
-- (ELL) and irregular (COO) parts of the HYB format.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybpartitiont
data HybridPartition
Auto :: HybridPartition
User :: HybridPartition
Max :: HybridPartition
-- | An opaque structure holding the matrix in hybrid (HYB) format.
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsehybmatt
newtype Hybrid
Hybrid :: Ptr () -> Hybrid
-- | Create a new (opaque) hybrid matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsecreatehybmat
createHYB :: IO Hybrid
-- | Destroy and release any memory associated with a hybrid matrix.
--
--
-- http://docs.nvidia.com/cuda/cusparse/index.html#cusparsedestroyhybmat
destroyHYB :: Hybrid -> IO ()