Function

sparse_matrix_triangular_solve_dense_float(_:_:_:_:_:_:_:)

Solves the system of equations B = alpha * T⁻¹ * B for B where B is a dense matrix and T is a triangular sparse matrix, both with double-precision values.

Declaration

func sparse_matrix_triangular_solve_dense_float(_ order: CBLAS_ORDER, _ transt: CBLAS_TRANSPOSE, _ nrhs: sparse_dimension, _ alpha: Float, _ T: sparse_matrix_float!, _ B: UnsafeMutablePointer<Float>!, _ ldb: sparse_dimension) -> sparse_status

Parameters

order

Specified the storage order for the dense matrix B. Must be one of CblasRowMajor or CblasColMajor.

transt

Specifies whether to perform the operation with T or the transpose of T. Must be one of CblasNoTrans or CblasTrans.

nrhs

The number of columns of the matrix B.

alpha

Scalar multiplier of T.

T

The sparse triangular matrix, T. Must be upper or lower triangular matrix. Will return SPARSE_ILLEGAL_PARAMETER if not a triangular matrix.

B

Pointer to the dense matrix B. The number of rows must be equal to the number of columns of T and the number of columns is nrhs. Behavior undefined if this is not met. The argument ldb describes how many elements to move between one row (row major) or column (column major). On exit holds the solution to the system of equations.

ldb

Increment in elements between rows (row major) or columns (column major) of B. Must be greater than or equal to nrhs when row major, or number of columns of A when column major.

Return Value

On success, SPARSE_SUCCESS is returned and B has been updated with result of the operation. Will return SPARSE_ILLEGAL_PARAMETER if either of order or transt are invalid or the ldb does not meet its dimension requirements. On error, B is unchanged.

Discussion

If T is of size N x N, then B must be of size N x nrhs. The matrix T must be an upper or lower triangular matrix.

See Also

Matrix-Matrix Operations

func sparse_matrix_product_sparse_double(CBLAS_ORDER, CBLAS_TRANSPOSE, Double, sparse_matrix_double!, sparse_matrix_double!, UnsafeMutablePointer<Double>!, sparse_dimension) -> sparse_status

Multiplies the sparse matrix B by the sparse matrix A and adds the result to the dense matrix C, all with double-precision values.

func sparse_matrix_product_sparse_float(CBLAS_ORDER, CBLAS_TRANSPOSE, Float, sparse_matrix_float!, sparse_matrix_float!, UnsafeMutablePointer<Float>!, sparse_dimension) -> sparse_status

Multiplies the sparse matrix B by the sparse matrix A and adds the result to the dense matrix C, all with single-precision values.

func sparse_matrix_triangular_solve_dense_double(CBLAS_ORDER, CBLAS_TRANSPOSE, sparse_dimension, Double, sparse_matrix_double!, UnsafeMutablePointer<Double>!, sparse_dimension) -> sparse_status

Solves the system of equations B = alpha * T⁻¹ * B for B where B is a dense matrix and T is a triangular sparse matrix, both with double-precision values.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software