Class CudaSolveSparse
CudaSolvSparse: The cuSolverSP library was mainly designed to a solve sparse linear system AxB and the least-squares problem x = argmin||A*z-b||
Inheritance
Implements
Inherited Members
Namespace: ManagedCuda.CudaSolve
Assembly: CudaSolve.dll
Syntax
public class CudaSolveSparse : IDisposable
Constructors
| Improve this Doc View SourceCudaSolveSparse()
Create new sparse solve instance
Declaration
public CudaSolveSparse()
CudaSolveSparse(CudaStream)
Create new sparse solve instance using stream stream
Declaration
public CudaSolveSparse(CudaStream stream)
Parameters
| Type | Name | Description |
|---|---|---|
| CudaStream | stream |
Methods
| Improve this Doc View SourceCsreigsHost(Int32, Int32, CudaSparseMatrixDescriptor, cuDoubleComplex[], Int32[], Int32[], cuDoubleComplex, cuDoubleComplex, ref Int32)
Declaration
public void CsreigsHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuDoubleComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuDoubleComplex left_bottom_corner, cuDoubleComplex right_upper_corner, ref int num_eigs)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | |
| System.Int32 | nnz | |
| CudaSparseMatrixDescriptor | descrA | |
| cuDoubleComplex[] | csrValA | |
| System.Int32[] | csrRowPtrA | |
| System.Int32[] | csrColIndA | |
| cuDoubleComplex | left_bottom_corner | |
| cuDoubleComplex | right_upper_corner | |
| System.Int32 | num_eigs |
CsreigsHost(Int32, Int32, CudaSparseMatrixDescriptor, cuFloatComplex[], Int32[], Int32[], cuFloatComplex, cuFloatComplex, ref Int32)
Declaration
public void CsreigsHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuFloatComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuFloatComplex left_bottom_corner, cuFloatComplex right_upper_corner, ref int num_eigs)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | |
| System.Int32 | nnz | |
| CudaSparseMatrixDescriptor | descrA | |
| cuFloatComplex[] | csrValA | |
| System.Int32[] | csrRowPtrA | |
| System.Int32[] | csrColIndA | |
| cuFloatComplex | left_bottom_corner | |
| cuFloatComplex | right_upper_corner | |
| System.Int32 | num_eigs |
CsreigsHost(Int32, Int32, CudaSparseMatrixDescriptor, Double[], Int32[], Int32[], cuDoubleComplex, cuDoubleComplex, ref Int32)
Declaration
public void CsreigsHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, double[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuDoubleComplex left_bottom_corner, cuDoubleComplex right_upper_corner, ref int num_eigs)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | |
| System.Int32 | nnz | |
| CudaSparseMatrixDescriptor | descrA | |
| System.Double[] | csrValA | |
| System.Int32[] | csrRowPtrA | |
| System.Int32[] | csrColIndA | |
| cuDoubleComplex | left_bottom_corner | |
| cuDoubleComplex | right_upper_corner | |
| System.Int32 | num_eigs |
CsreigsHost(Int32, Int32, CudaSparseMatrixDescriptor, Single[], Int32[], Int32[], cuFloatComplex, cuFloatComplex, ref Int32)
Declaration
public void CsreigsHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, float[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuFloatComplex left_bottom_corner, cuFloatComplex right_upper_corner, ref int num_eigs)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | |
| System.Int32 | nnz | |
| CudaSparseMatrixDescriptor | descrA | |
| System.Single[] | csrValA | |
| System.Int32[] | csrRowPtrA | |
| System.Int32[] | csrColIndA | |
| cuFloatComplex | left_bottom_corner | |
| cuFloatComplex | right_upper_corner | |
| System.Int32 | num_eigs |
Csreigvsi(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuDoubleComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, cuDoubleComplex, CudaDeviceVariable<cuDoubleComplex>, Int32, Double, ref cuDoubleComplex, CudaDeviceVariable<cuDoubleComplex>)
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void Csreigvsi(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuDoubleComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, cuDoubleComplex mu0, CudaDeviceVariable<cuDoubleComplex> x0, int maxite, double tol, ref cuDoubleComplex mu, CudaDeviceVariable<cuDoubleComplex> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuDoubleComplex> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuDoubleComplex | mu0 | initial guess of eigenvalue. |
| CudaDeviceVariable<cuDoubleComplex> | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Double | tol | tolerance for convergence. |
| cuDoubleComplex | mu | approximated eigenvalue nearest mu0 under tolerance. |
| CudaDeviceVariable<cuDoubleComplex> | x | approximated eigenvector of size m. |
Csreigvsi(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuFloatComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, cuFloatComplex, CudaDeviceVariable<cuFloatComplex>, Int32, Single, ref cuFloatComplex, CudaDeviceVariable<cuFloatComplex>)
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void Csreigvsi(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuFloatComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, cuFloatComplex mu0, CudaDeviceVariable<cuFloatComplex> x0, int maxite, float tol, ref cuFloatComplex mu, CudaDeviceVariable<cuFloatComplex> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuFloatComplex> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuFloatComplex | mu0 | initial guess of eigenvalue. |
| CudaDeviceVariable<cuFloatComplex> | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Single | tol | tolerance for convergence. |
| cuFloatComplex | mu | approximated eigenvalue nearest mu0 under tolerance. |
| CudaDeviceVariable<cuFloatComplex> | x | approximated eigenvector of size m. |
Csreigvsi(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Double>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, Double, CudaDeviceVariable<Double>, Int32, Double, ref Double, CudaDeviceVariable<Double>)
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void Csreigvsi(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<double> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, double mu0, CudaDeviceVariable<double> x0, int maxite, double tol, ref double mu, CudaDeviceVariable<double> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Double> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Double | mu0 | initial guess of eigenvalue. |
| CudaDeviceVariable<System.Double> | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Double | tol | tolerance for convergence. |
| System.Double | mu | approximated eigenvalue nearest mu0 under tolerance. |
| CudaDeviceVariable<System.Double> | x | approximated eigenvector of size m. |
Csreigvsi(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Single>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, Single, CudaDeviceVariable<Single>, Int32, Single, ref Single, CudaDeviceVariable<Single>)
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void Csreigvsi(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<float> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, float mu0, CudaDeviceVariable<float> x0, int maxite, float tol, ref float mu, CudaDeviceVariable<float> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Single> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Single | mu0 | initial guess of eigenvalue. |
| CudaDeviceVariable<System.Single> | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Single | tol | tolerance for convergence. |
| System.Single | mu | approximated eigenvalue nearest mu0 under tolerance. |
| CudaDeviceVariable<System.Single> | x | approximated eigenvector of size m. |
CsreigvsiHost(Int32, Int32, CudaSparseMatrixDescriptor, cuDoubleComplex[], Int32[], Int32[], cuDoubleComplex, cuDoubleComplex[], Int32, Double, ref cuDoubleComplex, cuDoubleComplex[])
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void CsreigvsiHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuDoubleComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuDoubleComplex mu0, cuDoubleComplex[] x0, int maxite, double tol, ref cuDoubleComplex mu, cuDoubleComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuDoubleComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuDoubleComplex | mu0 | initial guess of eigenvalue. |
| cuDoubleComplex[] | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Double | tol | tolerance for convergence. |
| cuDoubleComplex | mu | approximated eigenvalue nearest mu0 under tolerance. |
| cuDoubleComplex[] | x | approximated eigenvector of size m. |
CsreigvsiHost(Int32, Int32, CudaSparseMatrixDescriptor, cuFloatComplex[], Int32[], Int32[], cuFloatComplex, cuFloatComplex[], Int32, Single, ref cuFloatComplex, cuFloatComplex[])
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void CsreigvsiHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuFloatComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuFloatComplex mu0, cuFloatComplex[] x0, int maxite, float tol, ref cuFloatComplex mu, cuFloatComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuFloatComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuFloatComplex | mu0 | initial guess of eigenvalue. |
| cuFloatComplex[] | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Single | tol | tolerance for convergence. |
| cuFloatComplex | mu | approximated eigenvalue nearest mu0 under tolerance. |
| cuFloatComplex[] | x | approximated eigenvector of size m. |
CsreigvsiHost(Int32, Int32, CudaSparseMatrixDescriptor, Double[], Int32[], Int32[], Double, Double[], Int32, Double, ref Double, Double[])
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void CsreigvsiHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, double[] csrValA, int[] csrRowPtrA, int[] csrColIndA, double mu0, double[] x0, int maxite, double tol, ref double mu, double[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Double[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Double | mu0 | initial guess of eigenvalue. |
| System.Double[] | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Double | tol | tolerance for convergence. |
| System.Double | mu | approximated eigenvalue nearest mu0 under tolerance. |
| System.Double[] | x | approximated eigenvector of size m. |
CsreigvsiHost(Int32, Int32, CudaSparseMatrixDescriptor, Single[], Int32[], Int32[], Single, Single[], Int32, Single, ref Single, Single[])
This function solves the simple eigenvalue problem Ax=lambdax by shift-inverse method.
Declaration
public void CsreigvsiHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, float[] csrValA, int[] csrRowPtrA, int[] csrColIndA, float mu0, float[] x0, int maxite, float tol, ref float mu, float[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Single[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Single | mu0 | initial guess of eigenvalue. |
| System.Single[] | x0 | initial guess of eigenvector, a vecotr of size m. |
| System.Int32 | maxite | maximum iterations in shift-inverse method. |
| System.Single | tol | tolerance for convergence. |
| System.Single | mu | approximated eigenvalue nearest mu0 under tolerance. |
| System.Single[] | x | approximated eigenvector of size m. |
CsrissymHost(Int32, Int32, CudaSparseMatrixDescriptor, Int32[], Int32[], Int32[])
This function checks if A has symmetric pattern or not. The output parameter issym reports 1 if A is symmetric; otherwise, it reports 0.
Declaration
public int CsrissymHost(int m, int nnzA, CudaSparseMatrixDescriptor descrA, int[] csrRowPtrA, int[] csrEndPtrA, int[] csrColIndA)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. It is the size of csrValA and csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Int32[] | csrRowPtrA | integer array of m elements that contains the start of every row. |
| System.Int32[] | csrEndPtrA | integer array of m elements that contains the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnzAcolumn indices of the nonzero elements of matrix A. |
Returns
| Type | Description |
|---|---|
| System.Int32 | 1 if A is symmetric; 0 otherwise. |
CsrlsqvqrHost(Int32, Int32, Int32, CudaSparseMatrixDescriptor, cuDoubleComplex[], Int32[], Int32[], cuDoubleComplex[], Double, ref Int32, cuDoubleComplex[], Int32[], ref Double)
This function solves the following least-square problem x = argmin||A*z-b||
Declaration
public void CsrlsqvqrHost(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, cuDoubleComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuDoubleComplex[] b, double tol, ref int rankA, cuDoubleComplex[] x, int[] p, ref double min_norm)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of matrix A. |
| System.Int32 | n | number of columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuDoubleComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuDoubleComplex[] | b | right hand side vector of size m. |
| System.Double | tol | tolerance to decide rank of A. |
| System.Int32 | rankA | numerical rank of A. |
| cuDoubleComplex[] | x | solution vector of size n, x=pinv(A)*b. |
| System.Int32[] | p | a vector of size n, which represents the permuation matrix P satisfying AP^T=QR. |
| System.Double | min_norm | ||A*x-b||, x=pinv(A)*b. |
CsrlsqvqrHost(Int32, Int32, Int32, CudaSparseMatrixDescriptor, cuFloatComplex[], Int32[], Int32[], cuFloatComplex[], Single, ref Int32, cuFloatComplex[], Int32[], ref Single)
This function solves the following least-square problem x = argmin||A*z-b||
Declaration
public void CsrlsqvqrHost(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, cuFloatComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuFloatComplex[] b, float tol, ref int rankA, cuFloatComplex[] x, int[] p, ref float min_norm)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of matrix A. |
| System.Int32 | n | number of columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuFloatComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuFloatComplex[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide rank of A. |
| System.Int32 | rankA | numerical rank of A. |
| cuFloatComplex[] | x | solution vector of size n, x=pinv(A)*b. |
| System.Int32[] | p | a vector of size n, which represents the permuation matrix P satisfying AP^T=QR. |
| System.Single | min_norm | ||A*x-b||, x=pinv(A)*b. |
CsrlsqvqrHost(Int32, Int32, Int32, CudaSparseMatrixDescriptor, Double[], Int32[], Int32[], Double[], Double, ref Int32, Double[], Int32[], ref Double)
This function solves the following least-square problem x = argmin||A*z-b||
Declaration
public void CsrlsqvqrHost(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, double[] csrValA, int[] csrRowPtrA, int[] csrColIndA, double[] b, double tol, ref int rankA, double[] x, int[] p, ref double min_norm)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of matrix A. |
| System.Int32 | n | number of columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Double[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Double[] | b | right hand side vector of size m. |
| System.Double | tol | tolerance to decide rank of A. |
| System.Int32 | rankA | numerical rank of A. |
| System.Double[] | x | solution vector of size n, x=pinv(A)*b. |
| System.Int32[] | p | a vector of size n, which represents the permuation matrix P satisfying AP^T=QR. |
| System.Double | min_norm | ||A*x-b||, x=pinv(A)*b. |
CsrlsqvqrHost(Int32, Int32, Int32, CudaSparseMatrixDescriptor, Single[], Int32[], Int32[], Single[], Single, ref Int32, Single[], Int32[], ref Single)
This function solves the following least-square problem x = argmin||A*z-b||
Declaration
public void CsrlsqvqrHost(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, float[] csrValA, int[] csrRowPtrA, int[] csrColIndA, float[] b, float tol, ref int rankA, float[] x, int[] p, ref float min_norm)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of matrix A. |
| System.Int32 | n | number of columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Single[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Single[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide rank of A. |
| System.Int32 | rankA | numerical rank of A. |
| System.Single[] | x | solution vector of size n, x=pinv(A)*b. |
| System.Int32[] | p | a vector of size n, which represents the permuation matrix P satisfying AP^T=QR. |
| System.Single | min_norm | ||A*x-b||, x=pinv(A)*b. |
Csrlsvchol(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuDoubleComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<cuDoubleComplex>, Single, Int32, CudaDeviceVariable<cuDoubleComplex>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvchol(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuDoubleComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<cuDoubleComplex> b, float tol, int reorder, CudaDeviceVariable<cuDoubleComplex> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuDoubleComplex> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<cuDoubleComplex> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<cuDoubleComplex> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrlsvchol(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuFloatComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<cuFloatComplex>, Single, Int32, CudaDeviceVariable<cuFloatComplex>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvchol(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuFloatComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<cuFloatComplex> b, float tol, int reorder, CudaDeviceVariable<cuFloatComplex> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuFloatComplex> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<cuFloatComplex> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<cuFloatComplex> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrlsvchol(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Double>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Double>, Single, Int32, CudaDeviceVariable<Double>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvchol(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<double> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<double> b, float tol, int reorder, CudaDeviceVariable<double> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Double> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<System.Double> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<System.Double> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrlsvchol(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Single>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Single>, Single, Int32, CudaDeviceVariable<Single>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvchol(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<float> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<float> b, float tol, int reorder, CudaDeviceVariable<float> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Single> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<System.Single> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<System.Single> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvcholHost(Int32, Int32, CudaSparseMatrixDescriptor, cuDoubleComplex[], Int32[], Int32[], cuDoubleComplex[], Single, Int32, cuDoubleComplex[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvcholHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuDoubleComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuDoubleComplex[] b, float tol, int reorder, cuDoubleComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuDoubleComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuDoubleComplex[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| cuDoubleComplex[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvcholHost(Int32, Int32, CudaSparseMatrixDescriptor, cuFloatComplex[], Int32[], Int32[], cuFloatComplex[], Single, Int32, cuFloatComplex[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvcholHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuFloatComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuFloatComplex[] b, float tol, int reorder, cuFloatComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuFloatComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuFloatComplex[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| cuFloatComplex[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvcholHost(Int32, Int32, CudaSparseMatrixDescriptor, Double[], Int32[], Int32[], Double[], Single, Int32, Double[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvcholHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, double[] csrValA, int[] csrRowPtrA, int[] csrColIndA, double[] b, float tol, int reorder, double[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Double[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Double[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| System.Double[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvcholHost(Int32, Int32, CudaSparseMatrixDescriptor, Single[], Int32[], Int32[], Single[], Single, Int32, Single[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvcholHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, float[] csrValA, int[] csrRowPtrA, int[] csrColIndA, float[] b, float tol, int reorder, float[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Single[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Single[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide singularity. |
| System.Int32 | reorder | no effect. |
| System.Single[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvluHost(Int32, Int32, CudaSparseMatrixDescriptor, cuDoubleComplex[], Int32[], Int32[], cuDoubleComplex[], Double, Int32, cuDoubleComplex[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvluHost(int n, int nnzA, CudaSparseMatrixDescriptor descrA, cuDoubleComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuDoubleComplex[] b, double tol, int reorder, cuDoubleComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuDoubleComplex[] | csrValA | array of nnzA (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnzA (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuDoubleComplex[] | b | right hand side vector of size n. |
| System.Double | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no ordering if reorder=0. Otherwise, symrcm is used to reduce zero fill-in. |
| cuDoubleComplex[] | x | solution vector of size n, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvluHost(Int32, Int32, CudaSparseMatrixDescriptor, cuFloatComplex[], Int32[], Int32[], cuFloatComplex[], Single, Int32, cuFloatComplex[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvluHost(int n, int nnzA, CudaSparseMatrixDescriptor descrA, cuFloatComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuFloatComplex[] b, float tol, int reorder, cuFloatComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuFloatComplex[] | csrValA | array of nnzA (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnzA (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuFloatComplex[] | b | right hand side vector of size n. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no ordering if reorder=0. Otherwise, symrcm is used to reduce zero fill-in. |
| cuFloatComplex[] | x | solution vector of size n, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvluHost(Int32, Int32, CudaSparseMatrixDescriptor, Double[], Int32[], Int32[], Double[], Double, Int32, Double[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvluHost(int n, int nnzA, CudaSparseMatrixDescriptor descrA, double[] csrValA, int[] csrRowPtrA, int[] csrColIndA, double[] b, double tol, int reorder, double[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Double[] | csrValA | array of nnzA (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnzA (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Double[] | b | right hand side vector of size n. |
| System.Double | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no ordering if reorder=0. Otherwise, symrcm is used to reduce zero fill-in. |
| System.Double[] | x | solution vector of size n, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvluHost(Int32, Int32, CudaSparseMatrixDescriptor, Single[], Int32[], Int32[], Single[], Single, Int32, Single[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvluHost(int n, int nnzA, CudaSparseMatrixDescriptor descrA, float[] csrValA, int[] csrRowPtrA, int[] csrColIndA, float[] b, float tol, int reorder, float[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Single[] | csrValA | array of nnzA (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnzA (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Single[] | b | right hand side vector of size n. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no ordering if reorder=0. Otherwise, symrcm is used to reduce zero fill-in. |
| System.Single[] | x | solution vector of size n, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrlsvqr(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuDoubleComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<cuDoubleComplex>, Single, Int32, CudaDeviceVariable<cuDoubleComplex>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvqr(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuDoubleComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<cuDoubleComplex> b, float tol, int reorder, CudaDeviceVariable<cuDoubleComplex> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuDoubleComplex> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<cuDoubleComplex> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<cuDoubleComplex> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrlsvqr(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuFloatComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<cuFloatComplex>, Single, Int32, CudaDeviceVariable<cuFloatComplex>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvqr(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuFloatComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<cuFloatComplex> b, float tol, int reorder, CudaDeviceVariable<cuFloatComplex> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuFloatComplex> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<cuFloatComplex> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<cuFloatComplex> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrlsvqr(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Double>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Double>, Single, Int32, CudaDeviceVariable<Double>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvqr(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<double> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<double> b, float tol, int reorder, CudaDeviceVariable<double> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Double> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<System.Double> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<System.Double> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrlsvqr(Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Single>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Single>, Single, Int32, CudaDeviceVariable<Single>)
This function solves the linear system A*x=b
Declaration
public int Csrlsvqr(int m, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<float> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<float> b, float tol, int reorder, CudaDeviceVariable<float> x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Single> | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| CudaDeviceVariable<System.Single> | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| CudaDeviceVariable<System.Single> | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvqrHost(Int32, Int32, CudaSparseMatrixDescriptor, cuDoubleComplex[], Int32[], Int32[], cuDoubleComplex[], Single, Int32, cuDoubleComplex[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvqrHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuDoubleComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuDoubleComplex[] b, float tol, int reorder, cuDoubleComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuDoubleComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuDoubleComplex[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| cuDoubleComplex[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvqrHost(Int32, Int32, CudaSparseMatrixDescriptor, cuFloatComplex[], Int32[], Int32[], cuFloatComplex[], Single, Int32, cuFloatComplex[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvqrHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, cuFloatComplex[] csrValA, int[] csrRowPtrA, int[] csrColIndA, cuFloatComplex[] b, float tol, int reorder, cuFloatComplex[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| cuFloatComplex[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| cuFloatComplex[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| cuFloatComplex[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvqrHost(Int32, Int32, CudaSparseMatrixDescriptor, Double[], Int32[], Int32[], Double[], Single, Int32, Double[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvqrHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, double[] csrValA, int[] csrRowPtrA, int[] csrColIndA, double[] b, float tol, int reorder, double[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Double[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Double[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| System.Double[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
CsrlsvqrHost(Int32, Int32, CudaSparseMatrixDescriptor, Single[], Int32[], Int32[], Single[], Single, Int32, Single[])
This function solves the linear system A*x=b
Declaration
public int CsrlsvqrHost(int m, int nnz, CudaSparseMatrixDescriptor descrA, float[] csrValA, int[] csrRowPtrA, int[] csrColIndA, float[] b, float tol, int reorder, float[] x)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows and columns of matrix A. |
| System.Int32 | nnz | number of nonzeros of matrix A. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Single[] | csrValA | array of nnz (= csrRowPtrA(n) * csrRowPtrA(0)) nonzero elements of matrix A. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Single[] | b | right hand side vector of size m. |
| System.Single | tol | tolerance to decide if singular or not. |
| System.Int32 | reorder | no effect. |
| System.Single[] | x | solution vector of size m, x = inv(A)*b. |
Returns
| Type | Description |
|---|---|
| System.Int32 | -1 if A is invertible. Otherwise, first index j such that U(j,j)≈0 |
Csrperm_bufferSizeHost(Int32, Int32, Int32, CudaSparseMatrixDescriptor, Int32[], Int32[], Int32[], Int32[])
Given a left permutation vector p which corresponds to permutation matrix P and a right permutation vector q which corresponds to permutation matrix Q, this function computes permutation of matrix A by B = PAQ^T
Declaration
public SizeT Csrperm_bufferSizeHost(int m, int n, int nnzA, CudaSparseMatrixDescriptor descrA, int[] csrRowPtrA, int[] csrColIndA, int[] p, int[] q)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of matrix A. |
| System.Int32 | n | number of columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. It is the size of csrValA and csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Int32[] | p | left permutation vector of size m. |
| System.Int32[] | q | right permutation vector of size n. |
Returns
| Type | Description |
|---|---|
| SizeT | number of bytes of the buffer. |
CsrpermHost(Int32, Int32, Int32, CudaSparseMatrixDescriptor, Int32[], Int32[], Int32[], Int32[], Int32[], Byte[])
Given a left permutation vector p which corresponds to permutation matrix P and a right permutation vector q which corresponds to permutation matrix Q, this function computes permutation of matrix A by B = PAQ^T
Declaration
public void CsrpermHost(int m, int n, int nnzA, CudaSparseMatrixDescriptor descrA, int[] csrRowPtrA, int[] csrColIndA, int[] p, int[] q, int[] map, byte[] pBuffer)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of matrix A. |
| System.Int32 | n | number of columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. It is the size of csrValA and csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Int32[] | p | left permutation vector of size m. |
| System.Int32[] | q | right permutation vector of size n. |
| System.Int32[] | map | integer array of nnzA indices. If the user wants to get relationship between A and B, map must be set 0:1:(nnzA-1). |
| System.Byte[] | pBuffer | buffer allocated by the user, the size is returned by csrperm_bufferSize(). |
CsrqrAnalysisBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CsrQrInfo)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrAnalysisBatched(int m, int n, int nnzA, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CsrQrInfo info)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnzA | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| CsrQrInfo | info | opaque structure for QR factorization. |
CsrqrBufferInfoBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuDoubleComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, Int32, CsrQrInfo, ref SizeT, ref SizeT)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrBufferInfoBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuDoubleComplex> csrVal, CudaDeviceVariable<int> csrRowPtr, CudaDeviceVariable<int> csrColInd, int batchSize, CsrQrInfo info, ref SizeT internalDataInBytes, ref SizeT workspaceInBytes)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuDoubleComplex> | csrVal | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtr | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColInd | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| SizeT | internalDataInBytes | number of bytes of the internal data. |
| SizeT | workspaceInBytes | number of bytes of the buffer in numerical factorization. |
CsrqrBufferInfoBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuFloatComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, Int32, CsrQrInfo, ref SizeT, ref SizeT)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrBufferInfoBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuFloatComplex> csrVal, CudaDeviceVariable<int> csrRowPtr, CudaDeviceVariable<int> csrColInd, int batchSize, CsrQrInfo info, ref SizeT internalDataInBytes, ref SizeT workspaceInBytes)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuFloatComplex> | csrVal | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtr | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColInd | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| SizeT | internalDataInBytes | number of bytes of the internal data. |
| SizeT | workspaceInBytes | number of bytes of the buffer in numerical factorization. |
CsrqrBufferInfoBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Double>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, Int32, CsrQrInfo, ref SizeT, ref SizeT)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrBufferInfoBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<double> csrVal, CudaDeviceVariable<int> csrRowPtr, CudaDeviceVariable<int> csrColInd, int batchSize, CsrQrInfo info, ref SizeT internalDataInBytes, ref SizeT workspaceInBytes)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Double> | csrVal | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtr | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColInd | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| SizeT | internalDataInBytes | number of bytes of the internal data. |
| SizeT | workspaceInBytes | number of bytes of the buffer in numerical factorization. |
CsrqrBufferInfoBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Single>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, Int32, CsrQrInfo, ref SizeT, ref SizeT)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrBufferInfoBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<float> csrVal, CudaDeviceVariable<int> csrRowPtr, CudaDeviceVariable<int> csrColInd, int batchSize, CsrQrInfo info, ref SizeT internalDataInBytes, ref SizeT workspaceInBytes)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Single> | csrVal | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtr | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColInd | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| SizeT | internalDataInBytes | number of bytes of the internal data. |
| SizeT | workspaceInBytes | number of bytes of the buffer in numerical factorization. |
CsrqrsvBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuDoubleComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<cuDoubleComplex>, CudaDeviceVariable<cuDoubleComplex>, Int32, CsrQrInfo, CudaDeviceVariable<Byte>)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrsvBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuDoubleComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<cuDoubleComplex> b, CudaDeviceVariable<cuDoubleComplex> x, int batchSize, CsrQrInfo info, CudaDeviceVariable<byte> pBuffer)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuDoubleComplex> | csrValA | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| CudaDeviceVariable<cuDoubleComplex> | b | array of m*batchSize of right-hand-side vectors b0, b1, .... All vectors are aggregated one after another. |
| CudaDeviceVariable<cuDoubleComplex> | x | array of m*batchSize of solution vectors x0, x1, .... All vectors are aggregated one after another. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| CudaDeviceVariable<System.Byte> | pBuffer | buffer allocated by the user, the size is returned by cusolverSpXcsrqrBufferInfoBatched(). |
CsrqrsvBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<cuFloatComplex>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<cuFloatComplex>, CudaDeviceVariable<cuFloatComplex>, Int32, CsrQrInfo, CudaDeviceVariable<Byte>)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrsvBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<cuFloatComplex> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<cuFloatComplex> b, CudaDeviceVariable<cuFloatComplex> x, int batchSize, CsrQrInfo info, CudaDeviceVariable<byte> pBuffer)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<cuFloatComplex> | csrValA | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| CudaDeviceVariable<cuFloatComplex> | b | array of m*batchSize of right-hand-side vectors b0, b1, .... All vectors are aggregated one after another. |
| CudaDeviceVariable<cuFloatComplex> | x | array of m*batchSize of solution vectors x0, x1, .... All vectors are aggregated one after another. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| CudaDeviceVariable<System.Byte> | pBuffer | buffer allocated by the user, the size is returned by cusolverSpXcsrqrBufferInfoBatched(). |
CsrqrsvBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Double>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Double>, CudaDeviceVariable<Double>, Int32, CsrQrInfo, CudaDeviceVariable<Byte>)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrsvBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<double> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<double> b, CudaDeviceVariable<double> x, int batchSize, CsrQrInfo info, CudaDeviceVariable<byte> pBuffer)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Double> | csrValA | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| CudaDeviceVariable<System.Double> | b | array of m*batchSize of right-hand-side vectors b0, b1, .... All vectors are aggregated one after another. |
| CudaDeviceVariable<System.Double> | x | array of m*batchSize of solution vectors x0, x1, .... All vectors are aggregated one after another. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| CudaDeviceVariable<System.Byte> | pBuffer | buffer allocated by the user, the size is returned by cusolverSpXcsrqrBufferInfoBatched(). |
CsrqrsvBatched(Int32, Int32, Int32, CudaSparseMatrixDescriptor, CudaDeviceVariable<Single>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Int32>, CudaDeviceVariable<Single>, CudaDeviceVariable<Single>, Int32, CsrQrInfo, CudaDeviceVariable<Byte>)
The batched sparse QR factorization is used to solve either a set of least-squares problems or a set of linear systems
Declaration
public void CsrqrsvBatched(int m, int n, int nnz, CudaSparseMatrixDescriptor descrA, CudaDeviceVariable<float> csrValA, CudaDeviceVariable<int> csrRowPtrA, CudaDeviceVariable<int> csrColIndA, CudaDeviceVariable<float> b, CudaDeviceVariable<float> x, int batchSize, CsrQrInfo info, CudaDeviceVariable<byte> pBuffer)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | m | number of rows of each matrix Aj. |
| System.Int32 | n | number of columns of each matrix Aj. |
| System.Int32 | nnz | number of nonzeros of each matrix Aj. It is the size csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| CudaDeviceVariable<System.Single> | csrValA | array of nnzA*batchSize nonzero elements of matrices A0, A1, .... All matrices are aggregated one after another. |
| CudaDeviceVariable<System.Int32> | csrRowPtrA | integer array of m+1 elements that contains the start of every row and the end of the last row plus one. |
| CudaDeviceVariable<System.Int32> | csrColIndA | integer array of nnzAcolumn indices of the nonzero elements of each matrix Aj. |
| CudaDeviceVariable<System.Single> | b | array of m*batchSize of right-hand-side vectors b0, b1, .... All vectors are aggregated one after another. |
| CudaDeviceVariable<System.Single> | x | array of m*batchSize of solution vectors x0, x1, .... All vectors are aggregated one after another. |
| System.Int32 | batchSize | number of systems to be solved. |
| CsrQrInfo | info | opaque structure for QR factorization. |
| CudaDeviceVariable<System.Byte> | pBuffer | buffer allocated by the user, the size is returned by cusolverSpXcsrqrBufferInfoBatched(). |
CsrsymamdHost(Int32, Int32, CudaSparseMatrixDescriptor, Int32[], Int32[], Int32[])
Symmetric Approximate minimum degree algorithm based on quotient graph.
This function implements Symmetric Approximate Minimum Degree Algorithm based on Quotient Graph. It returns a permutation vector p such that A(p,p) would have less zero fill-in during Cholesky factorization.
Declaration
public void CsrsymamdHost(int n, int nnzA, CudaSparseMatrixDescriptor descrA, int[] csrRowPtrA, int[] csrColIndA, int[] p)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. It is the size of csrValA and csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Int32[] | p | permutation vector of size n. |
CsrsymmdqHost(Int32, Int32, CudaSparseMatrixDescriptor, Int32[], Int32[], Int32[])
Symmetric minimum degree algorithm based on quotient graph.
This function implements Symmetric Minimum Degree Algorithm based on Quotient Graph. It returns a permutation vector p such that A(p,p) would have less zero fill-in during Cholesky factorization.
Declaration
public void CsrsymmdqHost(int n, int nnzA, CudaSparseMatrixDescriptor descrA, int[] csrRowPtrA, int[] csrColIndA, int[] p)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. It is the size of csrValA and csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Int32[] | p | permutation vector of size n. |
CsrsymrcmHost(Int32, Int32, CudaSparseMatrixDescriptor, Int32[], Int32[], Int32[])
This function implements Symmetric Reverse Cuthill-McKee permutation. It returns a permutation vector p such that A(p,p) would concentrate nonzeros to diagonal. This is equivalent to symrcm in MATLAB, however the result may not be the same because of different heuristics in the pseudoperipheral finder.
Declaration
public void CsrsymrcmHost(int n, int nnzA, CudaSparseMatrixDescriptor descrA, int[] csrRowPtrA, int[] csrColIndA, int[] p)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | n | number of rows and columns of matrix A. |
| System.Int32 | nnzA | number of nonzeros of matrix A. It is the size of csrValA and csrColIndA. |
| CudaSparseMatrixDescriptor | descrA | the descriptor of matrix A. The supported matrix type is CUSPARSE_MATRIX_TYPE_GENERAL. Also, the supported index bases are CUSPARSE_INDEX_BASE_ZERO and CUSPARSE_INDEX_BASE_ONE. |
| System.Int32[] | csrRowPtrA | integer array of n + 1 elements that contains the start of every row and the end of the last row plus one. |
| System.Int32[] | csrColIndA | integer array of nnz (=csrRowPtrA(n) * csrRowPtrA(0)) column indices of the nonzero elements of matrix A. |
| System.Int32[] | p | permutation vector of size n. |
Dispose()
Dispose
Declaration
public void Dispose()
Dispose(Boolean)
For IDisposable
Declaration
protected virtual void Dispose(bool fDisposing)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Boolean | fDisposing |
Finalize()
For dispose
Declaration
protected void Finalize()
GetStream()
This function gets the stream to be used by the cuSolverSP library to execute its routines.
Declaration
public CudaStream GetStream()
Returns
| Type | Description |
|---|---|
| CudaStream |
SetStream(CudaStream)
This function sets the stream to be used by the cuSolverSP library to execute its routines.
Declaration
public void SetStream(CudaStream stream)
Parameters
| Type | Name | Description |
|---|---|---|
| CudaStream | stream | the stream to be used by the library. |