![]() |
(git:ed6f26b)
|
Go to the source code of this file.
Functions | |
void | dbm_multiply (const bool transa, const bool transb, const double alpha, const dbm_matrix_t *matrix_a, const dbm_matrix_t *matrix_b, const double beta, dbm_matrix_t *matrix_c, const bool retain_sparsity, const double filter_eps, int64_t *flop) |
Performs a multiplication of two dbm_matrix_t matrices, as C := alpha * op( A ) * op( B ) + beta * C. | |
void dbm_multiply | ( | const bool | transa, |
const bool | transb, | ||
const double | alpha, | ||
const dbm_matrix_t * | matrix_a, | ||
const dbm_matrix_t * | matrix_b, | ||
const double | beta, | ||
dbm_matrix_t * | matrix_c, | ||
const bool | retain_sparsity, | ||
const double | filter_eps, | ||
int64_t * | flop | ||
) |
Performs a multiplication of two dbm_matrix_t matrices, as C := alpha * op( A ) * op( B ) + beta * C.
The filter_eps parameter is used to filter the resulting matrix. The filtering criterion is whether the block-frobenius norm is less than the specified epsilon. One-the-fly filtering is done such that individual multiplications are skipped if the product of the frobenius norms of the left- and right-matrix blocks are less than the specified epsilon divided by the maximum number of possible multiplies in each row. In addition a final filtering is done as well with the same epsilon value.
Performs a multiplication of two dbm_matrix_t matrices, as C := alpha * op( A ) * op( B ) + beta * C.
Definition at line 354 of file dbm_multiply.c.