Changeset 1342 in Sophya for trunk/SophyaExt/LinAlg/intflapack.h


Ignore:
Timestamp:
Nov 24, 2000, 10:47:37 AM (25 years ago)
Author:
ansari
Message:

Ajout de SVD ds LapackServer - Reza 24/11/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/LinAlg/intflapack.h

    r1042 r1342  
    1010class LapackServer {
    1111public:
    12   int LinSolve(TArray<T>& a, TArray<T> & b);
     12  LapackServer();
     13  virtual ~LapackServer();
     14
     15  virtual int LinSolve(TArray<T>& a, TArray<T> & b);
     16  virtual int SVD(TArray<T>& a, TArray<T> & s);
     17  virtual int SVD(TArray<T>& a, TArray<T> & s, TArray<T> & u, TArray<T> & vt);
     18
     19  inline void SetWorkSpaceSizeFactor(int f = 2)
     20  { wspace_size_factor = (f > 1) ? f : 1; }
     21  inline int  GetWorkSpaceSizeFactor()
     22  { return wspace_size_factor; }
     23
     24private:
     25  int SVDDriver(TArray<T>& a, TArray<T> & s,
     26                TArray<T>* up=NULL, TArray<T> * vtp=NULL);
     27
     28  int wspace_size_factor;
    1329};
    1430
    1531template <class T>
    1632inline int LapackLinSolve(TArray<T>& a, TArray<T> & b)
    17   { LapackServer<T> lps; return( lps.LinSolve(a, b) );  }
     33{ LapackServer<T> lps; return( lps.LinSolve(a, b) );  }
     34
     35template <class T>
     36inline int LapackSVD(TArray<T>& a, TArray<T> & s)
     37{ LapackServer<T> lps; return( lps.SVD(a, s) ); }
     38
     39template <class T>
     40inline int LapackSVD(TArray<T>& a, TArray<T> & s, TArray<T> & u, TArray<T> & vt)
     41{ LapackServer<T> lps; return( lps.SVD(a, s, u, vt) ); }
    1842
    1943
Note: See TracChangeset for help on using the changeset viewer.