GEL
2
GEL is a library for Geometry and Linear Algebra
|
00001 #if !defined(LAPACKFUNC_H_HAA_AGUST_2001) 00002 #define LAPACKFUNC_H_HAA_AGUST_2001 00003 00004 #if defined(_MSC_VER) 00005 #if defined(_DEBUG) 00006 #pragma message("Note: including lib: lapackd.lib and ignoring defaultlib : LIBC\n") 00007 #pragma comment(lib, "lapackd.lib") 00008 #else 00009 #pragma message("Note: including lib: lapack.lib and ignoring defaultlib : LIBC\n") 00010 #pragma comment(lib, "lapack.lib") 00011 #endif 00012 #pragma comment(linker, "/NODEFAULTLIB:LIBC.LIB") 00013 #endif 00014 00015 #include "Matrix.h" 00016 #include "Vector.h" 00017 00018 namespace LinAlg 00019 { 00020 00073 00074 void SVD(const CMatrix& A,CMatrix& U,CVector& s,CMatrix& V); 00076 void SVD(const CMatrix& A,CMatrix& U,CMatrix& S,CMatrix& V); 00078 CVector SVD(const CMatrix& A); 00080 00081 00107 00108 void LinearSolve(const CMatrix& A,const CVector&b,CVector& x); 00110 CVector LinearSolve(const CMatrix& A,const CVector&b); 00112 void LinearSolveSPD(const CMatrix& A,const CVector&b,CVector& x); 00114 CVector LinearSolveSPD(const CMatrix& A,const CVector&b); 00116 00117 void LinearSolveSym(const CMatrix& A, 00118 const CVector&b, 00119 CVector& x); 00120 00146 00147 void LinearLSSolve(const CMatrix& A,const CVector&b,CVector& x); 00149 CVector LinearLSSolve(const CMatrix& A,const CVector&b); 00151 00164 00165 void Invert(CMatrix& A); 00167 void Inverted(const CMatrix& A,CMatrix& InvA); 00169 CMatrix Inverted(const CMatrix& A); 00171 00172 00188 void QRfact(const CMatrix& A,CMatrix& Q, CMatrix& R); 00190 00191 00206 void RQfact(const CMatrix& A,CMatrix& R, CMatrix& Q); 00208 00222 int EigenSolutionsSym(CMatrix& Q, CVector& b); 00224 } 00225 00226 #endif // !defined(LAPACKFUNC_H_HAA_AGUST_2001)