!d|&       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  [2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)None cusolverIntegral conversion!cusolverFloating conversion"cusolverObtain C value from Haskell #.$cusolverObtain Haskell # from C value.%cusolver#Convert a C enumeration to Haskell.&cusolver#Convert a Haskell enumeration to C.'cusolverMarshalling of complex numbers(cusolverMarshalling of numerals  !"$%&'()[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)None2 cusolver.Error codes used by cuSolver library functions @http://docs.nvidia.com/cuda/cusolver/index.html#cuSolverSPstatuscusolver)Raise a CUSolverException in the IO Monadcusolver#A specially formatted error messagecusolverReturn the results of a function on successful execution, otherwise throw an exception with an error string associated with the return codecusolverlThrow an exception with an error string associated with an unsuccessful return code, otherwise return unit. cusolverAThrow an error if given error code is not CUSPARSE_STATUS_SUCCESS    [2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)None-&cusolver[An opaque handle to the cuSolverDN context, which is passed to all library function calls. @http://docs.nvidia.com/cuda/cusolver/index.html#cuSolverDNhandle)cusolverThis function initializes the cuSolverDN library and creates a handle to the cuSolverDN context. It must be called before any other cuSolverDN API function is invoked. It allocates hardware resources necessary for accessing the GPU. @http://docs.nvidia.com/cuda/cusolver/index.html#cuSolverDNcreate*cusolver@This function releases resources used by the cuSolverDN library. Ahttp://docs.nvidia.com/cuda/cusolver/index.html#cuSolverDNdestroy&'()*&'()*[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)None3d+cusolverSets the execution stream which all subsequent cuSolverDn 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/cusolver/index.html#cudssetstream++ [2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)None5 ,*+-,-./01 [2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)NoneM2cusolverIIndicates which (internal) algorithm is used for refactorisation in the  routine. Ghttp://docs.nvidia.com/cuda/cusolver/index.html#cusolverRfFactorization3cusolver/Indicates whether fast mode should be used in #. Fast mode requires extra memory. Mhttp://docs.nvidia.com/cuda/cusolver/index.html#cusolverRfResetValuesFastMode4cusolverQIndicates whether numeric boosting of the pivot was used during refactorisation. Lhttp://docs.nvidia.com/cuda/cusolver/index.html#cusolverRfNumericBoostReport5cusolver(Indicates the input/output matrix format Fhttp://docs.nvidia.com/cuda/cusolver/index.html#cusolverRfMatrixFormat.cusolver6This type indicates whether eigenvectors are computed. ?http://docs.nvidia.com/cuda/cusolver/index.html#cusolverEigMode1cusolverThis type indicates which type of eigenvalue solver is used. It corresponds to the parameters used by legacy LAPACK implementations:EigType1:  A*x = lambda*B*x EigType2:  A*B*x = lambda*x EigType3:  B*A*x = lambda*x  ?http://docs.nvidia.com/cuda/cusolver/index.html#cusolverEigType6cusolverOIndicates which (internal) algorithm is used for the triangular solve routine . Ihttp://docs.nvidia.com/cuda/cusolver/index.html#cusolverRfTriangularSolve7cusolver`Indicates whether and where the unit diagonal is stored in the input/output triangular factors. Fhttp://docs.nvidia.com/cuda/cusolver/index.html#cusolverRfUnitDiagonal+  89:;<=>?@ABC2DEF3GH4IJ5KL./01234[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)NoneP? &56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl?& 56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)NoneT| &,-./01234mnopqrstuvwxyz{|}~|& ./01234-,mnopqrstuvwxyz{|}~[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)NoneZ   &')*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~&')*[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)None_ [2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)Nonekcusolver[An opaque handle to the cuSolverSP context, which is passed to all library function calls. @http://docs.nvidia.com/cuda/cusolver/index.html#cuSolverSPhandlecusolverThis function initializes the cuSolverSP library and creates a handle to the cuSolverSP context. It must be called before any other cuSolverSP API function is invoked. It allocates hardware resources necessary for accessing the GPU. ?http://docs.nvidia.com/cuda/cusolver/index.html#cusolverecreatecusolver@This function releases resources used by the cuSolverSP library. ?http://docs.nvidia.com/cuda/cusolver/index.html#cusparsedestroy[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)Nonen  [2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)Nonep3      3       [2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)Nonex{cusolverSets the execution stream which all subsequent cuSolverSp library functions will execute with. If not set, functions execute in the default stream (which never overlaps any other operations). Ahttp://docs.nvidia.com/cuda/cusolver/index.html#cusparsesetstream[2017] Trevor L. McDonellBSD3.Trevor L. McDonell <tmcdonell@cse.unsw.edu.au> experimentalnon-portable (GHC extensions)Noneza       M !"#$%&'()*+,-./0123456789:;<=>>?@AB C D E F G H I J KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~>>?@A                                  ! " # $ % & ' ( ) * + , - . B / 0 1234 5 6 7 8 9 : C ; D < = > ? @ A B C D E F !" !G H I J K L M N O P Q R S T U V W X Y Z['cusolver-0.2.0.0-6hCJA4L0D7JBbxRw58q5Un$Foreign.CUDA.Solver.Dense.Eigenvalue Foreign.CUDA.Solver.Dense.LinearForeign.CUDA.Solver.Sparse.HighForeign.CUDA.Solver.Error!Foreign.CUDA.Solver.Dense.Context Foreign.CUDA.Solver.Dense.Stream#Foreign.CUDA.Solver.Sparse.Analysis"Foreign.CUDA.Solver.Sparse.ContextForeign.CUDA.Solver.Sparse.Low!Foreign.CUDA.Solver.Sparse.Stream!Foreign.CUDA.Solver.Internal.C2HS"Foreign.CUDA.Solver.Dense.Analysis"Foreign.CUDA.Solver.Internal.Types#Foreign.CUDA.Solver.Refactorisationrefactor resetValuestriangularSolveForeign.CUDA.Solver.DenseForeign.CUDA.Solver.Sparse%cublas-0.5.0.0-DXIN8QPSZgtC9UyqFvIeZj Foreign.CUDA.BLAS.Internal.TypesCTN OperationUpperLowerFillRightLeftSide'cusparse-0.2.0.0-GqG07bsNM4SDg6saJmD6KF*Foreign.CUDA.BLAS.Sparse.Matrix.DescriptorMatrixDescriptorCUSolverExceptionExitCode UserErrorStatusSuccessNotInitialized AllocFailed InvalidValue ArchMismatch MappingErrorExecutionFailed InternalErrorMatrixTypeNotSupported NotSupported ZeroPivotInvalidLicensedescribe cusolverError requireSDK resultIfOk nothingIfOk checkStatus $fEnumStatus$fShowCUSolverException$fExceptionCUSolverException $fEqStatus $fShowStatusHandle useHandlecreatedestroy setStream Info_syevj Info_gesvdjEigModeNoVectorVectorEigTypeEigType1EigType2EigType3spotrf_bufferSizedpotrf_bufferSizecpotrf_bufferSizezpotrf_bufferSizespotrfdpotrfcpotrfzpotrfspotrsdpotrscpotrszpotrssgetrf_bufferSizedgetrf_bufferSizecgetrf_bufferSizezgetrf_bufferSizesgetrfdgetrfcgetrfzgetrfsgetrsdgetrscgetrszgetrssgeqrf_bufferSizedgeqrf_bufferSizecgeqrf_bufferSizezgeqrf_bufferSizesgeqrfdgeqrfcgeqrfzgeqrfsormqrdormqrcunmqrzunmqrssytrf_bufferSizedsytrf_bufferSizecsytrf_bufferSizezsytrf_bufferSizessytrfdsytrfcsytrfzsytrfsorgqr_bufferSizedorgqr_bufferSizecungqr_bufferSizezungqr_bufferSizesorgqrdorgqrcungqrzungqrsormqr_bufferSizedormqr_bufferSizecunmqr_bufferSizezunmqr_bufferSizesgebrd_bufferSizedgebrd_bufferSizecgebrd_bufferSizezgebrd_bufferSizesgebrddgebrdcgebrdzgebrdsgesvd_bufferSizedgesvd_bufferSizecgesvd_bufferSizezgesvd_bufferSizesgesvddgesvdcgesvdzgesvdsorgbr_bufferSizedorgbr_bufferSizecungbr_bufferSizezungbr_bufferSizesorgbrdorgbrcungbrzungbrssytrd_bufferSizedsytrd_bufferSizechetrd_bufferSizezhetrd_bufferSizessytrddsytrdchetrdzhetrdsormtr_bufferSizedormtr_bufferSizecunmtr_bufferSizezunmtr_bufferSizesormtrdormtrcunmtrzunmtrsorgtr_bufferSizedorgtr_bufferSizecungtr_bufferSizezungtr_bufferSizesorgtrdorgtrcungtrzungtrssyevd_bufferSizedsyevd_bufferSizecheevd_bufferSizezheevd_bufferSizessyevddsyevdcheevdzheevdssygvd_bufferSizedsygvd_bufferSizechegvd_bufferSizezhegvd_bufferSizessygvddsygvdchegvdzhegvdsgesvdj_bufferSizedgesvdj_bufferSizecgesvdj_bufferSizezgesvdj_bufferSizesgesvdjdgesvdjcgesvdjzgesvdjsgesvdjBatched_bufferSizedgesvdjBatched_bufferSizecgesvdjBatched_bufferSizezgesvdjBatched_bufferSizesgesvdjBatcheddgesvdjBatchedcgesvdjBatchedzgesvdjBatchedssyevj_bufferSizedsyevj_bufferSizessyevjdsyevjcheevj_bufferSizezheevj_bufferSizecheevjzheevjssyevjBatched_bufferSizedsyevjBatched_bufferSize ssyevjBatched dsyevjBatchedcheevjBatched_bufferSizezheevjBatched_bufferSize cheevjBatched zheevjBatchedssygvj_bufferSizedsygvj_bufferSizessygvjdsygvjchegvj_bufferSizezhegvj_bufferSizechegvjzhegvj Info_csrcholuseInfo_csrchol Info_csrqr useInfo_csrqrcreateInfo_csrqrdestroyInfo_csrqrcreateInfo_csrcholdestroyInfo_csrchol scsrlsvqr dcsrlsvqr ccsrlsvqr zcsrlsvqr scsrlsvchol dcsrlsvchol ccsrlsvchol zcsrlsvchol scsreigvsi dcsreigvsi ccsreigvsi zcsreigvsixcsrqrAnalysisBatchedscsrqrBufferInfoBatcheddcsrqrBufferInfoBatchedccsrqrBufferInfoBatchedzcsrqrBufferInfoBatchedscsrqrsvBatcheddcsrqrsvBatchedccsrqrsvBatchedzcsrqrsvBatchedxcsrqrAnalysisscsrqrBufferInfodcsrqrBufferInfoccsrqrBufferInfozcsrqrBufferInfo scsrqrSetup dcsrqrSetup ccsrqrSetup zcsrqrSetup scsrqrFactor dcsrqrFactor ccsrqrFactor zcsrqrFactorscsrqrZeroPivotdcsrqrZeroPivotccsrqrZeroPivotzcsrqrZeroPivot scsrqrSolve dcsrqrSolve ccsrqrSolve zcsrqrSolvexcsrcholAnalysisscsrcholBufferInfodcsrcholBufferInfoccsrcholBufferInfozcsrcholBufferInfoscsrcholFactordcsrcholFactorccsrcholFactorzcsrcholFactorscsrcholZeroPivotdcsrcholZeroPivotccsrcholZeroPivotzcsrcholZeroPivot scsrcholSolve dcsrcholSolve ccsrcholSolve zcsrcholSolvecIntConv cFloatConv cFromBoolghc-prim GHC.TypesBoolcToBoolcToEnum cFromEnum withComplex peekIntConv peekFloatConv useInfo_syevjuseInfo_gesvdjcreateInfo_gesvdjdestroyInfo_gesvdjcreateInfo_syevjdestroyInfo_syevjFactorizationAlgorithm ResetFastMode NumericBoost MatrixFormat$fEnumFactorizationAlgorithm$fEnumTriangularSolveAlgorithm useMatDescr UnitDiagonalStoredLStoredUAssumedLAssumedUTriangularSolveAlgorithmTriangularSolveAlg0TriangularSolveAlg1TriangularSolveAlg2TriangularSolveAlg3FactorizationAlg0FactorizationAlg1FactorizationAlg2 FastModeOff FastModeOn BoostNotUsed BoostUsedCSRCSC