Epetra Package Browser (Single Doxygen Collection) Development
Epetra_LAPACK_wrappers.h
Go to the documentation of this file.
00001 /*
00002 //@HEADER
00003 // ************************************************************************
00004 // 
00005 //               Epetra: Linear Algebra Services Package 
00006 //                 Copyright 2001 Sandia Corporation
00007 // 
00008 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
00009 // the U.S. Government retains certain rights in this software.
00010 //
00011 // Redistribution and use in source and binary forms, with or without
00012 // modification, are permitted provided that the following conditions are
00013 // met:
00014 //
00015 // 1. Redistributions of source code must retain the above copyright
00016 // notice, this list of conditions and the following disclaimer.
00017 //
00018 // 2. Redistributions in binary form must reproduce the above copyright
00019 // notice, this list of conditions and the following disclaimer in the
00020 // documentation and/or other materials provided with the distribution.
00021 //
00022 // 3. Neither the name of the Corporation nor the names of the
00023 // contributors may be used to endorse or promote products derived from
00024 // this software without specific prior written permission.
00025 //
00026 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00027 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00028 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00029 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00030 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00031 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00032 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00033 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00034 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00035 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00036 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00037 //
00038 // Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00039 // 
00040 // ************************************************************************
00041 //@HEADER
00042 */
00043 
00044 #ifndef EPETRA_LAPACK_WRAPPERS_H
00045 #define EPETRA_LAPACK_WRAPPERS_H
00046 
00047 #include "Epetra_ConfigDefs.h"
00048 #if defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL)
00049 
00050 #ifdef CRAY_T3X
00051 
00052 #include "fortran.h"
00053 #define Epetra_fcd fcd
00054 #define PREFIX
00055 
00056 /* CRAY Single precision is used like everyone else's double precision */
00057 #define DGECON_F77  SGECON
00058 #define DGEEQU_F77  SGEEQU
00059 #define DGEEV_F77   SGEEV
00060 #define DGEEVX_F77  SGEEVX
00061 #define DGEHRD_F77  SGEHRD
00062 #define DGELS_F77   SGELS
00063 #define DGELSS_F77  SGELSS
00064 #define DGEQPF_F77  SGEQPF
00065 #define DGERFS_F77  SGERFS
00066 #define DGESDD_F77  SGESDD
00067 #define DGESVD_F77  SGESVD
00068 #define DGESV_F77   SGESV
00069 #define DGESVX_F77  SGESVX
00070 #define DGETRF_F77  SGETRF
00071 #define DGEQRF_F77  SGEQRF
00072 #define DGETRI_F77  SGETRI
00073 #define DGETRS_F77  SGETRS
00074 #define DGGEV_F77   SGGEV
00075 #define DGGLSE_F77  SGGLSE
00076 #define DGGSVD_F77  SGGSVD
00077 #define DHSEQR_F77  SHSEQR
00078 #define DLAIC1_F77  SLAIC1
00079 #define DLAMCH_F77  SLAMCH
00080 #define DLARFT_F77  SLARFT
00081 #define DLASWP_F77  SLASWP
00082 #define DORGQR_F77  SORGQR
00083 #define DORGHR_F77  SORGHR
00084 #define DORMHR_F77  SORMHR
00085 #define DPOCON_F77  SPOCON
00086 #define DPOEQU_F77  SPOEQU
00087 #define DPORFS_F77  SPORFS
00088 #define DPOSV_F77   SPOSV
00089 #define DPOSVX_F77  SPOSVX
00090 #define DPOTRF_F77  SPOTRF
00091 #define DPOTRI_F77  SPOTRI
00092 #define DPOTRS_F77  SPOTRS
00093 #define DSPEV_F77   SSPEV
00094 #define DSPGV_F77   SSPGV
00095 #define DSTEV_F77   SSTEV
00096 #define DSYEVD_F77  SSYEVD
00097 #define DSYEV_F77   SSYEV
00098 #define DSYEVR_F77  SSYEVR
00099 #define DSYEVX_F77  SSYEVX
00100 #define DSYGV_F77   SSYGV
00101 #define DSYGVX_F77  SSYGVX
00102 #define DTREVC_F77  STREVC
00103 #define DTREXC_F77  STREXC
00104 #define DTRTRS_F77  STRTRS
00105 /* Done with T3X double precision */
00106 #endif
00107 
00108 #if defined(INTEL_CXML)
00109 
00110 #define Epetra_fcd const char *, const unsigned int
00111 #define PREFIX __stdcall
00112 
00113 #endif
00114 
00115 #if defined(INTEL_MKL)
00116 
00117 #define Epetra_fcd const char *
00118 #define PREFIX
00119 
00120 #endif
00121 
00122 /* The remainder of this block is for T3X, CXML and MKL */
00123 
00124 #ifdef F77_BLAS_MANGLE
00125 #undef F77_BLAS_MANGLE
00126 #endif
00127 
00128 #define F77_BLAS_MANGLE(lcase,UCASE) UCASE
00129 
00130 #else
00131 /* Not defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL) */
00132 
00133 #define Epetra_fcd const char *
00134 #define PREFIX
00135 
00136 /* Use autoconf's definition of F77_BLAS_MANGLE
00137    unless using old make system */
00138 
00139 #ifdef TRILINOS_NO_CONFIG_H
00140 
00141 #ifdef F77_BLAS_MANGLE
00142 #undef F77_BLAS_MANGLE
00143 #endif
00144 
00145 #ifdef TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE
00146 #define F77_BLAS_MANGLE(lcase,UCASE) lcase
00147 #else /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE not defined*/
00148 #define F77_BLAS_MANGLE(lcase,UCASE) lcase ## _
00149 #endif /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE */
00150 
00151 #endif /* TRILINOS_NO_CONFIG_H */
00152 #endif /* defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL) */
00153 
00154 #ifndef CRAY_T3X
00155 
00156 #define DGECON_F77  F77_BLAS_MANGLE(dgecon,DGECON)
00157 #define DGEEQU_F77  F77_BLAS_MANGLE(dgeequ,DGEEQU)
00158 #define DGEEV_F77   F77_BLAS_MANGLE(dgeev,DGEEV)
00159 #define DGEEVX_F77  F77_BLAS_MANGLE(dgeevx,DGEEVX)
00160 #define DGEHRD_F77  F77_BLAS_MANGLE(dgehrd,DGEHRD)
00161 #define DGELS_F77   F77_BLAS_MANGLE(dgels,DGELS)
00162 #define DGELSS_F77  F77_BLAS_MANGLE(dgelss,DGELSS)
00163 #define DGEQPF_F77  F77_BLAS_MANGLE(dgeqpf,DGEQPF)
00164 #define DGERFS_F77  F77_BLAS_MANGLE(dgerfs,DGERFS)
00165 #define DGESDD_F77  F77_BLAS_MANGLE(dgesdd,DGESDD)
00166 #define DGESVD_F77  F77_BLAS_MANGLE(dgesvd,DGESVD)
00167 #define DGESV_F77   F77_BLAS_MANGLE(dgesv,DGESV)
00168 #define DGESVX_F77  F77_BLAS_MANGLE(dgesvx,DGESVX)
00169 #define DGETRF_F77  F77_BLAS_MANGLE(dgetrf,DGETRF)
00170 #define DGEQRF_F77  F77_BLAS_MANGLE(dgeqrf,DGEQRF)
00171 #define DGETRI_F77  F77_BLAS_MANGLE(dgetri,DGETRI)
00172 #define DGETRS_F77  F77_BLAS_MANGLE(dgetrs,DGETRS)
00173 #define DGGEV_F77   F77_BLAS_MANGLE(dggev,DGGEV)
00174 #define DGGLSE_F77  F77_BLAS_MANGLE(dgglse,DGGLSE)
00175 #define DGGSVD_F77  F77_BLAS_MANGLE(dggsvd,DGGSVD)
00176 #define DHSEQR_F77  F77_BLAS_MANGLE(dhseqr,DHSEQR)
00177 #define DLAIC1_F77  F77_BLAS_MANGLE(dlaic1,DLAIC1)
00178 #define DLAMCH_F77  F77_BLAS_MANGLE(dlamch,DLAMCH)
00179 #define DLARFT_F77  F77_BLAS_MANGLE(dlarft,DLARFT)
00180 #define DLASWP_F77  F77_BLAS_MANGLE(dlaswp,DLASWP)
00181 #define DORGQR_F77  F77_BLAS_MANGLE(dorgqr,DORGQR)
00182 #define DORGHR_F77  F77_BLAS_MANGLE(dorghr,DORGHR)
00183 #define DORMHR_F77  F77_BLAS_MANGLE(dormhr,DORMHR)
00184 #define DPOCON_F77  F77_BLAS_MANGLE(dpocon,DPOCON)
00185 #define DPOEQU_F77  F77_BLAS_MANGLE(dpoequ,DPOEQU)
00186 #define DPORFS_F77  F77_BLAS_MANGLE(dporfs,DPORFS)
00187 #define DPOSV_F77   F77_BLAS_MANGLE(dposv,DPOSV)
00188 #define DPOSVX_F77  F77_BLAS_MANGLE(dposvx,DPOSVX)
00189 #define DPOTRF_F77  F77_BLAS_MANGLE(dpotrf,DPOTRF)
00190 #define DPOTRI_F77  F77_BLAS_MANGLE(dpotri,DPOTRI)
00191 #define DPOTRS_F77  F77_BLAS_MANGLE(dpotrs,DPOTRS)
00192 #define DSPEV_F77   F77_BLAS_MANGLE(dspev,DSPEV)
00193 #define DSPGV_F77   F77_BLAS_MANGLE(dspgv,DSPGV)
00194 #define DSTEV_F77   F77_BLAS_MANGLE(dstev,DSTEV)
00195 #define DSYEVD_F77  F77_BLAS_MANGLE(dsyevd,DSYEVD)
00196 #define DSYEV_F77   F77_BLAS_MANGLE(dsyev,DSYEV)
00197 #define DSYEVR_F77  F77_BLAS_MANGLE(dsyevr,DSYEVR)
00198 #define DSYEVX_F77  F77_BLAS_MANGLE(dsyevx,DSYEVX)
00199 #define DSYGV_F77   F77_BLAS_MANGLE(dsygv,DSYGV)
00200 #define DSYGVX_F77  F77_BLAS_MANGLE(dsygvx,DSYGVX)
00201 #define DTREVC_F77  F77_BLAS_MANGLE(dtrevc,DTREVC)
00202 #define DTREXC_F77  F77_BLAS_MANGLE(dtrexc,DTREXC)
00203 #define DTRTRS_F77  F77_BLAS_MANGLE(dtrtrs,DTRTRS)
00204 
00205 /* End of defines for double precision when not on a T3X */
00206 
00207 #endif 
00208 
00209 /* The following defines are good for all platforms */
00210 
00211 #define SGECON_F77  F77_BLAS_MANGLE(sgecon,SGECON)
00212 #define SGEEQU_F77  F77_BLAS_MANGLE(sgeequ,SGEEQU)
00213 #define SGEEV_F77   F77_BLAS_MANGLE(sgeev,SGEEV)
00214 #define SGEEVX_F77  F77_BLAS_MANGLE(sgeevx,SGEEVX)
00215 #define SGEHRD_F77  F77_BLAS_MANGLE(sgehrd,SGEHRD)
00216 #define SGELS_F77   F77_BLAS_MANGLE(sgels,SGELS)
00217 #define SGELSS_F77  F77_BLAS_MANGLE(sgelss,SGELSS)
00218 #define SGEQPF_F77  F77_BLAS_MANGLE(sgeqpf,SGEQPF)
00219 #define SGERFS_F77  F77_BLAS_MANGLE(sgerfs,SGERFS)
00220 #define SGESDD_F77  F77_BLAS_MANGLE(sgesdd,SGESDD)
00221 #define SGESVD_F77  F77_BLAS_MANGLE(sgesvd,SGESVD)
00222 #define SGESV_F77   F77_BLAS_MANGLE(sgesv,SGESV)
00223 #define SGESVX_F77  F77_BLAS_MANGLE(sgesvx,SGESVX)
00224 #define SGETRF_F77  F77_BLAS_MANGLE(sgetrf,SGETRF)
00225 #define SGEQRF_F77  F77_BLAS_MANGLE(sgeqrf,SGEQRF)
00226 #define SGETRI_F77  F77_BLAS_MANGLE(sgetri,SGETRI)
00227 #define SGETRS_F77  F77_BLAS_MANGLE(sgetrs,SGETRS)
00228 #define SGGEV_F77   F77_BLAS_MANGLE(sggev,SGGEV)
00229 #define SGGLSE_F77  F77_BLAS_MANGLE(sgglse,SGGLSE)
00230 #define SGGSVD_F77  F77_BLAS_MANGLE(sggsvd,SGGSVD)
00231 #define SHSEQR_F77  F77_BLAS_MANGLE(shseqr,SHSEQR)
00232 #define SLAMCH_F77  F77_BLAS_MANGLE(slamch,SLAMCH)
00233 #define SLARFT_F77  F77_BLAS_MANGLE(slarft,SLARFT)
00234 #define SORGQR_F77  F77_BLAS_MANGLE(sorgqr,SORGQR)
00235 #define SORGHR_F77  F77_BLAS_MANGLE(sorghr,SORGHR)
00236 #define SORMHR_F77  F77_BLAS_MANGLE(sormhr,SORMHR)
00237 #define SPOCON_F77  F77_BLAS_MANGLE(spocon,SPOCON)
00238 #define SPOEQU_F77  F77_BLAS_MANGLE(spoequ,SPOEQU)
00239 #define SPORFS_F77  F77_BLAS_MANGLE(sporfs,SPORFS)
00240 #define SPOSV_F77   F77_BLAS_MANGLE(sposv,SPOSV)
00241 #define SPOSVX_F77  F77_BLAS_MANGLE(sposvx,SPOSVX)
00242 #define SPOTRF_F77  F77_BLAS_MANGLE(spotrf,SPOTRF)
00243 #define SPOTRI_F77  F77_BLAS_MANGLE(spotri,SPOTRI)
00244 #define SPOTRS_F77  F77_BLAS_MANGLE(spotrs,SPOTRS)
00245 #define SSPEV_F77   F77_BLAS_MANGLE(sspev,SSPEV)
00246 #define SSPGV_F77   F77_BLAS_MANGLE(sspgv,SSPGV)
00247 #define SSTEV_F77   F77_BLAS_MANGLE(sstev,SSTEV)
00248 #define SSYEVD_F77  F77_BLAS_MANGLE(ssyevd,SSYEVD)
00249 #define SSYEV_F77   F77_BLAS_MANGLE(ssyev,SSYEV)
00250 #define SSYEVR_F77  F77_BLAS_MANGLE(ssyevr,SSYEVR)
00251 #define SSYEVX_F77  F77_BLAS_MANGLE(ssyevx,SSYEVX)
00252 #define SSYGV_F77   F77_BLAS_MANGLE(ssygv,SSYGV)
00253 #define SSYGVX_F77  F77_BLAS_MANGLE(ssygvx,SSYGVX)
00254 #define STREVC_F77  F77_BLAS_MANGLE(strevc,STREVC)
00255 #define STREXC_F77  F77_BLAS_MANGLE(strexc,STREXC)
00256 #define STRTRS_F77  F77_BLAS_MANGLE(strtrs,STRTRS)
00257 
00258 #ifdef __cplusplus
00259 extern "C" {
00260 #endif
00261 
00262 
00263   void PREFIX DGECON_F77(Epetra_fcd norm, const int* n, const double* a, const int* lda, const double *anorm, double * rcond, 
00264        double * work, int * iwork, int* info); 
00265   void PREFIX DGEEQU_F77(const int* m, const int* n, const double* a, const int* lda, double * r, double * c, double * rowcnd, 
00266        double * colcnd, double * amax, int* info); 
00267   void PREFIX DGEEV_F77(Epetra_fcd, Epetra_fcd, const int* n, double* a, const int* lda, double* wr, double* wi, 
00268       double* vl, const int* ldvl, 
00269       double* vr, const int* ldvr, double* work, const int* lwork, int* info); 
00270   void PREFIX DGEEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, 
00271        double * wr, double * wi, double * vl, const int * ldvl, double * vr, const int * ldvr, 
00272        int * ilo, int * ihi, double * scale, double * abnrm, double * rconde, double * rcondv, 
00273        double * work, const int * lwork, int * iwork, int * info);
00274   void PREFIX DGEHRD_F77(const int * n, const int * ilo, const int * ihi, double * A, const int * lda, double * tau, double * work, 
00275        const int * lwork, int * info); 
00276   void PREFIX DGELS_F77(Epetra_fcd ch, const int* m, const int* n, const int* nrhs, double* a, const int* lda, double* b, const int* ldb, 
00277       double* work, const int* lwork, int* info); 
00278   void PREFIX DGELSS_F77(const int * m, const int * n, const int * nrhs, double * a, const int * lda, double * b, const int * ldb, 
00279        double * s, const double * rcond, int * rank, double * work, const int * lwork, int * info); 
00280   void PREFIX DGEQPF_F77(const int * m, const int * n, double * a, const int * lda, int * jpvt, double * tau, double * work, int * info); 
00281   void PREFIX DGERFS_F77(Epetra_fcd, const int * n, const int * nrhs, const double * a, const int * lda, const double * af, const int * ldaf, 
00282        const int*ipiv, const double * b, const int * ldb, double * x, const int * ldx, double * ferr, double * berr, 
00283        double * work, int * iwork, int * info);
00284 
00285   void PREFIX DGESDD_F77(Epetra_fcd, const int * m, const int * n, double * a, const int * lda, double * s, double * u, 
00286        const int * ldu, double * vt, const int * ldvt, double * work, const int * lwork, int * iwork, int * info); 
00287 
00288   void PREFIX DGESVD_F77(Epetra_fcd, Epetra_fcd, const int* m, const int* n, double* a, const int* lda, double* s, double* u, 
00289        const int* ldu, double* vt, const int* ldvt, double* work, const int* lwork, int* info);
00290   void PREFIX DGESV_F77(const int * n, const int * nrhs, double* a, const int* lda, int*ipiv, double*x , const int* ldx, int* info);
00291   void PREFIX DGESVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, double * a, const int * lda, double * af, 
00292        const int * ldaf, int*ipiv, Epetra_fcd, double * r, double *c, double * b, const int * ldb, 
00293        double * x, const int * ldx, double * rcond, double * ferr, double * berr, double * 
00294        work, int * iwork, int * info);
00295   void PREFIX DGETRF_F77(const int* m, const int* n, double* a, const int* lda, int* ipiv, int* info); 
00296   void PREFIX DGEQRF_F77(const int* m, const int* n, double* a, const int* lda, double* tau, double* work, const int* lwork, int* info); 
00297   void PREFIX DGETRI_F77(const int* n, double* a, const int* lda, int*ipiv, double * work , const int* lwork, int* info);
00298   void PREFIX DGETRS_F77(Epetra_fcd, const int* n, const int* nrhs, const double* a, const int* lda, const int* ipiv, double* x , 
00299        const int* ldx, int* info);
00300   void PREFIX DGGEV_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * b, const int * ldb, 
00301       double * alphar, double * alphai, double * beta, double * vl, const int * ldvl, 
00302       double * vr, const int * ldvr, double * work, const int * lwork, int * info); 
00303   void PREFIX DGGLSE_F77(const int * m, const int * n, const int * p, double * a, const int * lda, double * b, const int * ldb, 
00304        double * c, double * d, double * x, double * work, const int * lwork, int * info); 
00305   void PREFIX DGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * p, int * k, int * l, 
00306        double * a, const int * lda, double * b, const int * ldb, double * alpha, double * beta, 
00307        double * u, const int * ldu, double * v, const int * ldv, double * q, const int * ldq, double * work, 
00308        int * iwork, int * info); 
00309   void PREFIX DHSEQR_F77(Epetra_fcd job, Epetra_fcd, const int * n, const int * ilo, const int * ihi, double * h, const int * ldh, 
00310        double * wr, double * wi, double * z, const int * ldz, double * work, const int * lwork, int * info); 
00311   double PREFIX DLAMCH_F77(Epetra_fcd);
00312   void PREFIX DLARFT_F77(Epetra_fcd direct, Epetra_fcd storev, const int * n, const int * k, double * v, const int * ldv, double * tau, double * t, const int * ldt );
00313   void PREFIX DORGQR_F77(const int * m, const int * n, const int * k, double * a, const int * lda, const double * tau, double * work, 
00314        const int * lwork, int * info); 
00315   void PREFIX DORGHR_F77(const int * n, const int * ilo, const int * ihi, double * a, const int * lda, const double * tau, double * work, 
00316        const int * lwork, int * info); 
00317   void PREFIX DORMHR_F77(Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * ilo, const int * ihi, const double * a, 
00318        const int * lda, const double * tau, double * c, const int * ldc, double * work, const int * lwork, int * info); 
00319   void PREFIX DPOCON_F77(Epetra_fcd, const int* n, const double* a, const int* lda, const double * anorm, double * rcond, 
00320        double * work, int * iwork, int* info); 
00321   void PREFIX DPOEQU_F77(const int* n, const double* a, const int* lda, double * s, double * scond, double * amax, int* info); 
00322   void PREFIX DPORFS_F77(Epetra_fcd, const int * n, const int * nrhs, const double * a, const int * lda, const double * af, const int * ldaf, 
00323        const double * b, const int * ldb, double * x, const int * ldx, double * ferr, double * berr, 
00324        double * work, int * iwork, int * info);
00325   void PREFIX DPOSV_F77(Epetra_fcd, const int * n, const int * nrhs, const double* a, const int* lda, double*x , const int* ldx, int* info);
00326   void PREFIX DPOSVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, double * a, const int * lda, double * af,
00327        const int * ldaf, Epetra_fcd, double * s, double * b, const int * ldb, double * x, 
00328        const int * ldx, double * rcond, double * ferr, double * berr, double * work, 
00329        int * iwork, int * info); 
00330   void PREFIX DPOTRF_F77(Epetra_fcd, const int* n, double* a, const int* lda, int* info); 
00331   void PREFIX DPOTRI_F77(Epetra_fcd, const int* n, double* a, const int* lda, int* info); 
00332   void PREFIX DPOTRS_F77(Epetra_fcd, const int * n, const int * nrhs, const double* a, const int* lda, double*x , 
00333        const int* ldx, int* info);
00334   void PREFIX DSPEV_F77( Epetra_fcd, Epetra_fcd,const  int * n, double * ap, double * w, double * z, 
00335        const int * ldz, double * work, int * info); 
00336   void PREFIX DSPGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, double * ap, double * bp, 
00337       double * w, double * z, const int * ldz, double * work, int * info); 
00338   void PREFIX DSTEV_F77(Epetra_fcd jobz, const int * n, double * d, double * e, double * z, const int * ldz, 
00339       double * work, int * info); 
00340   void PREFIX DSYEVD_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * w, 
00341        double * work, const int * lwork, int * iwork, const int * liwork,int * info); 
00342   void PREFIX DSYEV_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * w, 
00343       double * work, const int * lwork, int * info); 
00344   void PREFIX DSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, 
00345        const double * vl, const double * vu, const int * il, const int * iu, const 
00346        double * abstol, int * m, 
00347        double * w, double * z, const int * ldz,  int * isuppz, double * work, 
00348        const int * lwork, int * iwork, const int * liwork, int * info); 
00349   void PREFIX DSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, 
00350        const double * vl, const double * vu, const int * il, const int * iu, const double * abstol, int * m, 
00351        double * w, double * z, const int * ldz, double * work, const int * lwork, int * iwork, 
00352        int * ifail, int * info); 
00353   void PREFIX DSYGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, 
00354       double * b, const int * ldb, double * w, double * work, const int * lwork, int * info); 
00355   void PREFIX DSYGVX_F77(const int * itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, 
00356        const int * lda, double * b, const int * ldb, const double * vl, const double * vu, const int * il, 
00357        const int * iu, const double * abstol, int * m, double * w, double * z, const int * ldz, 
00358        double * work, const int * lwork, int * iwork, int * ifail, int * info); 
00359   void PREFIX DTREVC_F77(Epetra_fcd, Epetra_fcd, int * select, const int * n, const double * t, const int * ldt, 
00360        double *vl, const int * ldvl, double * vr, const int * ldvr, const int * mm, int * m, 
00361        double * work, int * info); 
00362   void PREFIX DTREXC_F77(Epetra_fcd, const int * n, double * t, const int * ldt, double * q, const int * ldq, 
00363        int * ifst, int * ilst, double * work, int * info); 
00364   void PREFIX DTRTRS_F77(Epetra_fcd uplo, Epetra_fcd trans, Epetra_fcd diag, const int *n, const int *nrhs, const double *a,
00365                          const int *lda, double *b, const int *ldb, int *info); 
00366 
00367 
00368   void PREFIX SGECON_F77(Epetra_fcd norm, const int* n, const float* a, const int* lda, const float *anorm, float * rcond, 
00369        float * work, int * iwork, int* info); 
00370   void PREFIX SGEEQU_F77(const int* m, const int* n, const float* a, const int* lda, float * r, float * c, float * rowcnd, 
00371        float * colcnd, float * amax, int* info); 
00372   void PREFIX SGEEV_F77(Epetra_fcd, Epetra_fcd, const int* n, float* a, const int* lda, float* wr, float* wi, 
00373       float* vl, const int* ldvl, 
00374       float* vr, const int* ldvr, float* work, const int* lwork, int* info); 
00375   void PREFIX SGEEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, 
00376        float * wr, float * wi, float * vl, const int * ldvl, float * vr, const int * ldvr, 
00377        int * ilo, int * ihi, float * scale, float * abnrm, float * rconde, float * rcondv, 
00378        float * work, const int * lwork, int * iwork, int * info);
00379   void PREFIX SGEHRD_F77(const int * n, const int * ilo, const int * ihi, float * A, const int * lda, float * tau, float * work, 
00380        const int * lwork, int * info); 
00381   void PREFIX SGELS_F77(Epetra_fcd ch, const int* m, const int* n, const int* nrhs, float* a, const int* lda, float* b, const int* ldb, 
00382       float* work, const int* lwork, int* info); 
00383   void PREFIX SGELSS_F77(const int * m, const int * n, const int * nrhs, float * a, const int * lda, float * b, const int * ldb, 
00384        float * s, const float * rcond, int * rank, float * work, const int * lwork, int * info); 
00385   void PREFIX SGEQPF_F77(const int * m, const int * n, float * a, const int * lda, int * jpvt, float * tau, float * work, int * info); 
00386   void PREFIX SGERFS_F77(Epetra_fcd, const int * n, const int * nrhs, const float * a, const int * lda, const float * af, const int * ldaf, 
00387        const int*ipiv, const float * b, const int * ldb, float * x, const int * ldx, float * ferr, float * berr, 
00388        float * work, int * iwork, int * info);
00389 
00390   void PREFIX SGESDD_F77(Epetra_fcd, const int * m, const int * n, float * a, const int * lda, float * s, float * u, 
00391        const int * ldu, float * vt, const int * ldvt, float * work, const int * lwork, int * iwork, int * info); 
00392 
00393   void PREFIX SGESVD_F77(Epetra_fcd, Epetra_fcd, const int* m, const int* n, float* a, const int* lda, float* s, float* u, 
00394        const int* ldu, float* vt, const int* ldvt, float* work, const int* lwork, int* info);
00395   void PREFIX SGESV_F77(const int * n, const int * nrhs, float* a, const int* lda, int*ipiv, float*x , const int* ldx, int* info);
00396   void PREFIX SGESVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, float * a, const int * lda, float * af, 
00397        const int * ldaf, int*ipiv, Epetra_fcd, float * r, float *c, float * b, const int * ldb, 
00398        float * x, const int * ldx, float * rcond, float * ferr, float * berr, float * 
00399        work, int * iwork, int * info);
00400   void PREFIX SGETRF_F77(const int* m, const int* n, float* a, const int* lda, int* ipiv, int* info); 
00401   void PREFIX SGEQRF_F77(const int* m, const int* n, float* a, const int* lda, float* tau, float* work, const int* lwork, int* info); 
00402   void PREFIX SGETRI_F77(const int* n, float* a, const int* lda, int*ipiv, float * work , const int* lwork, int* info);
00403   void PREFIX SGETRS_F77(Epetra_fcd, const int* n, const int* nrhs, const float* a, const int* lda, const int* ipiv, float* x , 
00404        const int* ldx, int* info);
00405   void PREFIX SGGEV_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * b, const int * ldb, 
00406       float * alphar, float * alphai, float * beta, float * vl, const int * ldvl, 
00407       float * vr, const int * ldvr, float * work, const int * lwork, int * info); 
00408   void PREFIX SGGLSE_F77(const int * m, const int * n, const int * p, float * a, const int * lda, float * b, const int * ldb, 
00409        float * c, float * d, float * x, float * work, const int * lwork, int * info); 
00410   void PREFIX SGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * p, int * k, int * l, 
00411        float * a, const int * lda, float * b, const int * ldb, float * alpha, float * beta, 
00412        float * u, const int * ldu, float * v, const int * ldv, float * q, const int * ldq, float * work, 
00413        int * iwork, int * info); 
00414   void PREFIX SHSEQR_F77(Epetra_fcd job, Epetra_fcd, const int * n, const int * ilo, const int * ihi, float * h, const int * ldh, 
00415        float * wr, float * wi, float * z, const int * ldz, float * work, const int * lwork, int * info); 
00416   float PREFIX SLAMCH_F77(Epetra_fcd);
00417   void PREFIX SLARFT_F77(Epetra_fcd direct, Epetra_fcd storev, const int * n, const int * k, float * v, const int * ldv, float * tau, float * t, const int * ldt );
00418   void PREFIX SORGQR_F77(const int * m, const int * n, const int * k, float * a, const int * lda, const float * tau, float * work, 
00419        const int * lwork, int * info); 
00420   void PREFIX SORGHR_F77(const int * n, const int * ilo, const int * ihi, float * a, const int * lda, const float * tau, float * work, 
00421        const int * lwork, int * info); 
00422   void PREFIX SORMHR_F77(Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * ilo, const int * ihi, const float * a, 
00423        const int * lda, const float * tau, float * c, const int * ldc, float * work, const int * lwork, int * info); 
00424   void PREFIX SPOCON_F77(Epetra_fcd, const int* n, const float* a, const int* lda, const float * anorm, float * rcond, 
00425        float * work, int * iwork, int* info); 
00426   void PREFIX SPOEQU_F77(const int* n, const float* a, const int* lda, float * s, float * scond, float * amax, int* info); 
00427   void PREFIX SPORFS_F77(Epetra_fcd, const int * n, const int * nrhs, const float * a, const int * lda, const float * af, const int * ldaf, 
00428        const float * b, const int * ldb, float * x, const int * ldx, float * ferr, float * berr, 
00429        float * work, int * iwork, int * info);
00430   void PREFIX SPOSV_F77(Epetra_fcd, const int * n, const int * nrhs, const float* a, const int* lda, float*x , const int* ldx, int* info);
00431   void PREFIX SPOSVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, float * a, const int * lda, float * af,
00432        const int * ldaf, Epetra_fcd, float * s, float * b, const int * ldb, float * x, 
00433        const int * ldx, float * rcond, float * ferr, float * berr, float * work, 
00434        int * iwork, int * info); 
00435   void PREFIX SPOTRF_F77(Epetra_fcd, const int* n, float* a, const int* lda, int* info); 
00436   void PREFIX SPOTRI_F77(Epetra_fcd, const int* n, float* a, const int* lda, int* info); 
00437   void PREFIX SPOTRS_F77(Epetra_fcd, const int * n, const int * nrhs, const float* a, const int* lda, float*x , 
00438        const int* ldx, int* info);
00439   void PREFIX SSPEV_F77( Epetra_fcd, Epetra_fcd,const  int * n, float * ap, float * w, float * z, 
00440        const int * ldz, float * work, int * info); 
00441   void PREFIX SSPGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, float * ap, float * bp, 
00442       float * w, float * z, const int * ldz, float * work, int * info); 
00443   void PREFIX SSTEV_F77(Epetra_fcd jobz, const int * n, float * d, float * e, float * z, const int * ldz, 
00444       float * work, int * info); 
00445   void PREFIX SSYEVD_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * w, 
00446        float * work, const int * lwork, int * iwork, const int * liwork, int * info); 
00447   void PREFIX SSYEV_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * w, 
00448       float * work, const int * lwork, int * info); 
00449   void PREFIX SSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, 
00450        const float * vl, const float * vu, const int * il, const int * iu, const 
00451        float * abstol, int * m, 
00452        float * w, float * z, const int * ldz,  int * isuppz, float * work, 
00453        const int * lwork, int * iwork, const int * liwork, int * info); 
00454   void PREFIX SSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, 
00455        const float * vl, const float * vu, const int * il, const int * iu, const float * abstol, int * m, 
00456        float * w, float * z, const int * ldz, float * work, const int * lwork, int * iwork, 
00457        int * ifail, int * info); 
00458   void PREFIX SSYGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, 
00459       float * b, const int * ldb, float * w, float * work, const int * lwork, int * info); 
00460   void PREFIX SSYGVX_F77(const int * itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, 
00461        const int * lda, float * b, const int * ldb, const float * vl, const float * vu, const int * il, 
00462        const int * iu, const float * abstol, int * m, float * w, float * z, const int * ldz, 
00463        float * work, const int * lwork, int * iwork, int * ifail, int * info); 
00464   void PREFIX STREVC_F77(Epetra_fcd, Epetra_fcd, int * select, const int * n, const float * t, const int * ldt, 
00465        float *vl, const int * ldvl, float * vr, const int * ldvr, const int * mm, int * m, 
00466        float * work, int * info); 
00467   void PREFIX STREXC_F77(Epetra_fcd, const int * n, float * t, const int * ldt, float * q, const int * ldq, 
00468        int * ifst, int * ilst, float * work, int * info); 
00469   void PREFIX STRTRS_F77(Epetra_fcd uplo, Epetra_fcd trans, Epetra_fcd diag, const int *n, const int *nrhs, const float *a,
00470                          const int *lda, float *b, const int *ldb, int *info); 
00471 
00472 
00473 #ifdef __cplusplus
00474 }
00475 #endif
00476 
00477 #endif /* EPETRA_LAPACK_WRAPPERS_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines