MyraMath
Classes
gemm.h File Reference

Variety of routines all for dense Matrix*Matrix multiplies. Delegates to the BLAS. More...

#include <myramath/utility/detail/LIBPUBLIC.h>
#include <myramath/utility/Number.h>
Include dependency graph for gemm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  myra::Matrix< Number >
 Tabulates an IxJ matrix. Allows random access, has column major layout to be compatible with BLAS/LAPACK. More...
 
class  myra::CMatrixRange< Number >
 Represents a const MatrixRange. More...
 
class  myra::MatrixRange< Number >
 Represents a mutable MatrixRange. More...
 

Functions

void myra::gemm_inplace (const MatrixRange< NumberS > &C, const CMatrixRange< NumberS > &A, char op_A, const CMatrixRange< NumberS > &B, char op_B, NumberS alpha=1, NumberS beta=0)
 Updates C = beta*C + alpha*op(A)*op(B). Defaults alpha to 1 and beta to 0.
 
void myra::gemm_inplace (const MatrixRange< NumberD > &C, const CMatrixRange< NumberD > &A, char op_A, const CMatrixRange< NumberD > &B, char op_B, NumberD alpha, NumberD beta)
 Updates C = beta*C + alpha*op(A)*op(B). Defaults alpha to 1 and beta to 0.
 
void myra::gemm_inplace (const MatrixRange< NumberC > &C, const CMatrixRange< NumberC > &A, char op_A, const CMatrixRange< NumberC > &B, char op_B, NumberC alpha, NumberC beta)
 Updates C = beta*C + alpha*op(A)*op(B). Defaults alpha to 1 and beta to 0.
 
void myra::gemm_inplace (const MatrixRange< NumberZ > &C, const CMatrixRange< NumberZ > &A, char op_A, const CMatrixRange< NumberZ > &B, char op_B, NumberZ alpha, NumberZ beta)
 Updates C = beta*C + alpha*op(A)*op(B). Defaults alpha to 1 and beta to 0.
 
Matrix< NumberS > myra::gemm (const CMatrixRange< NumberS > &A, char op_A, const CMatrixRange< NumberS > &B, char op_B, NumberS alpha=1)
 Returns C = alpha*op(A)*op(B), alpha is defaulted to 1.
 
Matrix< NumberD > myra::gemm (const CMatrixRange< NumberD > &A, char op_A, const CMatrixRange< NumberD > &B, char op_B, NumberD alpha)
 Returns C = alpha*op(A)*op(B), alpha is defaulted to 1.
 
Matrix< NumberC > myra::gemm (const CMatrixRange< NumberC > &A, char op_A, const CMatrixRange< NumberC > &B, char op_B, NumberC alpha)
 Returns C = alpha*op(A)*op(B), alpha is defaulted to 1.
 
Matrix< NumberZ > myra::gemm (const CMatrixRange< NumberZ > &A, char op_A, const CMatrixRange< NumberZ > &B, char op_B, NumberZ alpha)
 Returns C = alpha*op(A)*op(B), alpha is defaulted to 1.
 
Matrix< NumberS > myra::gemm (const CMatrixRange< NumberS > &A, char op_A, const CMatrixRange< NumberS > &B, NumberS alpha)
 Returns C = alpha*op(A)*B, op_B is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberD > myra::gemm (const CMatrixRange< NumberD > &A, char op_A, const CMatrixRange< NumberD > &B, NumberD alpha)
 Returns C = alpha*op(A)*B, op_B is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberC > myra::gemm (const CMatrixRange< NumberC > &A, char op_A, const CMatrixRange< NumberC > &B, NumberC alpha)
 Returns C = alpha*op(A)*B, op_B is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberZ > myra::gemm (const CMatrixRange< NumberZ > &A, char op_A, const CMatrixRange< NumberZ > &B, NumberZ alpha)
 Returns C = alpha*op(A)*B, op_B is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberS > myra::gemm (const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, char op_B, NumberS alpha)
 Returns C = alpha*A*op(B), op_A is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberD > myra::gemm (const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, char op_B, NumberD alpha)
 Returns C = alpha*A*op(B), op_A is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberC > myra::gemm (const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, char op_B, NumberC alpha)
 Returns C = alpha*A*op(B), op_A is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberZ > myra::gemm (const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, char op_B, NumberZ alpha)
 Returns C = alpha*A*op(B), op_A is assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberS > myra::gemm (const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, NumberS alpha)
 Returns C = alpha*A*B, both op_A and op_B are assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberD > myra::gemm (const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, NumberD alpha)
 Returns C = alpha*A*B, both op_A and op_B are assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberC > myra::gemm (const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, NumberC alpha)
 Returns C = alpha*A*B, both op_A and op_B are assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberZ > myra::gemm (const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, NumberZ alpha)
 Returns C = alpha*A*B, both op_A and op_B are assumed 'N' and alpha is defaulted to 1.
 
Matrix< NumberS > myra::operator* (const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B)
 Returns A*B.
 
Matrix< NumberD > myra::operator* (const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B)
 Returns A*B.
 
Matrix< NumberC > myra::operator* (const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B)
 Returns A*B.
 
Matrix< NumberZ > myra::operator* (const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B)
 Returns A*B.
 

Detailed Description

Variety of routines all for dense Matrix*Matrix multiplies. Delegates to the BLAS.