KrisLibrary  1.0.0
BLASInterface.h
1 #ifndef MATH_LAPACK_INTERFACE_H
2 #define MATH_LAPACK_INTERFACE_H
3 
4 #include "MatrixTemplate.h"
5 
6 namespace Math {
7 
13 {
15  static float Dot(const fVector& x,const fVector& y);
16  static double Dot(const dVector& x,const dVector& y);
17  static float Norm_L2(const fVector& x);
18  static double Norm_L2(const dVector& x);
19  static float Norm_L1(const fVector& x);
20  static double Norm_L1(const dVector& x);
21  static int MaxAbsIndex(const fVector& x);
22  static int MaxAbsIndex(const dVector& x);
23  static void Madd(fVector& v,const fVector& x,float a);
24  static void Madd(dVector& v,const dVector& x,double a);
25  static void InplaceMul(fVector& v,float a);
26  static void InplaceMul(dVector& v,double a);
27 
29  static void Mul(const fMatrix& A,const fVector& x,fVector& out);
30  static void Mul(const dMatrix& A,const dVector& x,dVector& out);
31  static void MulTranspose(const fMatrix& A,const fVector& x,fVector& out);
32  static void MulTranspose(const dMatrix& A,const dVector& x,dVector& out);
33  //y = alpha*A*x + beta*y
34  static void Madd(const fMatrix& A,const fVector& x,fVector& y,float alpha=1.0,float beta=1.0);
35  static void Madd(const dMatrix& A,const dVector& x,dVector& y,double alpha=1.0,double beta=1.0);
36  //y = alpha*A^T*x + beta*y
37  static void MaddTranspose(const fMatrix& A,const fVector& x,fVector& y,float alpha=1.0,float beta=1.0);
38  static void MaddTranspose(const dMatrix& A,const dVector& x,dVector& y,double alpha=1.0,double beta=1.0);
39 
41  static void Mul(const fMatrix& A,const fMatrix& B,fMatrix& X);
42  static void Mul(const dMatrix& A,const dMatrix& B,dMatrix& X);
43  //X = alpha*op(A)*op(B) + beta*X
44  static void Madd(const fMatrix& A,const fMatrix& B,fMatrix& X,bool Atranspose=false,bool Btranspose=false,float alpha=1.0,float beta=1.0);
45  static void Madd(const dMatrix& A,const dMatrix& B,dMatrix& X,bool Atranspose=false,bool Btranspose=false,double alpha=1.0,double beta=1.0);
46 };
47 
48 } //namespace Math
49 
50 #endif
An interface to BLAS. Activated with the preprocessor flag HAVE_BLAS=1.
Definition: BLASInterface.h:12
static void Mul(const fMatrix &A, const fVector &x, fVector &out)
Level 2 BLAS.
Definition: BLASInterface.cpp:351
static float Dot(const fVector &x, const fVector &y)
Level 1 BLAS.
Definition: BLASInterface.cpp:283
Contains all definitions in the Math package.
Definition: WorkspaceBound.h:12