Epetra_LAPACK.h

Go to the documentation of this file.
00001 
00002 //@HEADER
00003 /*
00004 ************************************************************************
00005 
00006               Epetra: Linear Algebra Services Package 
00007                 Copyright (2001) Sandia Corporation
00008 
00009 Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00010 license for use of this work by or on behalf of the U.S. Government.
00011 
00012 This library is free software; you can redistribute it and/or modify
00013 it under the terms of the GNU Lesser General Public License as
00014 published by the Free Software Foundation; either version 2.1 of the
00015 License, or (at your option) any later version.
00016  
00017 This library is distributed in the hope that it will be useful, but
00018 WITHOUT ANY WARRANTY; without even the implied warranty of
00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020 Lesser General Public License for more details.
00021  
00022 You should have received a copy of the GNU Lesser General Public
00023 License along with this library; if not, write to the Free Software
00024 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00025 USA
00026 Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00027 
00028 ************************************************************************
00029 */
00030 //@HEADER
00031 
00032 #ifndef EPETRA_LAPACK_H
00033 #define EPETRA_LAPACK_H
00034 
00036 
00052 #include "Epetra_Object.h"
00053 
00054 class Epetra_LAPACK {
00055     
00056   public:
00058 
00059 
00060 
00062   Epetra_LAPACK(void);
00063 
00064 
00066 
00068   Epetra_LAPACK(const Epetra_LAPACK& LAPACK);
00069 
00071   virtual ~Epetra_LAPACK(void);
00073 
00074 
00076 
00077   
00079   void POTRF( const char UPLO, const int N, float * A, const int LDA, int * INFO) const;
00081   void POTRF( const char UPLO, const int N, double * A, const int LDA, int * INFO) const;
00082 
00084   void POTRS( const char UPLO, const int N, const int NRHS, const float * A, const int LDA, float * X, const int LDX, int * INFO) const;
00086   void POTRS( const char UPLO, const int N, const int NRHS, const double * A, const int LDA, double * X, const int LDX, int * INFO) const;
00087 
00089   void POTRI( const char UPLO, const int N, float * A, const int LDA, int * INFO) const;
00091   void POTRI( const char UPLO, const int N, double * A, const int LDA, int * INFO) const;
00092 
00094   void POCON( const char UPLO, const int N, const float * A, const int LDA, const float ANORM, 
00095         float * RCOND, float * WORK, int * IWORK, int * INFO) const;
00097   void POCON( const char UPLO, const int N, const double * A, const int LDA, const double ANORM, 
00098         double * RCOND, double * WORK, int * IWORK, int * INFO) const;
00099 
00101   void POSV( const char UPLO, const int N, const int NRHS, float * A, const int LDA, float * X, const int LDX, int * INFO) const;
00103   void POSV( const char UPLO, const int N, const int NRHS, double * A, const int LDA, double * X, const int LDX, int * INFO) const;
00104 
00106   void POEQU(const int N, const float * A, const int LDA, float * S, float * SCOND, float * AMAX, int * INFO) const;
00108   void POEQU(const int N, const double * A, const int LDA, double * S, double * SCOND, double * AMAX, int * INFO) const;
00109 
00111   void PORFS(const char UPLO, const int N, const int NRHS, const float * A, const int LDA, const float * AF, const int LDAF, 
00112        const float * B, const int LDB, float * X, const int LDX, 
00113        float * FERR, float * BERR, float * WORK, int * IWORK, int * INFO) const;
00115   void PORFS(const char UPLO, const int N, const int NRHS, const double * A, const int LDA, const double * AF, const int LDAF, 
00116        const double * B, const int LDB, double * X, const int LDX,
00117        double * FERR, double * BERR, double * WORK, int * IWORK, int * INFO) const;
00118 
00120   void POSVX(const char FACT, const char UPLO, const int N, const int NRHS, float * A, const int LDA, float * AF, const int LDAF, 
00121        const char EQUED, float * S, float * B, const int LDB, float * X, const int LDX, float * RCOND, 
00122        float * FERR, float * BERR, float * WORK, int * IWORK, int * INFO) const;
00124   void POSVX(const char FACT, const char UPLO, const int N, const int NRHS, double * A, const int LDA, double * AF, const int LDAF, 
00125        const char EQUED, double * S, double * B, const int LDB, double * X, const int LDX, double * RCOND, 
00126        double * FERR, double * BERR, double * WORK, int * IWORK, int * INFO) const;
00128 
00130 
00131 
00133   void GELS( const char TRANS, const int M, const int N, const int NRHS, double* A, const int LDA, 
00134     double* B, const int LDB, double* WORK, const int LWORK, int * INFO) const;
00136   void GETRF( const int M, const int N, float * A, const int LDA, int * IPIV, int * INFO) const;
00138   void GETRF( const int M, const int N, double * A, const int LDA, int * IPIV, int * INFO) const;
00139 
00141   void GEQRF( const int M, const int N,  float * A, const int LDA,  float * TAU,  float * WORK, const int lwork, int * INFO) const;
00143   void GEQRF( const int M, const int N, double * A, const int LDA, double * TAU, double * WORK, const int lwork, int * INFO) const;
00144 
00146   void GETRS( const char TRANS, const int N, const int NRHS, const float * A, const int LDA, const int * IPIV, float * X, const int LDX, int * INFO) const;
00148   void GETRS( const char TRANS, const int N, const int NRHS, const double * A, const int LDA, const int * IPIV, double * X, const int LDX, int * INFO) const;
00149 
00151   void GETRI( const int N, float * A, const int LDA, int * IPIV, float * WORK, const int * LWORK, int * INFO) const;
00153   void GETRI( const int N, double * A, const int LDA, int * IPIV, double * WORK, const int * LWORK, int * INFO) const;
00154 
00156   void GECON( const char NORM, const int N, const float * A, const int LDA, const float ANORM, 
00157         float * RCOND, float * WORK, int * IWORK, int * INFO) const;
00159   void GECON( const char NORM, const int N, const double * A, const int LDA, const double ANORM, 
00160         double * RCOND, double * WORK, int * IWORK, int * INFO) const;
00161 
00163   void GESV( const int N, const int NRHS, float * A, const int LDA, int * IPIV, float * X, const int LDX, int * INFO) const;
00165   void GESV( const int N, const int NRHS, double * A, const int LDA, int * IPIV, double * X, const int LDX, int * INFO) const;
00166 
00168   void GEEQU(const int M, const int N, const float * A, const int LDA, float * R, float * C, float * ROWCND, float * COLCND, float * AMAX, int * INFO) const;
00170   void GEEQU(const int M, const int N, const double * A, const int LDA, double * R, double * C, double * ROWCND, double * COLCND, double * AMAX, int * INFO) const;
00171 
00173   void GERFS(const char TRANS, const int N, const int NRHS, const float * A, const int LDA, const float * AF, const int LDAF, 
00174        const int * IPIV, const float * B, const int LDB, float * X, const int LDX, 
00175        float * FERR, float * BERR, float * WORK, int * IWORK, int * INFO) const;
00177   void GERFS(const char TRANS, const int N, const int NRHS, const double * A, const int LDA, const double * AF, const int LDAF, 
00178        const int * IPIV, const double * B, const int LDB, double * X, const int LDX,
00179        double * FERR, double * BERR, double * WORK, int * IWORK, int * INFO) const;
00180 
00182   void GESVX(const char FACT, const char TRANS, const int N, const int NRHS, float * A, const int LDA, float * AF, const int LDAF, int * IPIV, 
00183        const char EQUED, float * R, float * C, float * B, const int LDB, float * X, const int LDX, float * RCOND, 
00184        float * FERR, float * BERR, float * WORK, int * IWORK, int * INFO) const;
00186   void GESVX(const char FACT, const char TRANS, const int N, const int NRHS, double * A, const int LDA, double * AF, const int LDAF, int * IPIV, 
00187        const char EQUED, double * R, double * C, double * B, const int LDB, double * X, const int LDX, double * RCOND, 
00188        double * FERR, double * BERR, double * WORK, int * IWORK, int * INFO) const;
00189 
00190 
00192   void GEHRD(const int N, const int ILO, const int IHI, float * A, const int LDA, float * TAU, float * WORK, const int LWORK, int * INFO) const;
00194   void GEHRD(const int N, const int ILO, const int IHI, double * A, const int LDA, double * TAU, double * WORK, const int LWORK, int * INFO) const;
00196 
00198 
00199 
00200   void HSEQR( const char JOB, const char COMPZ, const int N, const int ILO, const int IHI, float * H, const int LDH, float * WR, float * WI,
00201         float * Z, const int LDZ, float * WORK, const int LWORK, int * INFO) const;
00203   void HSEQR( const char JOB, const char COMPZ, const int N, const int ILO, const int IHI, double * H, const int LDH, double * WR, double * WI,
00204         double * Z, const int LDZ, double * WORK, const int LWORK, int * INFO) const;
00206 
00208 
00209 
00210   void ORGQR( const int M, const int N, const int K, float * A, const int LDA, float * TAU, float * WORK, const int LWORK, int * INFO) const;
00212   void ORGQR( const int M, const int N, const int K, double * A, const int LDA, double * TAU, double * WORK, const int LWORK, int * INFO) const;
00213 
00215   void ORGHR( const int N, const int ILO, const int IHI, float * A, const int LDA, float * TAU, float * WORK, const int LWORK, int * INFO) const;
00217   void ORGHR( const int N, const int ILO, const int IHI, double * A, const int LDA, double * TAU, double * WORK, const int LWORK, int * INFO) const;
00218 
00220   void ORMHR( const char SIDE, const char TRANS, const int M, const int N, const int ILO, const int IHI, const float * A, const int LDA, 
00221         const float * TAU, float * C,
00222         const int LDC, float * WORK, const int LWORK, int * INFO) const;
00224   void ORMHR( const char SIDE, const char TRANS, const int M, const int N, const int ILO, const int IHI, const double * A, const int LDA, 
00225         const double * TAU, double * C,
00226         const int LDC, double * WORK, const int LWORK, int * INFO) const;
00228   void LARFT( const char DIRECT, const char STOREV, const int N, const int K, double * V, const int LDV, double * TAU, double * T, const int LDT) const;
00230   void LARFT( const char DIRECT, const char STOREV, const int N, const int K, float * V, const int LDV, float * TAU, float * T, const int LDT) const;
00232 
00234 
00235 
00237 
00239   void TREVC( const char SIDE, const char HOWMNY, int * SELECT, const int N, const float * T, const int LDT, float *VL, const int LDVL,
00240         float * VR, const int LDVR, const int MM, int * M, float * WORK, int * INFO) const;
00242 
00244   void TREVC( const char SIDE, const char HOWMNY, int * SELECT, const int N, const double * T, const int LDT, double *VL, const int LDVL,
00245         double * VR, const int LDVR, const int MM, int  *M, double * WORK, int * INFO) const;
00246 
00248   void TREXC( const char COMPQ, const int N, float * T, const int LDT, float * Q, const int LDQ, int IFST, int ILST, 
00249         float * WORK, int * INFO) const;
00251   void TREXC( const char COMPQ, const int N, double * T, const int LDT, double * Q, const int LDQ, int IFST, int ILST, 
00252         double * WORK, int * INFO) const;
00254 
00256 
00257 
00259   void GESVD( const char JOBU, const char JOBVT, const int M, const int N, float * A, const int LDA, float * S, float * U,
00260         const int LDU, float * VT, const int LDVT, float * WORK, const int * LWORK, int * INFO) const;
00262   void GESVD( const char JOBU, const char JOBVT, const int M, const int N, double * A, const int LDA, double * S, double * U,
00263         const int LDU, double * VT, const int LDVT, double * WORK, const int * LWORK, int * INFO) const;
00264 
00266   void GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L,  double* A,  const int LDA,  double* B,  const int LDB,
00267                           double* ALPHA,  double* BETA,  double* U,  const int LDU, double* V, const int LDV, double* Q, const int LDQ, double* WORK, int* IWORK,
00268                           int* INFO) const;
00270   void GGSVD(const char JOBU, const char JOBV, const char JOBQ, const int M, const int N, const int P, int * K, int * L,  float* A,  const int LDA,  float* B,  const int LDB,
00271                           float* ALPHA,  float* BETA,  float* U,  const int LDU, float* V, const int LDV, float* Q, const int LDQ, float* WORK, int* IWORK,
00272                           int* INFO) const;
00274 
00276 
00277 
00278   void GEEV(const char JOBVL, const char JOBVR, const int N, double* A, const int LDA, double* WR, double* WI, 
00279       double* VL, const int LDVL, double* VR, const int LDVR, double* WORK, const int LWORK, int* INFO) const;
00281   void GEEV(const char JOBVL, const char JOBVR, const int N, float* A, const int LDA, float* WR, float* WI, 
00282       float* VL, const int LDVL, float* VR, const int LDVR, float* WORK, const int LWORK, int* INFO) const;
00283 
00285   void SPEV(const char JOBZ, const char UPLO, const int N, double* AP, double* W, double* Z, int LDZ, double* WORK, int* INFO) const;
00287   void SPEV(const char JOBZ, const char UPLO, const int N, float* AP, float* W, float* Z, int LDZ, float* WORK, int* INFO) const;
00288 
00290   void SPGV(const int ITYPE, const char JOBZ, const char UPLO, const int N, double* AP, double* BP, double* W, double* Z, const int LDZ, double* WORK, int* INFO) const;
00292   void SPGV(const int ITYPE, const char JOBZ, const char UPLO, const int N, float* AP, float* BP, float* W, float* Z, const int LDZ, float* WORK, int* INFO) const;
00293 
00295   void SYEV(const char JOBZ, const char UPLO, const int N, double* A, const int LDA, double* W, double* WORK, const int LWORK, int* INFO) const;
00297   void SYEV(const char JOBZ, const char UPLO, const int N, float* A, const int LDA, float* W, float* WORK, const int LWORK, int* INFO) const;
00298 
00300   void SYEVD(const char JOBZ, const char UPLO,  const int N,  double* A,  const int LDA,  double* W,  
00301        double* WORK,  const int LWORK,  int* IWORK, const int LIWORK, int* INFO) const;
00303   void SYEVD(const char JOBZ, const char UPLO,  const int N,  float* A,  const int LDA,  float* W,  
00304        float* WORK,  const int LWORK,  int* IWORK, const int LIWORK, int* INFO) const;
00305 
00307   void SYEVX(const char JOBZ, const char RANGE, const char UPLO,  const int N,  double* A,  const int LDA,  
00308        const double* VL,  const double* VU,  const int* IL,  const int* IU,
00309        const double ABSTOL,  int * M,  double* W,  double* Z,  const int LDZ, double* WORK, 
00310        const int LWORK, int* IWORK, int* IFAIL,
00311        int* INFO) const;
00313   void SYEVX(const char JOBZ, const char RANGE, const char UPLO,  const int N,  float* A,  const int LDA,  
00314        const float* VL,  const float* VU,  const int* IL,  const int* IU,
00315        const float ABSTOL,  int * M,  float* W,  float* Z,  const int LDZ, float* WORK, 
00316        const int LWORK, int* IWORK, int* IFAIL,
00317        int* INFO) const;
00318 
00320   void SYGV(const int ITYPE, const char JOBZ, const char UPLO, const int N, double* A, const int LDA, double* B, 
00321       const int LDB, double* W, double* WORK, const int LWORK, int* INFO) const;
00323   void SYGV(const int ITYPE, const char JOBZ, const char UPLO, const int N, float* A, const int LDA, float* B, 
00324       const int LDB, float* W, float* WORK, const int LWORK, int* INFO) const;
00325 
00327   void SYGVX(const int ITYPE, const char JOBZ, const char RANGE, const char UPLO, const int N, 
00328        double* A, const int LDA, double* B, const int LDB, const double* VL, const double* VU,
00329        const int* IL, const int* IU, const double ABSTOL, int* M, double* W, double* Z, 
00330        const int LDZ,  double* WORK,  const int LWORK,  int* IWORK,
00331        int* IFAIL, int* INFO) const;
00333   void SYGVX(const int ITYPE, const char JOBZ, const char RANGE, const char UPLO, const int N, 
00334        float* A, const int LDA, float* B, const int LDB, const float* VL, const float* VU,
00335        const int* IL, const int* IU, const float ABSTOL, int* M, float* W, float* Z, 
00336        const int LDZ,  float* WORK,  const int LWORK,  int* IWORK,
00337        int* IFAIL, int* INFO) const;
00338 
00340   void SYEVR(const char JOBZ, const char RANGE, const char UPLO,  const int N,  double* A,  const int LDA,  const double* VL,  const double* VU,  const int *IL,  const int *IU,
00341                           const double ABSTOL,  int* M,  double* W,  double* Z, const int LDZ, int* ISUPPZ, double* WORK, const int LWORK, int* IWORK,
00342                           const int LIWORK, int* INFO) const;
00344   void SYEVR(const char JOBZ, const char RANGE, const char UPLO,  const int N,  float* A,  const int LDA,  
00345        const float* VL,  const float* VU,  const int *IL,  const int *IU,
00346        const float ABSTOL,  int* M,  float* W,  float* Z, const int LDZ, int* ISUPPZ, 
00347        float* WORK, const int LWORK, int* IWORK,
00348        const int LIWORK, int* INFO) const;
00349 
00351   void GEEVX(const char BALANC, const char JOBVL, const char JOBVR, const char SENSE, const int N, double* A, const int LDA, double* WR, double* WI,  double* VL,
00352        const int LDVL,  double* VR,  const int LDVR,  int* ILO,  int* IHI,  double* SCALE, double* ABNRM, double* RCONDE,
00353        double* RCONDV, double* WORK, const int LWORK, int* IWORK, int* INFO) const;
00355   void GEEVX(const char BALANC, const char JOBVL, const char JOBVR, const char SENSE, const int N, float* A, const int LDA, float* WR, float* WI,  float* VL,
00356        const int LDVL,  float* VR,  const int LDVR,  int* ILO,  int* IHI,  float* SCALE, float* ABNRM, float* RCONDE,
00357        float* RCONDV, float* WORK, const int LWORK, int* IWORK, int* INFO) const;
00358 
00360   void GESDD(const char JOBZ, const int M, const int N, double* A, const int LDA,  double* S,  double* U,  const int LDU,  double* VT,  const int LDVT,  double* WORK,
00361        const int LWORK, int* IWORK, int* INFO) const;
00363   void GESDD(const char JOBZ, const int M, const int N, float* A, const int LDA,  float* S,  float* U,  const int LDU,  float* VT,  const int LDVT,  float* WORK,
00364        const int LWORK, int* IWORK, int* INFO) const;
00366 
00367   void GGEV(const char JOBVL,  const char JOBVR,  const int N,  double* A,  const int LDA,  double* B, const int LDB, double* ALPHAR, double* ALPHAI,
00368       double* BETA, double* VL, const int LDVL, double* VR, const int LDVR, double* WORK, const int LWORK, int* INFO) const;
00370   void GGEV(const char JOBVL,  const char JOBVR,  const int N,  float* A,  const int LDA,  float* B, const int LDB, float* ALPHAR, float* ALPHAI,
00371       float* BETA, float* VL, const int LDVL, float* VR, const int LDVR, float* WORK, const int LWORK, int* INFO) const;
00372 
00374 
00376 
00377 
00378   void GGLSE(const int M, const int N, const int P, double* A, const int LDA, double* B, const int LDB, 
00379        double* C, double* D, double* X, double* WORK, const int LWORK, int* INFO) const;
00381   void GGLSE(const int M, const int N, const int P, float* A, const int LDA, float* B, const int LDB, 
00382        float* C, float* D, float* X, float* WORK, const int LWORK, int* INFO) const;
00384 
00386 
00387 
00388   void LAMCH ( const char CMACH, float & T) const;
00390   void LAMCH ( const char CMACH, double & T) const;
00392 
00393 };
00394 
00395 // Epetra_LAPACK constructor
00396 inline Epetra_LAPACK::Epetra_LAPACK(void){}
00397 // Epetra_LAPACK constructor
00398 inline Epetra_LAPACK::Epetra_LAPACK(const Epetra_LAPACK& LAPACK){(void)LAPACK;}
00399 // Epetra_LAPACK destructor
00400 inline Epetra_LAPACK::~Epetra_LAPACK(){}
00401 
00402 #endif /* EPETRA_LAPACK_H */

Generated on Wed May 12 21:41:05 2010 for Epetra Package Browser (Single Doxygen Collection) by  doxygen 1.4.7