MyraMath
Classes
symm.h File Reference

Routines for symmetric Matrix * dense Matrix multiplication. More...

#include <myramath/MYRAMATH_EXPORT.h>
#include <myramath/utility/Number.h>
Include dependency graph for symm.h:

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::MatrixRange< Number >
 Represents a mutable MatrixRange. More...
 
class  myra::CMatrixRange< Number >
 Represents a const MatrixRange. More...
 
class  myra::CLowerMatrixRange< Number >
 Represents a const LowerMatrixRange. More...
 

Functions

void myra::symm_inplace (char side, char uplo, const MatrixRange< NumberS > &C, const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, NumberS alpha, NumberS beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, touching only the specified triangle of the symmetric Matrix A.
 
void myra::symm_inplace (char side, char uplo, const MatrixRange< NumberD > &C, const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, NumberD alpha, NumberD beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, touching only the specified triangle of the symmetric Matrix A.
 
void myra::symm_inplace (char side, char uplo, const MatrixRange< NumberC > &C, const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, NumberC alpha, NumberC beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, touching only the specified triangle of the symmetric Matrix A.
 
void myra::symm_inplace (char side, char uplo, const MatrixRange< NumberZ > &C, const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, NumberZ alpha, NumberZ beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, touching only the specified triangle of the symmetric Matrix A.
 
Matrix< NumberS > myra::symm (char side, char uplo, const CMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, NumberS alpha=1)
 Returns alpha*A*B or alpha*B*A, touching only the specified triangle of the symmetric Matrix A. Defaults alpha = 1.
 
Matrix< NumberD > myra::symm (char side, char uplo, const CMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, NumberD alpha)
 Returns alpha*A*B or alpha*B*A, touching only the specified triangle of the symmetric Matrix A. Defaults alpha = 1.
 
Matrix< NumberC > myra::symm (char side, char uplo, const CMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, NumberC alpha)
 Returns alpha*A*B or alpha*B*A, touching only the specified triangle of the symmetric Matrix A. Defaults alpha = 1.
 
Matrix< NumberZ > myra::symm (char side, char uplo, const CMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, NumberZ alpha)
 Returns alpha*A*B or alpha*B*A, touching only the specified triangle of the symmetric Matrix A. Defaults alpha = 1.
 
void myra::symm_inplace (char side, const MatrixRange< NumberS > &C, const CLowerMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, NumberS alpha, NumberS beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, for LowerMatrix A (upper triangle assumed symmetric)
 
void myra::symm_inplace (char side, const MatrixRange< NumberD > &C, const CLowerMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, NumberD alpha, NumberD beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, for LowerMatrix A (upper triangle assumed symmetric)
 
void myra::symm_inplace (char side, const MatrixRange< NumberC > &C, const CLowerMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, NumberC alpha, NumberC beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, for LowerMatrix A (upper triangle assumed symmetric)
 
void myra::symm_inplace (char side, const MatrixRange< NumberZ > &C, const CLowerMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, NumberZ alpha, NumberZ beta)
 Performs C = beta*C + alpha*A*B or C = beta*C + alpha*B*A, for LowerMatrix A (upper triangle assumed symmetric)
 
Matrix< NumberS > myra::symm (char side, const CLowerMatrixRange< NumberS > &A, const CMatrixRange< NumberS > &B, NumberS alpha=1)
 Returns alpha*A*B or alpha*B*A, for symmetric LowerMatrix A. Defaults alpha = 1.
 
Matrix< NumberD > myra::symm (char side, const CLowerMatrixRange< NumberD > &A, const CMatrixRange< NumberD > &B, NumberD alpha)
 Returns alpha*A*B or alpha*B*A, for symmetric LowerMatrix A. Defaults alpha = 1.
 
Matrix< NumberC > myra::symm (char side, const CLowerMatrixRange< NumberC > &A, const CMatrixRange< NumberC > &B, NumberC alpha)
 Returns alpha*A*B or alpha*B*A, for symmetric LowerMatrix A. Defaults alpha = 1.
 
Matrix< NumberZ > myra::symm (char side, const CLowerMatrixRange< NumberZ > &A, const CMatrixRange< NumberZ > &B, NumberZ alpha)
 Returns alpha*A*B or alpha*B*A, for symmetric LowerMatrix A. Defaults alpha = 1.
 

Detailed Description

Routines for symmetric Matrix * dense Matrix multiplication.