-- 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.2.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 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.MatrixType instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.MatrixType 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.Fill instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Fill instance GHC.Show.Show Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Diagonal instance GHC.Classes.Eq Foreign.CUDA.BLAS.Sparse.Matrix.Descriptor.Diagonal 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. -- -- -- -- -- 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. -- -- -- -- -- 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 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 () -- | 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. -- -- -- -- -- 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
--   
-- -- -- -- 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 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 ()