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 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;
00143   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;
00144 
00146   void GETRI( const int N, float * A, const int LDA, int * IPIV, float * WORK, const int * LWORK, int * INFO) const;
00148   void GETRI( const int N, double * A, const int LDA, int * IPIV, double * WORK, const int * LWORK, int * INFO) const;
00149 
00151   void GECON( const char NORM, const int N, const float * A, const int LDA, const float ANORM, 
00152         float * RCOND, float * WORK, int * IWORK, int * INFO) const;
00154   void GECON( const char NORM, const int N, const double * A, const int LDA, const double ANORM, 
00155         double * RCOND, double * WORK, int * IWORK, int * INFO) const;
00156 
00158   void GESV( const int N, const int NRHS, float * A, const int LDA, int * IPIV, float * X, const int LDX, int * INFO) const;
00160   void GESV( const int N, const int NRHS, double * A, const int LDA, int * IPIV, double * X, const int LDX, int * INFO) const;
00161 
00163   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;
00165   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;
00166 
00168   void GERFS(const char TRANS, const int N, const int NRHS, const float * A, const int LDA, const float * AF, const int LDAF, 
00169        const int * IPIV, const float * B, const int LDB, float * X, const int LDX, 
00170        float * FERR, float * BERR, float * WORK, int * IWORK, int * INFO) const;
00172   void GERFS(const char TRANS, const int N, const int NRHS, const double * A, const int LDA, const double * AF, const int LDAF, 
00173        const int * IPIV, const double * B, const int LDB, double * X, const int LDX,
00174        double * FERR, double * BERR, double * WORK, int * IWORK, int * INFO) const;
00175 
00177   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, 
00178        const char EQUED, float * R, float * C, float * B, const int LDB, float * X, const int LDX, float * RCOND, 
00179        float * FERR, float * BERR, float * WORK, int * IWORK, int * INFO) const;
00181   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, 
00182        const char EQUED, double * R, double * C, double * B, const int LDB, double * X, const int LDX, double * RCOND, 
00183        double * FERR, double * BERR, double * WORK, int * IWORK, int * INFO) const;
00184 
00185 
00187   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;
00189   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;
00191 
00193 
00194 
00195   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,
00196         float * Z, const int LDZ, float * WORK, const int LWORK, int * INFO) const;
00198   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,
00199         double * Z, const int LDZ, double * WORK, const int LWORK, int * INFO) const;
00201 
00203 
00204 
00205   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;
00207   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;
00208 
00210   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, 
00211         const float * TAU, float * C,
00212         const int LDC, float * WORK, const int LWORK, int * INFO) const;
00214   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, 
00215         const double * TAU, double * C,
00216         const int LDC, double * WORK, const int LWORK, int * INFO) const;
00218 
00220 
00221 
00223 
00225   void TREVC( const char SIDE, const char HOWMNY, int * SELECT, const int N, const float * T, const int LDT, float *VL, const int LDVL,
00226         float * VR, const int LDVR, const int MM, int * M, float * WORK, int * INFO) const;
00228 
00230   void TREVC( const char SIDE, const char HOWMNY, int * SELECT, const int N, const double * T, const int LDT, double *VL, const int LDVL,
00231         double * VR, const int LDVR, const int MM, int  *M, double * WORK, int * INFO) const;
00232 
00234   void TREXC( const char COMPQ, const int N, float * T, const int LDT, float * Q, const int LDQ, int IFST, int ILST, 
00235         float * WORK, int * INFO) const;
00237   void TREXC( const char COMPQ, const int N, double * T, const int LDT, double * Q, const int LDQ, int IFST, int ILST, 
00238         double * WORK, int * INFO) const;
00240 
00242 
00243 
00245   void GESVD( const char JOBU, const char JOBVT, const int M, const int N, float * A, const int LDA, float * S, float * U,
00246         const int LDU, float * VT, const int LDVT, float * WORK, const int * LWORK, int * INFO) const;
00248   void GESVD( const char JOBU, const char JOBVT, const int M, const int N, double * A, const int LDA, double * S, double * U,
00249         const int LDU, double * VT, const int LDVT, double * WORK, const int * LWORK, int * INFO) const;
00250 
00252   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,
00253                           double* ALPHA,  double* BETA,  double* U,  const int LDU, double* V, const int LDV, double* Q, const int LDQ, double* WORK, int* IWORK,
00254                           int* INFO) const;
00256   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,
00257                           float* ALPHA,  float* BETA,  float* U,  const int LDU, float* V, const int LDV, float* Q, const int LDQ, float* WORK, int* IWORK,
00258                           int* INFO) const;
00260 
00262 
00263 
00264   void GEEV(const char JOBVL, const char JOBVR, const int N, double* A, const int LDA, double* WR, double* WI, 
00265       double* VL, const int LDVL, double* VR, const int LDVR, double* WORK, const int LWORK, int* INFO) const;
00267   void GEEV(const char JOBVL, const char JOBVR, const int N, float* A, const int LDA, float* WR, float* WI, 
00268       float* VL, const int LDVL, float* VR, const int LDVR, float* WORK, const int LWORK, int* INFO) const;
00269 
00271   void SPEV(const char JOBZ, const char UPLO, const int N, double* AP, double* W, double* Z, int LDZ, double* WORK, int* INFO) const;
00273   void SPEV(const char JOBZ, const char UPLO, const int N, float* AP, float* W, float* Z, int LDZ, float* WORK, int* INFO) const;
00274 
00276   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;
00278   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;
00279 
00281   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;
00283   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;
00284 
00286   void SYEVD(const char JOBZ, const char UPLO,  const int N,  double* A,  const int LDA,  double* W,  
00287        double* WORK,  const int LWORK,  int* IWORK, const int LIWORK, int* INFO) const;
00289   void SYEVD(const char JOBZ, const char UPLO,  const int N,  float* A,  const int LDA,  float* W,  
00290        float* WORK,  const int LWORK,  int* IWORK, const int LIWORK, int* INFO) const;
00291 
00293   void SYEVX(const char JOBZ, const char RANGE, const char UPLO,  const int N,  double* A,  const int LDA,  
00294        const double* VL,  const double* VU,  const int* IL,  const int* IU,
00295        const double ABSTOL,  int * M,  double* W,  double* Z,  const int LDZ, double* WORK, 
00296        const int LWORK, int* IWORK, int* IFAIL,
00297        int* INFO) const;
00299   void SYEVX(const char JOBZ, const char RANGE, const char UPLO,  const int N,  float* A,  const int LDA,  
00300        const float* VL,  const float* VU,  const int* IL,  const int* IU,
00301        const float ABSTOL,  int * M,  float* W,  float* Z,  const int LDZ, float* WORK, 
00302        const int LWORK, int* IWORK, int* IFAIL,
00303        int* INFO) const;
00304 
00306   void SYGV(const int ITYPE, const char JOBZ, const char UPLO, const int N, double* A, const int LDA, double* B, 
00307       const int LDB, double* W, double* WORK, const int LWORK, int* INFO) const;
00309   void SYGV(const int ITYPE, const char JOBZ, const char UPLO, const int N, float* A, const int LDA, float* B, 
00310       const int LDB, float* W, float* WORK, const int LWORK, int* INFO) const;
00311 
00313   void SYGVX(const int ITYPE, const char JOBZ, const char RANGE, const char UPLO, const int N, 
00314        double* A, const int LDA, double* B, const int LDB, const double* VL, const double* VU,
00315        const int* IL, const int* IU, const double ABSTOL, int* M, double* W, double* Z, 
00316        const int LDZ,  double* WORK,  const int LWORK,  int* IWORK,
00317        int* IFAIL, int* INFO) const;
00319   void SYGVX(const int ITYPE, const char JOBZ, const char RANGE, const char UPLO, const int N, 
00320        float* A, const int LDA, float* B, const int LDB, const float* VL, const float* VU,
00321        const int* IL, const int* IU, const float ABSTOL, int* M, float* W, float* Z, 
00322        const int LDZ,  float* WORK,  const int LWORK,  int* IWORK,
00323        int* IFAIL, int* INFO) const;
00324 
00326   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,
00327                           const double ABSTOL,  int* M,  double* W,  double* Z, const int LDZ, int* ISUPPZ, double* WORK, const int LWORK, int* IWORK,
00328                           const int LIWORK, int* INFO) const;
00330   void SYEVR(const char JOBZ, const char RANGE, const char UPLO,  const int N,  float* A,  const int LDA,  
00331        const float* VL,  const float* VU,  const int *IL,  const int *IU,
00332        const float ABSTOL,  int* M,  float* W,  float* Z, const int LDZ, int* ISUPPZ, 
00333        float* WORK, const int LWORK, int* IWORK,
00334        const int LIWORK, int* INFO) const;
00335 
00337   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,
00338        const int LDVL,  double* VR,  const int LDVR,  int* ILO,  int* IHI,  double* SCALE, double* ABNRM, double* RCONDE,
00339        double* RCONDV, double* WORK, const int LWORK, int* IWORK, int* INFO) const;
00341   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,
00342        const int LDVL,  float* VR,  const int LDVR,  int* ILO,  int* IHI,  float* SCALE, float* ABNRM, float* RCONDE,
00343        float* RCONDV, float* WORK, const int LWORK, int* IWORK, int* INFO) const;
00344 
00346   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,
00347        const int LWORK, int* IWORK, int* INFO) const;
00349   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,
00350        const int LWORK, int* IWORK, int* INFO) const;
00352 
00353   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,
00354       double* BETA, double* VL, const int LDVL, double* VR, const int LDVR, double* WORK, const int LWORK, int* INFO) const;
00356   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,
00357       float* BETA, float* VL, const int LDVL, float* VR, const int LDVR, float* WORK, const int LWORK, int* INFO) const;
00358 
00360 
00362 
00363 
00364   void GGLSE(const int M, const int N, const int P, double* A, const int LDA, double* B, const int LDB, 
00365        double* C, double* D, double* X, double* WORK, const int LWORK, int* INFO) const;
00367   void GGLSE(const int M, const int N, const int P, float* A, const int LDA, float* B, const int LDB, 
00368        float* C, float* D, float* X, float* WORK, const int LWORK, int* INFO) const;
00370 
00372 
00373 
00374   void LAMCH ( const char CMACH, float & T) const;
00376   void LAMCH ( const char CMACH, double & T) const;
00378 
00379 };
00380 
00381 // Epetra_LAPACK constructor
00382 inline Epetra_LAPACK::Epetra_LAPACK(void){}
00383 // Epetra_LAPACK constructor
00384 inline Epetra_LAPACK::Epetra_LAPACK(const Epetra_LAPACK& LAPACK){(void)LAPACK;}
00385 // Epetra_LAPACK destructor
00386 inline Epetra_LAPACK::~Epetra_LAPACK(){}
00387 
00388 #endif /* EPETRA_LAPACK_H */

Generated on Thu Sep 18 12:37:57 2008 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1