OBOE
0.1
|
00001 // Copyright (c) 2004-2007 University of Geneva, HEC, Logilab 00002 // 00003 // OBOE is published under the Common Public License. 00004 // 00005 // Authors : 00006 // Nidhi Sawhney <nsawhney@yahoo.com> 00007 // The OBOE team 00008 // 00009 00010 #ifndef ACCPM_BLAS_INTERFACE_H 00011 #define ACCPM_BLAS_INTERFACE_H 00012 00013 #include "AccpmVector.h" 00014 #include "AccpmGenMatrix.h" 00015 using namespace Accpm; 00016 00031 double AccpmLADotProd(const AccpmVector &dx, const AccpmVector &dy); 00032 00034 void AccpmLAScale(double da, AccpmVector &dx); 00035 00037 void AccpmLAMult(AccpmVector &dy, double da, const AccpmVector &dx); 00038 00043 void AccpmLAAddMult(AccpmVector &dy, double da, const AccpmVector &dx); 00044 00049 double AccpmLANorm1(const AccpmVector &dx); 00050 00056 double AccpmLANorm2(const AccpmVector &dx); 00057 00063 double AccpmLANormInf(const AccpmVector &x); 00064 00070 void AccpmLAMatTransVecMult(const RealMatrix &A, 00071 const AccpmVector &dx, 00072 AccpmVector &dy, 00073 double alpha = 1.0, double beta = 0.0); 00074 00076 void AccpmLAMatVecMult(const RealMatrix &A, 00077 const AccpmVector &dx, 00078 AccpmVector &dy, 00079 double alpha = 1.0, double beta = 0.0); 00080 00082 void AccpmLAR1Update(RealMatrix &A, const AccpmVector &dx, 00083 const AccpmVector &dy, double alpha = 1.0); 00084 00085 void AccpmLAR1Update(SymmetricMatrix &A, const AccpmVector &dx, 00086 double alpha = 1.0); 00091 void AccpmLAMatMatMult(const RealMatrix &A, 00092 const RealMatrix &B, RealMatrix &C, 00093 double alpha = 1.0, double beta = 0.0) 00094 ; 00096 void AccpmLAMatTransMatMult(const RealMatrix &A, 00097 const RealMatrix &B, RealMatrix &C, 00098 00099 double alpha = 1.0, double beta = 0.0); 00101 void AccpmLAMatMatTransMult(const RealMatrix &A, 00102 const RealMatrix &B, RealMatrix &C, 00103 double alpha = 1.0, double beta = 0.0); 00104 00109 void AccpmLAR1Update(SymmetricMatrix &C, RealMatrix &A, 00110 double alpha = 1.0, double beta = 1.0); 00111 #endif