![]() |
CLA3P v0.3.1
Compact Linear Algebra Parallel Portable Package
|
High-performance matrix multiplications (GEMM). More...
Functions | |
| template<typename T_Scalar> | |
| void | cla3p::ops::mult (T_Scalar alpha, op_t opA, const dns::XxMatrix< T_Scalar > &A, op_t opB, const dns::XxMatrix< T_Scalar > &B, T_Scalar beta, dns::XxMatrix< T_Scalar > &C) |
| Updates a general matrix with a matrix-matrix product. | |
| template<typename T_Scalar> | |
| void | cla3p::ops::trimult (T_Scalar alpha, op_t opA, const dns::XxMatrix< T_Scalar > &A, dns::XxMatrix< T_Scalar > &B) |
| Replaces a matrix with a scaled triangular matrix-matrix product. | |
| template<typename T_Scalar> | |
| void | cla3p::ops::trimult (T_Scalar alpha, dns::XxMatrix< T_Scalar > &B, op_t opA, const dns::XxMatrix< T_Scalar > &A) |
| Replaces a matrix with a scaled triangular matrix-matrix product. | |
| template<typename T_Scalar> | |
| void | cla3p::ops::trisol (T_Scalar alpha, op_t opA, const dns::XxMatrix< T_Scalar > &A, dns::XxMatrix< T_Scalar > &B) |
| Replaces a matrix with the scaled solution of a triangular system. | |
| template<typename T_Scalar> | |
| void | cla3p::ops::trisol (T_Scalar alpha, dns::XxMatrix< T_Scalar > &B, op_t opA, const dns::XxMatrix< T_Scalar > &A) |
| Replaces a matrix with the scaled solution of a triangular system. | |
| template<typename T_Int, typename T_Scalar> | |
| void | cla3p::ops::mult (T_Scalar alpha, op_t opA, const csr::XxMatrix< T_Int, T_Scalar > &A, const dns::XxMatrix< T_Scalar > &B, T_Scalar beta, dns::XxMatrix< T_Scalar > &C) |
| Updates a general dense matrix with a sparse-dense matrix-matrix product. | |
| template<typename T_Int, typename T_Scalar> | |
| void | cla3p::ops::mult (T_Scalar alpha, op_t opA, const csc::XxMatrix< T_Int, T_Scalar > &A, const dns::XxMatrix< T_Scalar > &B, T_Scalar beta, dns::XxMatrix< T_Scalar > &C) |
| Updates a general dense matrix with a sparse-dense matrix-matrix product. | |
| template<typename T_Int, typename T_Scalar> | |
| void | cla3p::ops::mult (T_Scalar alpha, op_t opA, const csr::XxMatrix< T_Int, T_Scalar > &A, op_t opB, const csr::XxMatrix< T_Int, T_Scalar > &B, T_Scalar beta, dns::XxMatrix< T_Scalar > &C) |
| Updates a dense matrix with a sparse-sparse matrix-matrix product. | |
| template<typename T_Int, typename T_Scalar> | |
| void | cla3p::ops::mult (T_Scalar alpha, op_t opA, const csc::XxMatrix< T_Int, T_Scalar > &A, op_t opB, const csc::XxMatrix< T_Int, T_Scalar > &B, T_Scalar beta, dns::XxMatrix< T_Scalar > &C) |
| Updates a dense matrix with a sparse-sparse matrix-matrix product. | |
| template<typename T_Int, typename T_Scalar> | |
| csr::XxMatrix< T_Int, T_Scalar > | cla3p::ops::mult (T_Scalar alpha, op_t opA, const csr::XxMatrix< T_Int, T_Scalar > &A, op_t opB, const csr::XxMatrix< T_Int, T_Scalar > &B) |
| Creates a general sparse matrix from a sparse-sparse matrix-matrix product. | |
| template<typename T_Int, typename T_Scalar> | |
| csc::XxMatrix< T_Int, T_Scalar > | cla3p::ops::mult (T_Scalar alpha, op_t opA, const csc::XxMatrix< T_Int, T_Scalar > &A, op_t opB, const csc::XxMatrix< T_Int, T_Scalar > &B) |
| Creates a general sparse matrix from a sparse-sparse matrix-matrix product. | |
High-performance matrix multiplications (GEMM).
| void cla3p::ops::mult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const dns::XxMatrix< T_Scalar > & | A, | ||
| op_t | opB, | ||
| const dns::XxMatrix< T_Scalar > & | B, | ||
| T_Scalar | beta, | ||
| dns::XxMatrix< T_Scalar > & | C ) |
Updates a general matrix with a matrix-matrix product.
Performs the operation \( C = \beta \cdot C + \alpha \cdot op_A(A) \cdot op_B(B) \). C can be General/Symmetric/Hermitian. If C is Symmetric/Hermitian, it is assumed that the outcome of the operation \( op_A(A) \cdot op_B(B) \) is also Symmetric/Hermitian and only the corresponding part (upper/lower) will be calculated. Valid combinations are the following:
| A | B | opA | opB | C |
|---|---|---|---|---|
| General | General | unconstrained | unconstrained | General/Symmetric/Hermitian |
| Symmetric | General | ignored | must be set to N | General |
| Hermitian | General | ignored | must be set to N | General |
| Triangular | General | unconstrained | must be set to N | General |
| General | Symmetric | must be set to N | ignored | General |
| General | Hermitian | must be set to N | ignored | General |
| General | Triangular | must be set to N | unconstrained | General |
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input matrix. |
| [in] | opB | The operation to be performed for matrix B. |
| [in] | B | The input matrix. |
| [in] | beta | The scaling coefficient for C. |
| [in,out] | C | The matrix to be updated. |
| void cla3p::ops::trimult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const dns::XxMatrix< T_Scalar > & | A, | ||
| dns::XxMatrix< T_Scalar > & | B ) |
Replaces a matrix with a scaled triangular matrix-matrix product.
Performs the operation \( B = \alpha \cdot op_A(A) \cdot B \).
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input triangular matrix. |
| [in,out] | B | The matrix to be replaced. |
| void cla3p::ops::trimult | ( | T_Scalar | alpha, |
| dns::XxMatrix< T_Scalar > & | B, | ||
| op_t | opA, | ||
| const dns::XxMatrix< T_Scalar > & | A ) |
Replaces a matrix with a scaled triangular matrix-matrix product.
Performs the operation \( B = \alpha \cdot B \cdot op_A(A) \).
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in,out] | B | The matrix to be replaced. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input triangular matrix. |
| void cla3p::ops::trisol | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const dns::XxMatrix< T_Scalar > & | A, | ||
| dns::XxMatrix< T_Scalar > & | B ) |
Replaces a matrix with the scaled solution of a triangular system.
Solves the system \( op_A(A) \cdot X = \alpha \cdot B \).
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input triangular matrix. |
| [in,out] | B | On entry, the rhs, on exit the system solution X. |
| void cla3p::ops::trisol | ( | T_Scalar | alpha, |
| dns::XxMatrix< T_Scalar > & | B, | ||
| op_t | opA, | ||
| const dns::XxMatrix< T_Scalar > & | A ) |
Replaces a matrix with the scaled solution of a triangular system.
Solves the system \( X \cdot op_A(A) = \alpha \cdot B \).
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in,out] | B | On entry, the rhs, on exit the system solution X. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input triangular matrix. |
| void cla3p::ops::mult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const csr::XxMatrix< T_Int, T_Scalar > & | A, | ||
| const dns::XxMatrix< T_Scalar > & | B, | ||
| T_Scalar | beta, | ||
| dns::XxMatrix< T_Scalar > & | C ) |
Updates a general dense matrix with a sparse-dense matrix-matrix product.
Performs the operation \( C = \beta \cdot C + \alpha \cdot op_A(A) \cdot B \). Valid combinations are the following:
| A | B | opA | C |
|---|---|---|---|
| General | General | unconstrained | General |
| Symmetric | General | ignored | General |
| Hermitian | General | ignored | General |
| T_Int | The integer type for indexing. |
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input sparse matrix. |
| [in] | B | The input dense matrix. |
| [in] | beta | The scaling coefficient for C. |
| [in,out] | C | The dense matrix to be updated. |
| void cla3p::ops::mult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const csc::XxMatrix< T_Int, T_Scalar > & | A, | ||
| const dns::XxMatrix< T_Scalar > & | B, | ||
| T_Scalar | beta, | ||
| dns::XxMatrix< T_Scalar > & | C ) |
Updates a general dense matrix with a sparse-dense matrix-matrix product.
Performs the operation \( C = \beta \cdot C + \alpha \cdot op_A(A) \cdot B \). Valid combinations are the following:
| A | B | opA | C |
|---|---|---|---|
| General | General | unconstrained | General |
| Symmetric | General | ignored | General |
| Hermitian | General | ignored | General |
| T_Int | The integer type for indexing. |
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input sparse matrix. |
| [in] | B | The input dense matrix. |
| [in] | beta | The scaling coefficient for C. |
| [in,out] | C | The dense matrix to be updated. |
| void cla3p::ops::mult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const csr::XxMatrix< T_Int, T_Scalar > & | A, | ||
| op_t | opB, | ||
| const csr::XxMatrix< T_Int, T_Scalar > & | B, | ||
| T_Scalar | beta, | ||
| dns::XxMatrix< T_Scalar > & | C ) |
Updates a dense matrix with a sparse-sparse matrix-matrix product.
Performs the operation \( C = \beta \cdot C + \alpha \cdot op_A(A) \cdot op_B(B) \). Valid combinations are the following:
| A | B | opA | opB |
|---|---|---|---|
| General | General | unconstrained | unconstrained |
| T_Int | The integer type for indexing. |
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input sparse matrix. |
| [in] | opB | The operation to be performed for matrix B. |
| [in] | B | The input dense matrix. |
| [in] | beta | The scaling coefficient for C. |
| [in,out] | C | The dense matrix to be updated. |
| void cla3p::ops::mult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const csc::XxMatrix< T_Int, T_Scalar > & | A, | ||
| op_t | opB, | ||
| const csc::XxMatrix< T_Int, T_Scalar > & | B, | ||
| T_Scalar | beta, | ||
| dns::XxMatrix< T_Scalar > & | C ) |
Updates a dense matrix with a sparse-sparse matrix-matrix product.
Performs the operation \( C = \beta \cdot C + \alpha \cdot op_A(A) \cdot op_B(B) \). Valid combinations are the following:
| A | B | opA | opB |
|---|---|---|---|
| General | General | unconstrained | unconstrained |
| T_Int | The integer type for indexing. |
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input sparse matrix. |
| [in] | opB | The operation to be performed for matrix B. |
| [in] | B | The input dense matrix. |
| [in] | beta | The scaling coefficient for C. |
| [in,out] | C | The dense matrix to be updated. |
| csr::XxMatrix< T_Int, T_Scalar > cla3p::ops::mult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const csr::XxMatrix< T_Int, T_Scalar > & | A, | ||
| op_t | opB, | ||
| const csr::XxMatrix< T_Int, T_Scalar > & | B ) |
Creates a general sparse matrix from a sparse-sparse matrix-matrix product.
Performs the operation \( \alpha \cdot op_A(A) \cdot op_B(B) \). Valid combinations are the following:
| A | B | opA | opB |
|---|---|---|---|
| General | General | N or T | N or T |
| T_Int | The integer type for indexing. |
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input sparse matrix. |
| [in] | opB | The operation to be performed for matrix B. |
| [in] | B | The input sparse matrix. |
| csc::XxMatrix< T_Int, T_Scalar > cla3p::ops::mult | ( | T_Scalar | alpha, |
| op_t | opA, | ||
| const csc::XxMatrix< T_Int, T_Scalar > & | A, | ||
| op_t | opB, | ||
| const csc::XxMatrix< T_Int, T_Scalar > & | B ) |
Creates a general sparse matrix from a sparse-sparse matrix-matrix product.
Performs the operation \( \alpha \cdot op_A(A) \cdot op_B(B) \). Valid combinations are the following:
| A | B | opA | opB |
|---|---|---|---|
| General | General | N or T | N or T |
| T_Int | The integer type for indexing. |
| T_Scalar | The scalar type (e.g., float, double, complex). |
| [in] | alpha | The scaling coefficient. |
| [in] | opA | The operation to be performed for matrix A. |
| [in] | A | The input sparse matrix. |
| [in] | opB | The operation to be performed for matrix B. |
| [in] | B | The input sparse matrix. |