XLPack 7.0
XLPack Numerical Library (Excel VBA) Reference Manual
Loading...
Searching...
No Matches

◆ ZCsrSsr()

Sub ZCsrSsr ( Uplo As  String,
N As  Long,
Val() As  Complex,
Rowptr() As  Long,
Colind() As  Long,
Val2() As  Complex,
Rowptr2() As  Long,
Colind2() As  Long,
Optional Info As  Long,
Optional Base As  Long = -1,
Optional Base2 As  Long = 0 
)

CSR (symmetric full matrix) -> SSR (CSR sparse matrix packed form) (Complex matrices)

Purpose
This function converts the general CSR sparse symmetric matrix containing all elements to the CSR sparse symmetric matrix containing only upper or lower triangular elements.

In current version, the triangular elements (not including diagonal elements) other than specified by uplo in input matrix will be simply ignored, and it is not tested if it is symmetric matrix.
Parameters
[in]UploSpecifies whether the upper or lower triangular part is stored in the output matrix.
= "U": A is stored in upper triangular part.
= "L": A is stored in lower triangular part.
[in]NNumber of rows and columns of the matrix. (N >= 0) (if N = 0, returns without computation)
[in]Val()Array Val(LVal - 1) (LVal >= Nnz)
Values of nonzero elements of input matrix (where Nnz is the number of nonzero elements).
[in]Rowptr()Array Rowptr(LRowptr - 1) (LRowptr >= N + 1)
Row pointers of input matrix.
[in]Colind()Array Colind(LColind - 1) (LColind >= Nnz)
Column indices of input matrix (where Nnz is the number of nonzero elements).
[out]Val2()Array Val2(LVal2 - 1) (LVal2 >= Nnz2) (Nnz2 >= the number of nonzero elements of upper or lower triangular part of input matrix)
Values of nonzero elements of output matrix.
[out]Rowptr2()Array Rowptr2(LRowptr2 - 1) (LRowptr2 >= N + 1)
Row pointers of output matrix.
[out]Colind2()Array Colind2(LColind2 - 1) (LColind2 >= Nnz2)
Column indices of output matrix.
[out]Info(Optional)
= 0: Successful exit.
= i < 0: The (-i)-th argument is invalid.
[in]Base(Optional)
Indexing of Rowptr() and Colind().
= 0: Zero-based (C style) indexing: Starting index is 0.
= 1: One-based (Fortran style) indexing: Starting index is 1.
(default: Assumes 1 if Rowptr(0) = 1, 0 otherwise)
[in]Base2(Optional)
Indexing of Rowptr2() and Colind2(). (default = 0)
= 0: Zero-based (C style) indexing: Starting index is 0.
= 1: One-based (Fortran style) indexing: Starting index is 1.