MyraMath
Classes
gemv.h File Reference

Variety of routines all for dense Matrix*Vector multiplies. All just delegate to gemm() More...

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

Go to the source code of this file.

Classes

class  myra::CMatrixRange< Number >
 Represents a const MatrixRange. More...
 
class  myra::CVectorRange< Number >
 Represents a const VectorRange. More...
 
class  myra::VectorRange< Number >
 Represents a mutable VectorRange. More...
 
class  myra::Vector< Number >
 Tabulates a vector of length N, allows random access. More...
 

Functions

void myra::gemv_inplace (const VectorRange< NumberS > &c, const CMatrixRange< NumberS > &A, char op, const CVectorRange< NumberS > &b, NumberS alpha, NumberS beta)
 Updates c = beta*c + alpha*op(A)*b.
 
void myra::gemv_inplace (const VectorRange< NumberD > &c, const CMatrixRange< NumberD > &A, char op, const CVectorRange< NumberD > &b, NumberD alpha, NumberD beta)
 Updates c = beta*c + alpha*op(A)*b.
 
void myra::gemv_inplace (const VectorRange< NumberC > &c, const CMatrixRange< NumberC > &A, char op, const CVectorRange< NumberC > &b, NumberC alpha, NumberC beta)
 Updates c = beta*c + alpha*op(A)*b.
 
void myra::gemv_inplace (const VectorRange< NumberZ > &c, const CMatrixRange< NumberZ > &A, char op, const CVectorRange< NumberZ > &b, NumberZ alpha, NumberZ beta)
 Updates c = beta*c + alpha*op(A)*b.
 
Vector< NumberS > myra::gemv (const CMatrixRange< NumberS > &A, char op, const CVectorRange< NumberS > &b, NumberS alpha=1)
 Returns c = alpha*op(A)*b, alpha is defaulted to 1.
 
Vector< NumberD > myra::gemv (const CMatrixRange< NumberD > &A, char op, const CVectorRange< NumberD > &b, NumberD alpha)
 Returns c = alpha*op(A)*b, alpha is defaulted to 1.
 
Vector< NumberC > myra::gemv (const CMatrixRange< NumberC > &A, char op, const CVectorRange< NumberC > &b, NumberC alpha)
 Returns c = alpha*op(A)*b, alpha is defaulted to 1.
 
Vector< NumberZ > myra::gemv (const CMatrixRange< NumberZ > &A, char op, const CVectorRange< NumberZ > &b, NumberZ alpha)
 Returns c = alpha*op(A)*b, alpha is defaulted to 1.
 
Vector< NumberS > myra::gemv (const CMatrixRange< NumberS > &A, const CVectorRange< NumberS > &b, NumberS alpha=1)
 Returns c = alpha*A*b, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberD > myra::gemv (const CMatrixRange< NumberD > &A, const CVectorRange< NumberD > &b, NumberD alpha)
 Returns c = alpha*A*b, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberC > myra::gemv (const CMatrixRange< NumberC > &A, const CVectorRange< NumberC > &b, NumberC alpha)
 Returns c = alpha*A*b, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberZ > myra::gemv (const CMatrixRange< NumberZ > &A, const CVectorRange< NumberZ > &b, NumberZ alpha)
 Returns c = alpha*A*b, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberS > myra::operator* (const CMatrixRange< NumberS > &A, const CVectorRange< NumberS > &b)
 Returns A*b.
 
Vector< NumberD > myra::operator* (const CMatrixRange< NumberD > &A, const CVectorRange< NumberD > &b)
 Returns A*b.
 
Vector< NumberC > myra::operator* (const CMatrixRange< NumberC > &A, const CVectorRange< NumberC > &b)
 Returns A*b.
 
Vector< NumberZ > myra::operator* (const CMatrixRange< NumberZ > &A, const CVectorRange< NumberZ > &b)
 Returns A*b.
 
void myra::gemv_inplace (const VectorRange< NumberS > &c, const CVectorRange< NumberS > &a, const CMatrixRange< NumberS > &B, char op, NumberS alpha, NumberS beta)
 Updates c = beta*c + alpha*a*op(B)
 
void myra::gemv_inplace (const VectorRange< NumberD > &c, const CVectorRange< NumberD > &a, const CMatrixRange< NumberD > &B, char op, NumberD alpha, NumberD beta)
 Updates c = beta*c + alpha*a*op(B)
 
void myra::gemv_inplace (const VectorRange< NumberC > &c, const CVectorRange< NumberC > &a, const CMatrixRange< NumberC > &B, char op, NumberC alpha, NumberC beta)
 Updates c = beta*c + alpha*a*op(B)
 
void myra::gemv_inplace (const VectorRange< NumberZ > &c, const CVectorRange< NumberZ > &a, const CMatrixRange< NumberZ > &B, char op, NumberZ alpha, NumberZ beta)
 Updates c = beta*c + alpha*a*op(B)
 
Vector< NumberS > myra::gemv (const CVectorRange< NumberS > &a, const CMatrixRange< NumberS > &B, char op, NumberS alpha=1)
 Returns c = alpha*a*op(B), alpha is defaulted to 1.
 
Vector< NumberD > myra::gemv (const CVectorRange< NumberD > &a, const CMatrixRange< NumberD > &B, char op, NumberD alpha)
 Returns c = alpha*a*op(B), alpha is defaulted to 1.
 
Vector< NumberC > myra::gemv (const CVectorRange< NumberC > &a, const CMatrixRange< NumberC > &B, char op, NumberC alpha)
 Returns c = alpha*a*op(B), alpha is defaulted to 1.
 
Vector< NumberZ > myra::gemv (const CVectorRange< NumberZ > &a, const CMatrixRange< NumberZ > &B, char op, NumberZ alpha)
 Returns c = alpha*a*op(B), alpha is defaulted to 1.
 
Vector< NumberS > myra::gemv (const CVectorRange< NumberS > &a, const CMatrixRange< NumberS > &B, NumberS alpha=1)
 Returns c = alpha*a*B, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberD > myra::gemv (const CVectorRange< NumberD > &a, const CMatrixRange< NumberD > &B, NumberD alpha)
 Returns c = alpha*a*B, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberC > myra::gemv (const CVectorRange< NumberC > &a, const CMatrixRange< NumberC > &B, NumberC alpha)
 Returns c = alpha*a*B, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberZ > myra::gemv (const CVectorRange< NumberZ > &a, const CMatrixRange< NumberZ > &B, NumberZ alpha)
 Returns c = alpha*a*B, op is assumed 'N' and alpha is defaulted to 1.
 
Vector< NumberS > myra::operator* (const CVectorRange< NumberS > &a, const CMatrixRange< NumberS > &B)
 Returns a*B.
 
Vector< NumberD > myra::operator* (const CVectorRange< NumberD > &a, const CMatrixRange< NumberD > &B)
 Returns a*B.
 
Vector< NumberC > myra::operator* (const CVectorRange< NumberC > &a, const CMatrixRange< NumberC > &B)
 Returns a*B.
 
Vector< NumberZ > myra::operator* (const CVectorRange< NumberZ > &a, const CMatrixRange< NumberZ > &B)
 Returns a*B.
 

Detailed Description

Variety of routines all for dense Matrix*Vector multiplies. All just delegate to gemm()