46 #if defined (INTEL_CXML) 
   47 #define CHAR_MACRO(char_var) &char_var, 1 
   49 #define CHAR_MACRO(char_var) &char_var 
   68         float * X, 
const int LDX, 
int * INFO)
 const {
 
   73         double * X, 
const int LDX, 
int * INFO)
 const {
 
   86         float * RCOND, 
float * WORK, 
int * IWORK,
 
   92         double * RCOND, 
double * WORK, 
int * IWORK,
 
   98         float * X, 
const int LDX, 
int * INFO)
 const {
 
  103         double * X, 
const int LDX, 
int * INFO)
 const {
 
  108        float * AMAX, 
int * INFO)
 const {
 
  109   SPOEQU_F77(&N, A, &LDA, S, SCOND, AMAX, INFO);
 
  113       double * AMAX, 
int * INFO)
 const {    
 
  114   DPOEQU_F77(&N, A, &LDA, S, SCOND, AMAX, INFO);
 
  117 void Epetra_LAPACK::PORFS(
const char UPLO, 
const int N, 
const int NRHS, 
const float * 
A, 
const int LDA, 
const float * AF, 
const int LDAF,
 
  118        const float * 
B, 
const int LDB, 
float * X, 
const int LDX,
 
  119        float * FERR, 
float * BERR, 
float * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  120   SPORFS_F77(
CHAR_MACRO(UPLO), &N, &NRHS, A, &LDA, AF, &LDAF, B, &LDB, X, &LDX,
 
  121     FERR, BERR, WORK, IWORK, INFO);
 
  124 void Epetra_LAPACK::PORFS(
const char UPLO, 
const int N, 
const int NRHS, 
const double * 
A, 
const int LDA, 
const double * AF, 
const int LDAF,
 
  125        const double * 
B, 
const int LDB, 
double * X, 
const int LDX,
 
  126        double * FERR, 
double * BERR, 
double * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  127   DPORFS_F77( 
CHAR_MACRO(UPLO), &N, &NRHS, A, &LDA, AF, &LDAF,B, &LDB, X, &LDX,
 
  128     FERR, BERR, WORK, IWORK, INFO);
 
  131 void Epetra_LAPACK::POSVX(
const char FACT, 
const char UPLO, 
const int N, 
const int NRHS, 
float * 
A, 
const int LDA, 
float * AF, 
const int LDAF,
 
  132        const char EQUED, 
float * S, 
float * 
B, 
const int LDB, 
float * X, 
const int LDX, 
float * RCOND,
 
  133        float * FERR, 
float * BERR, 
float * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  134   SPOSVX_F77(
CHAR_MACRO(FACT), 
CHAR_MACRO(UPLO), &N, &NRHS, A, &LDA, AF, &LDAF, 
CHAR_MACRO(EQUED), S, B, &LDB, X, &LDX,
 
  135     RCOND, FERR, BERR, WORK, IWORK, INFO);
 
  138 void Epetra_LAPACK::POSVX(
const char FACT, 
const char UPLO, 
const int N, 
const int NRHS, 
double * 
A, 
const int LDA, 
double * AF, 
const int LDAF,
 
  139        const char EQUED, 
double * S, 
double * 
B, 
const int LDB, 
double * X, 
const int LDX, 
double * RCOND,
 
  140        double * FERR, 
double * BERR, 
double * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  141   DPOSVX_F77(
CHAR_MACRO(FACT), 
CHAR_MACRO(UPLO), &N, &NRHS, A, &LDA, AF, &LDAF, 
CHAR_MACRO(EQUED), S, B, &LDB, X, &LDX, RCOND,
 
  142     FERR, BERR, WORK, IWORK, INFO);
 
  148         double* 
A, 
const int LDA, 
double* 
B, 
const int LDB, 
double* WORK, 
const int LWORK,
 
  150   DGELS_F77 (
CHAR_MACRO(TRANS), &M, &N, &NRHS, A, &LDA, B, &LDB, WORK, &LWORK, INFO );
 
  162 void Epetra_LAPACK::GEQRF( 
const int M, 
const int N,  
float * 
A, 
const int LDA,  
float * TAU,  
float * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  163   SGEQRF_F77(&M, &N, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  166 void Epetra_LAPACK::GEQRF( 
const int M, 
const int N, 
double * 
A, 
const int LDA, 
double * TAU, 
double * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  167   DGEQRF_F77(&M, &N, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  171         const int LDA, 
float * S, 
float * U,
 
  172         const int LDU, 
float * VT, 
const int LDVT, 
float * WORK,
 
  173         const int * LWORK, 
int * INFO)
 const {
 
  175        VT, &LDVT, WORK, LWORK, INFO);
 
  179         const int LDA, 
double * S, 
double * U,
 
  180         const int LDU, 
double * VT, 
const int LDVT, 
double * WORK,
 
  181         const int * LWORK, 
int * INFO)
 const {
 
  183        VT, &LDVT, WORK, LWORK, INFO);
 
  187         const int * IPIV, 
float * X, 
const int LDX, 
int * INFO)
 const {
 
  192         const int * IPIV, 
double * X, 
const int LDX, 
int * INFO)
 const {
 
  197         float * WORK, 
const int * LWORK, 
int * INFO)
 const {
 
  198   SGETRI_F77(&N, A, &LDA, IPIV, WORK, LWORK, INFO);
 
  202         double * WORK, 
const int * LWORK, 
int * INFO)
 const {
 
  203   DGETRI_F77(&N, A, &LDA, IPIV, WORK, LWORK, INFO);
 
  207         float * RCOND, 
float * WORK, 
int * IWORK,
 
  213         double * RCOND, 
double * WORK, 
int * IWORK,
 
  219         float * X, 
const int LDX, 
int * INFO)
 const {
 
  220   SGESV_F77(&N, &NRHS, A, &LDA, IPIV, X, &LDX, INFO);
 
  224         double * X, 
const int LDX, 
int * INFO)
 const {
 
  225   DGESV_F77(&N, &NRHS, A, &LDA, IPIV, X, &LDX, INFO);
 
  229        float * ROWCND, 
float * COLCND, 
float * AMAX, 
int * INFO)
 const {
 
  230   SGEEQU_F77(&M, &N, A, &LDA, R, C, ROWCND, COLCND, AMAX, INFO);
 
  234        double * ROWCND, 
double * COLCND, 
double * AMAX, 
int * INFO)
 const {
 
  235   DGEEQU_F77(&M, &N, A, &LDA, R, C, ROWCND, COLCND, AMAX, INFO);
 
  238 void Epetra_LAPACK::GERFS(
const char TRANS, 
const int N, 
const int NRHS, 
const float * 
A, 
const int LDA, 
const float * AF, 
const int LDAF,
 
  239         const int * IPIV, 
const float * 
B, 
const int LDB, 
float * X, 
const int LDX,
 
  240        float * FERR, 
float * BERR, 
float * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  241   SGERFS_F77(
CHAR_MACRO(TRANS), &N, &NRHS, A, &LDA, AF, &LDAF, IPIV, B, &LDB, X, &LDX,
 
  242     FERR, BERR, WORK, IWORK, INFO);
 
  245 void Epetra_LAPACK::GERFS(
const char TRANS, 
const int N, 
const int NRHS, 
const double * 
A, 
const int LDA, 
const double * AF, 
const int LDAF,
 
  246        const int * IPIV, 
const double * 
B, 
const int LDB, 
double * X, 
const int LDX,
 
  247        double * FERR, 
double * BERR, 
double * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  248   DGERFS_F77( 
CHAR_MACRO(TRANS), &N, &NRHS, A, &LDA, AF, &LDAF, IPIV, B, &LDB, X, &LDX,
 
  249     FERR, BERR, WORK, IWORK, INFO);
 
  252 void Epetra_LAPACK::GESVX(
const char FACT, 
const char TRANS, 
const int N, 
const int NRHS, 
float * 
A, 
const int LDA, 
float * AF, 
const int LDAF,
 
  253        int * IPIV, 
const char EQUED, 
float * R, 
float * 
C, 
float * 
B, 
const int LDB, 
float * X, 
const int LDX, 
float * RCOND,
 
  254        float * FERR, 
float * BERR, 
float * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  255   SGESVX_F77(
CHAR_MACRO(FACT), 
CHAR_MACRO(TRANS), &N, &NRHS, A, &LDA, AF, &LDAF, IPIV, 
CHAR_MACRO(EQUED), R, C, B, &LDB, X, &LDX, RCOND,
 
  256     FERR, BERR, WORK, IWORK, INFO);
 
  259 void Epetra_LAPACK::GESVX(
const char FACT, 
const char TRANS, 
const int N, 
const int NRHS, 
double * 
A, 
const int LDA, 
double * AF, 
const int LDAF,
 
  260        int * IPIV, 
const char EQUED, 
double * R, 
double * 
C, 
double * 
B, 
const int LDB, 
double * X, 
const int LDX, 
double * RCOND,
 
  261        double * FERR, 
double * BERR, 
double * WORK, 
int * IWORK, 
int * INFO)
 const {
 
  262  DGESVX_F77(
CHAR_MACRO(FACT), 
CHAR_MACRO(TRANS), &N, &NRHS, A, &LDA, AF, &LDAF, IPIV, 
CHAR_MACRO(EQUED), R, C, B, &LDB, X, &LDX, RCOND,
 
  263     FERR, BERR, WORK, IWORK, INFO);
 
  271        float * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  272   SGEHRD_F77(&N, &ILO, &IHI, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  276        double * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  277   DGEHRD_F77(&N, &ILO, &IHI, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  280 void Epetra_LAPACK::HSEQR( 
const char JOB, 
const char COMPZ, 
const int N, 
const int ILO, 
const int IHI, 
float * H, 
const int LDH,
 
  281         float * WR, 
float * WI, 
float * Z, 
const int LDZ, 
float * WORK, 
const int LWORK,
 
  283   SHSEQR_F77(
CHAR_MACRO(JOB), 
CHAR_MACRO(COMPZ), &N, &ILO, &IHI, H, &LDH, WR, WI, Z, &LDZ, WORK, &LWORK, INFO);
 
  286 void Epetra_LAPACK::HSEQR( 
const char JOB, 
const char COMPZ, 
const int N, 
const int ILO, 
const int IHI, 
double * H, 
const int LDH,
 
  287         double * WR, 
double * WI, 
double * Z, 
const int LDZ, 
double * WORK, 
const int LWORK,
 
  289   DHSEQR_F77(
CHAR_MACRO(JOB), 
CHAR_MACRO(COMPZ), &N, &ILO, &IHI, H, &LDH, WR, WI, Z, &LDZ, WORK, &LWORK, INFO);
 
  293         float * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  294   SORGQR_F77( &M, &N, &K, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  298         double * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  299   DORGQR_F77( &M, &N, &K, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  303         float * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  304   SORGHR_F77( &N, &ILO, &IHI, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  308         double * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  309   DORGHR_F77( &N, &ILO, &IHI, A, &LDA, TAU, WORK, &LWORK, INFO);
 
  312 void Epetra_LAPACK::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,
 
  313         const float * TAU, 
float * 
C, 
const int LDC, 
float * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  314   SORMHR_F77(
CHAR_MACRO(SIDE), 
CHAR_MACRO(TRANS), &M, &N, &ILO, &IHI, A, &LDA, TAU, C, &LDC, WORK, &LWORK, INFO);
 
  317 void Epetra_LAPACK::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,
 
  318         const double * TAU, 
double * 
C, 
const int LDC, 
double * WORK, 
const int LWORK, 
int * INFO)
 const {
 
  319   DORMHR_F77(
CHAR_MACRO(SIDE), 
CHAR_MACRO(TRANS), &M, &N, &ILO, &IHI, A, &LDA, TAU, C, &LDC, WORK, &LWORK, INFO);
 
  322 void Epetra_LAPACK::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 {
 
  326 void Epetra_LAPACK::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 {
 
  330 void Epetra_LAPACK::TREVC( 
const char SIDE, 
const char HOWMNY, 
int * SELECT, 
const int N, 
const float * T, 
const int LDT, 
float *VL, 
const int LDVL,
 
  331         float * VR, 
const int LDVR, 
const int MM, 
int * M, 
float * WORK, 
int * INFO)
 const {
 
  333   if (HOWMNY==
'S') *INFO = -3; 
 
  335   else  STREVC_F77(
CHAR_MACRO(SIDE), 
CHAR_MACRO(HOWMNY), SELECT, &N, T, &LDT, VL, &LDVL, VR, &LDVR, &MM, M, WORK, INFO);
 
  338 void Epetra_LAPACK::TREVC( 
const char SIDE, 
const char HOWMNY, 
int * SELECT, 
const int N, 
const double * T, 
const int LDT, 
double *VL, 
const int LDVL,
 
  339         double * VR, 
const int LDVR, 
const int MM, 
int * M, 
double * WORK, 
int * INFO)
 const {
 
  341   if (HOWMNY==
'S') *INFO = -3; 
 
  343   else  DTREVC_F77(
CHAR_MACRO(SIDE), 
CHAR_MACRO(HOWMNY), SELECT, &N, T, &LDT, VL, &LDVL, VR, &LDVR, &MM, M, WORK, INFO);
 
  346 void Epetra_LAPACK::TREXC( 
const char COMPQ, 
const int N, 
float * T, 
const int LDT, 
float * Q, 
const int LDQ, 
int IFST, 
int ILST,
 
  347         float * WORK, 
int * INFO)
 const {
 
  351 void Epetra_LAPACK::TREXC( 
const char COMPQ, 
const int N, 
double * T, 
const int LDT, 
double * Q, 
const int LDQ, 
int IFST, 
int ILST,
 
  352         double * WORK, 
int * INFO)
 const {
 
  364 void Epetra_LAPACK::GGSVD(
const char JOBU, 
const char JOBV, 
const char JOBQ, 
const int M, 
const int N, 
const int P, 
int * K, 
int * L,
 
  365         double* 
A,  
const int LDA,  
double* 
B,  
const int LDB,
 
  366                           double* ALPHA,  
double* BETA,  
double* U,  
const int LDU, 
double* V, 
const int LDV, 
double* Q, 
const int LDQ, 
double* WORK,
 
  367           #ifdef HAVE_EPETRA_LAPACK_GSSVD3
 
  370                           int* IWORK, 
int* INFO)
 const {
 
  371   DGGSVD_F77(
CHAR_MACRO(JOBU), 
CHAR_MACRO(JOBV), 
CHAR_MACRO(JOBQ), &M, &N, &P, K, L,  A,  &LDA,  B,  &LDB,
 
  372             ALPHA,  BETA,  U,  &LDU, V, &LDV, Q, &LDQ, WORK,
 
  373           #ifdef HAVE_EPETRA_LAPACK_GSSVD3
 
  380 void Epetra_LAPACK::GGSVD(
const char JOBU, 
const char JOBV, 
const char JOBQ, 
const int M, 
const int N, 
const int P, 
int * K, 
int * L,
 
  381         float* 
A,  
const int LDA,  
float* 
B,  
const int LDB,
 
  382                           float* ALPHA,  
float* BETA,  
float* U,  
const int LDU, 
float* V, 
const int LDV, 
float* Q, 
const int LDQ, 
float* WORK,
 
  383           #ifdef HAVE_EPETRA_LAPACK_GSSVD3
 
  386                           int* IWORK, 
int* INFO)
 const {
 
  387   SGGSVD_F77(
CHAR_MACRO(JOBU), 
CHAR_MACRO(JOBV), 
CHAR_MACRO(JOBQ), &M, &N, &P, K, L,  A,  &LDA,  B,  &LDB,
 
  388             ALPHA,  BETA,  U,  &LDU, V, &LDV, Q, &LDQ, WORK,
 
  389           #ifdef HAVE_EPETRA_LAPACK_GSSVD3
 
  396 void Epetra_LAPACK::GEEV(
const char JOBVL, 
const char JOBVR, 
const int N, 
double* 
A, 
const int LDA, 
double* WR, 
double* WI,
 
  397        double* VL, 
const int LDVL, 
double* VR, 
const int LDVR, 
double* WORK, 
const int LWORK, 
int* INFO)
 const {
 
  399   DGEEV_F77(
CHAR_MACRO(JOBVL), 
CHAR_MACRO(JOBVR), &N, A, &LDA, WR, WI, VL, &LDVL, VR,  &LDVR,
 
  403 void Epetra_LAPACK::GEEV(
const char JOBVL, 
const char JOBVR, 
const int N, 
float* 
A, 
const int LDA, 
float* WR, 
float* WI,
 
  404        float* VL, 
const int LDVL, 
float* VR, 
const int LDVR, 
float* WORK, 
const int LWORK, 
int* INFO)
 const {
 
  406   SGEEV_F77(
CHAR_MACRO(JOBVL), 
CHAR_MACRO(JOBVR), &N, A, &LDA, WR, WI, VL, &LDVL, VR,  &LDVR,
 
  410 void Epetra_LAPACK::SPEV(
const char JOBZ, 
const char UPLO, 
const int N, 
double* AP, 
double* W, 
double* Z, 
int LDZ, 
double* WORK, 
int* INFO)
 const {
 
  415 void Epetra_LAPACK::SPEV(
const char JOBZ, 
const char UPLO, 
const int N, 
float* AP, 
float* W, 
float* Z, 
int LDZ, 
float* WORK, 
int* INFO)
 const {
 
  420 void Epetra_LAPACK::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 {
 
  422   DSPGV_F77(&ITYPE, 
CHAR_MACRO(JOBZ), 
CHAR_MACRO(UPLO), &N, AP, BP, W, Z, &LDZ, WORK, INFO);
 
  425 void Epetra_LAPACK::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 {
 
  427   SSPGV_F77(&ITYPE, 
CHAR_MACRO(JOBZ), 
CHAR_MACRO(UPLO), &N, AP, BP, W, Z, &LDZ, WORK, INFO);
 
  430 void Epetra_LAPACK::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{
 
  436 void Epetra_LAPACK::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{
 
  442 void Epetra_LAPACK::SYEVD(
const char JOBZ, 
const char UPLO,  
const int N,  
double* 
A,  
const int LDA,  
double* W,  
double* WORK,
 
  443         const int LWORK,  
int* IWORK, 
const int LIWORK, 
int* INFO)
 const {
 
  445   DSYEVD_F77(
CHAR_MACRO(JOBZ), 
CHAR_MACRO(UPLO), &N, A, &LDA, W, WORK, &LWORK, IWORK, &LIWORK, INFO);
 
  448 void Epetra_LAPACK::SYEVD(
const char JOBZ, 
const char UPLO,  
const int N,  
float* 
A,  
const int LDA,  
float* W,  
float* WORK,
 
  449         const int LWORK,  
int* IWORK, 
const int LIWORK, 
int* INFO)
 const {
 
  451   SSYEVD_F77(
CHAR_MACRO(JOBZ), 
CHAR_MACRO(UPLO), &N, A, &LDA, W, WORK, &LWORK, IWORK, &LIWORK, INFO);
 
  454 void Epetra_LAPACK::SYEVX(
const char JOBZ, 
const char RANGE, 
const char UPLO,  
const int N,  
double* 
A,  
const int LDA,
 
  455          const double* VL,  
const double* VU,  
const int* IL,  
const int* IU,
 
  456          const double ABSTOL,  
int * M,  
double* W,  
double* Z,  
const int LDZ, 
double* WORK,
 
  457         const int LWORK, 
int* IWORK, 
int* IFAIL,
 
  460   DSYEVX_F77(
CHAR_MACRO(JOBZ), 
CHAR_MACRO(RANGE), 
CHAR_MACRO(UPLO), &N,  A,  &LDA,  VL,  VU,  IL,  IU,
 
  461    &ABSTOL,  M,  W,  Z,  &LDZ, WORK, &LWORK, IWORK, IFAIL, INFO);
 
  465          const float* VL,  
const float* VU,  
const int* IL,  
const int* IU,
 
  466          const float ABSTOL,  
int * M,  
float* W,  
float* Z,  
const int LDZ, 
float* WORK,
 
  467         const int LWORK, 
int* IWORK, 
int* IFAIL,
 
  470   SSYEVX_F77(
CHAR_MACRO(JOBZ), 
CHAR_MACRO(RANGE), 
CHAR_MACRO(UPLO), &N,  A,  &LDA,  VL,  VU,  IL,  IU,
 
  471    &ABSTOL,  M,  W,  Z,  &LDZ, WORK, &LWORK, IWORK, IFAIL, INFO);
 
  475        const int LDA, 
double* 
B, 
const int LDB, 
double* W, 
double* WORK, 
const int LWORK, 
int* INFO)
 const{
 
  477   DSYGV_F77(&ITYPE, 
CHAR_MACRO(JOBZ), 
CHAR_MACRO(UPLO), &N, A, &LDA, B, &LDB, W, WORK, &LWORK, INFO);
 
  481        const int LDA, 
float* 
B, 
const int LDB, 
float* W, 
float* WORK, 
const int LWORK, 
int* INFO)
 const{
 
  483   SSYGV_F77(&ITYPE, 
CHAR_MACRO(JOBZ), 
CHAR_MACRO(UPLO), &N, A, &LDA, B, &LDB, W, WORK, &LWORK, INFO);
 
  487        double* , 
const int , 
double* , 
const int , 
const double* , 
const double* ,
 
  488        const int* , 
const int* , 
const double , 
int* , 
double* , 
double* ,
 
  489        const int ,  
double* ,  
const int ,  
int* ,
 
  490         int* , 
int* )
 const {
 
  492 #ifdef EPETRA_LAPACK3 
  493   DSYGVX_F77(&
ITYPE, 
CHAR_MACRO(JOBZ), 
CHAR_MACRO(RANGE), 
CHAR_MACRO(UPLO), &N,  
A,  &LDA, 
B, &LDB, VL, VU,
 
  494        IL, IU, &ABSTOL, M, W, Z, &LDZ,  WORK,  &LWORK,  IWORK,
 
  499   obj.
ReportError(
"SYGVX requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  504        float* , 
const int , 
float* , 
const int , 
const float* , 
const float* ,
 
  505        const int* , 
const int* , 
const float , 
int* , 
float* , 
float* ,
 
  506        const int ,  
float* ,  
const int ,  
int* ,
 
  507         int* , 
int* )
 const {
 
  509 #ifdef EPETRA_LAPACK3 
  510   SSYGVX_F77(&
ITYPE, 
CHAR_MACRO(JOBZ), 
CHAR_MACRO(RANGE), 
CHAR_MACRO(UPLO), &N,  
A,  &LDA, 
B, &LDB, VL, VU,
 
  511                           IL, IU, &ABSTOL, M, W, Z, &LDZ,  WORK,  &LWORK,  IWORK,
 
  516   obj.
ReportError(
"SYGVX requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  521         const double* ,  
const double* ,  
const int *,  
const int *,
 
  522                           const double ,  
int* ,  
double* ,  
double* , 
const int , 
int* , 
double* , 
const int , 
int* ,
 
  523                           const int , 
int* )
 const {
 
  525 #ifdef EPETRA_LAPACK3 
  526   DSYEVR_F77(
CHAR_MACRO(JOBZ), 
CHAR_MACRO(RANGE), 
CHAR_MACRO(UPLO), &N,  
A,  &LDA, VL,  VU,  IL,  IU,
 
  527        &ABSTOL,  M,  W,  Z, &LDZ, ISUPPZ, WORK, &LWORK, IWORK,
 
  531   obj.
ReportError(
"SYEVR requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  536         const float* ,  
const float* ,  
const int *,  
const int *,
 
  537                           const float ,  
int* ,  
float* ,  
float* , 
const int , 
int* , 
float* , 
const int , 
int* ,
 
  538                           const int , 
int* )
 const {
 
  540 #ifdef EPETRA_LAPACK3 
  541   SSYEVR_F77(
CHAR_MACRO(JOBZ), 
CHAR_MACRO(RANGE), 
CHAR_MACRO(UPLO), &N,  
A,  &LDA, VL,  VU,  IL,  IU,
 
  542        &ABSTOL,  M,  W,  Z, &LDZ, ISUPPZ, WORK, &LWORK, IWORK,
 
  546   obj.
ReportError(
"SYEVR requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  550 void Epetra_LAPACK::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,
 
  551        const int LDVL,  
double* VR,  
const int LDVR,  
int* ILO,  
int* IHI,  
double* SCALE, 
double* ABNRM, 
double* RCONDE,
 
  552         double* RCONDV, 
double* WORK, 
const int LWORK, 
int* IWORK, 
int* INFO)
 const{
 
  554   DGEEVX_F77(
CHAR_MACRO(BALANC), 
CHAR_MACRO(JOBVL), 
CHAR_MACRO(JOBVR), 
CHAR_MACRO(SENSE), &N, A, &LDA, WR, WI,  VL,
 
  555        &LDVL,  VR,  &LDVR,  ILO,  IHI,  SCALE, ABNRM, RCONDE,
 
  556        RCONDV, WORK, &LWORK, IWORK, INFO);
 
  559 void Epetra_LAPACK::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,
 
  560        const int LDVL,  
float* VR,  
const int LDVR,  
int* ILO,  
int* IHI,  
float* SCALE, 
float* ABNRM, 
float* RCONDE,
 
  561         float* RCONDV, 
float* WORK, 
const int LWORK, 
int* IWORK, 
int* INFO)
 const{
 
  563   SGEEVX_F77(
CHAR_MACRO(BALANC), 
CHAR_MACRO(JOBVL), 
CHAR_MACRO(JOBVR), 
CHAR_MACRO(SENSE), &N, A, &LDA, WR, WI,  VL,
 
  564        &LDVL,  VR,  &LDVR,  ILO,  IHI,  SCALE, ABNRM, RCONDE,
 
  565        RCONDV, WORK, &LWORK, IWORK, INFO);
 
  569         double* ,  
const int ,  
double* ,  
const int ,  
double* ,
 
  570         const int , 
int* , 
int* )
 const{
 
  572 #ifdef EPETRA_LAPACK3 
  573   DGESDD_F77(
CHAR_MACRO(JOBZ), &M, &N, 
A, &LDA,  S,  U,  &LDU,  VT,  &LDVT,  WORK,
 
  574        &LWORK, IWORK, INFO);
 
  577   obj.
ReportError(
"GESDD requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  582         float* ,  
const int ,  
float* ,  
const int ,  
float* ,
 
  583         const int , 
int* , 
int* )
 const{
 
  585 #ifdef EPETRA_LAPACK3 
  586   SGESDD_F77(
CHAR_MACRO(JOBZ), &M, &N, 
A, &LDA,  S,  U,  &LDU,  VT,  &LDVT,  WORK,
 
  587        &LWORK, IWORK, INFO);
 
  590   obj.
ReportError(
"GESDD requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  595        const int ,  
double* , 
const int , 
double* , 
double* ,
 
  596        double* , 
double* , 
const int , 
double* , 
const int 
  597        , 
double* , 
const int , 
int* )
 const{
 
  599 #ifdef EPETRA_LAPACK3 
  601       BETA, VL, &LDVL, VR, &LDVR, WORK, &LWORK, INFO);
 
  604   obj.
ReportError(
"GGEV requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  609        const int ,  
float* , 
const int , 
float* , 
float* ,
 
  610        float* , 
float* , 
const int , 
float* , 
const int 
  611        , 
float* , 
const int , 
int* )
 const {
 
  613 #ifdef EPETRA_LAPACK3 
  615       BETA, VL, &LDVL, VR, &LDVR, WORK, &LWORK, INFO);
 
  618   obj.
ReportError(
"GGEV requires LAPACK Version 3.  Compile Epetra with -DEPETRA_LAPACK3 and link with LAPACK 3 library", -1);
 
  623         double* 
C, 
double* 
D, 
double* X, 
double* WORK, 
const int LWORK, 
int* INFO)
 const{
 
  624   DGGLSE_F77(&M, &N, &P, A, &LDA, B, &LDB, C, D, X, WORK, &LWORK,  INFO);
 
  628         float* 
C, 
float* 
D, 
float* X, 
float* WORK, 
const int LWORK, 
int* INFO)
 const{
 
  629   SGGLSE_F77(&M, &N, &P, A, &LDA, B, &LDB, C, D, X, WORK, &LWORK,  INFO);
 
  632 void Epetra_LAPACK::TRTRS(
const char UPLO, 
const char TRANS, 
const char DIAG, 
const int N, 
const int NRHS, 
const float *
A,
 
  633                           const int LDA, 
float *
B, 
const int LDB, 
int *INFO)
 const{
 
  637 void Epetra_LAPACK::TRTRS(
const char UPLO, 
const char TRANS, 
const char DIAG, 
const int N, 
const int NRHS, 
const double *
A,
 
  638                           const int LDA, 
double *
B, 
const int LDB, 
int *INFO)
 const{
 
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, double *BETA, double *VL, const int LDVL, double *VR, const int LDVR, double *WORK, const int LWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute for a pair of N-by-N real nonsymmetric matrices (A,B) the generalized eigenvalues, and optionally, the left and/or right generalized eigenvectors. 
 
void PREFIX DSYGVX_F77(const int *itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *n, double *a, const int *lda, double *b, const int *ldb, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, int *m, double *w, double *z, const int *ldz, double *work, const int *lwork, int *iwork, int *ifail, int *info)
 
void SYEVX(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, const double ABSTOL, int *M, double *W, double *Z, const int LDZ, double *WORK, const int LWORK, int *IWORK, int *IFAIL, int *INFO) const 
Epetra_LAPACK wrapper to compute selected eigenvalues and, optionally, eigenvectors of a real symmetr...
 
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)
 
void PREFIX SSPGV_F77(const int *itype, Epetra_fcd, Epetra_fcd, const int *n, float *ap, float *bp, float *w, float *z, const int *ldz, float *work, int *info)
 
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, float *Z, const int LDZ, float *WORK, const int LWORK, int *INFO) const 
Epetra_LAPACK wrapper for computing the eigenvalues of a real upper Hessenberg matrix (SHSEQR) ...
 
void GESV(const int N, const int NRHS, float *A, const int LDA, int *IPIV, float *X, const int LDX, int *INFO) const 
Epetra_LAPACK factor and solve for general matrix (SGESV) 
 
void GESVD(const char JOBU, const char JOBVT, 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, const int *LWORK, int *INFO) const 
Epetra_LAPACK wrapper for computing the singular value decomposition (SGESVD) 
 
void SYGV(const int ITYPE, const char JOBZ, const char UPLO, const int N, double *A, const int LDA, double *B, const int LDB, double *W, double *WORK, const int LWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute all the eigenvalues, and optionally, the eigenvectors of a real gene...
 
void GEQRF(const int M, const int N, float *A, const int LDA, float *TAU, float *WORK, const int lwork, int *INFO) const 
Epetra_LAPACK QR factorization for general matrix (SGEQRF) 
 
void PREFIX DGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *m, const int *n, const int *p, int *k, int *l, double *a, const int *lda, double *b, const int *ldb, double *alpha, double *beta, double *u, const int *ldu, double *v, const int *ldv, double *q, const int *ldq, double *work, int *iwork, int *info)
 
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 
Epetra_LAPACK wrapper to compute all the eigenvalues and, optionally, the eigenvectors of a real gene...
 
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, const int LWORK, int *IWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute the singular value decomposition (SVD) of a real M-by-N matrix A...
 
void POCON(const char UPLO, const int N, const float *A, const int LDA, const float ANORM, float *RCOND, float *WORK, int *IWORK, int *INFO) const 
Epetra_LAPACK condition number estimator for positive definite matrix (SPOCON) 
 
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, const float *TAU, float *C, const int LDC, float *WORK, const int LWORK, int *INFO) const 
Epetra_LAPACK wrapper for applying an orthogonal matrix in-place (SORMHR) 
 
void PREFIX SSYGVX_F77(const int *itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *n, float *a, const int *lda, float *b, const int *ldb, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, int *m, float *w, float *z, const int *ldz, float *work, const int *lwork, int *iwork, int *ifail, int *info)
 
void GETRF(const int M, const int N, float *A, const int LDA, int *IPIV, int *INFO) const 
Epetra_LAPACK factorization for general matrix (SGETRF) 
 
void PREFIX DSYEVD_F77(Epetra_fcd, Epetra_fcd, const int *n, double *a, const int *lda, double *w, double *work, const int *lwork, int *iwork, const int *liwork, int *info)
 
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, const char EQUED, float *R, float *C, float *B, const int LDB, float *X, const int LDX, float *RCOND, float *FERR, float *BERR, float *WORK, int *IWORK, int *INFO) const 
Epetra_LAPACK solve driver for general matrix (SGESVX) 
 
#define CHAR_MACRO(char_var)
 
void PREFIX DSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *n, double *a, const int *lda, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, int *m, double *w, double *z, const int *ldz, int *isuppz, double *work, const int *lwork, int *iwork, const int *liwork, int *info)
 
void GECON(const char NORM, const int N, const float *A, const int LDA, const float ANORM, float *RCOND, float *WORK, int *IWORK, int *INFO) const 
Epetra_LAPACK condition number estimator for general matrix (SGECON) 
 
void GGLSE(const int M, const int N, const int P, double *A, const int LDA, double *B, const int LDB, double *C, double *D, double *X, double *WORK, const int LWORK, int *INFO) const 
Epetra_LAPACK wrapper to solve the linear equality-constrained least squares (LSE) problem...
 
Epetra_Object: The base Epetra class. 
 
void SPEV(const char JOBZ, const char UPLO, const int N, double *AP, double *W, double *Z, int LDZ, double *WORK, int *INFO) const 
Epetra_LAPACK wrapper to compute all the eigenvalues and, optionally, eigenvectors of a real symmetri...
 
void PREFIX DSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *n, double *a, const int *lda, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, int *m, double *w, double *z, const int *ldz, double *work, const int *lwork, int *iwork, int *ifail, int *info)
 
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, const double ABSTOL, int *M, double *W, double *Z, const int LDZ, int *ISUPPZ, double *WORK, const int LWORK, int *IWORK, const int LIWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute selected eigenvalues and, optionally, eigenvectors of a real symmetr...
 
void POEQU(const int N, const float *A, const int LDA, float *S, float *SCOND, float *AMAX, int *INFO) const 
Epetra_LAPACK equilibration for positive definite matrix (SPOEQU) 
 
void PREFIX SGESDD_F77(Epetra_fcd, 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, const int *lwork, int *iwork, int *info)
 
void SYGVX(const int ITYPE, const char JOBZ, const char RANGE, const char UPLO, const int N, double *A, const int LDA, double *B, const int LDB, const double *VL, const double *VU, const int *IL, const int *IU, const double ABSTOL, int *M, double *W, double *Z, const int LDZ, double *WORK, const int LWORK, int *IWORK, int *IFAIL, int *INFO) const 
Epetra_LAPACK wrapper to compute selected eigenvalues, and optionally, eigenvectors of a real general...
 
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 
Epetra_LAPACK for forming the triangular factor of a product of elementary Householder reflectors (SL...
 
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)
 
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 
Epetra_LAPACK wrapper for generating a real orthogonal matrix Q defined by elementary reflectors...
 
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 
Epetra_LAPACK solve (after factorization) for general matrix (SGETRS) 
 
void TREVC(const char SIDE, const char HOWMNY, int *SELECT, const int N, const float *T, const int LDT, float *VL, const int LDVL, float *VR, const int LDVR, const int MM, int *M, float *WORK, int *INFO) const 
Epetra_LAPACK wrapper for computing eigenvectors of a quasi-triangular/triagnular matrix (STREVC) ...
 
void GETRI(const int N, float *A, const int LDA, int *IPIV, float *WORK, const int *LWORK, int *INFO) const 
Epetra_LAPACK inversion for general matrix (SGETRI) 
 
void TRTRS(const char UPLO, const char TRANS, const char DIAG, const int N, const int NRHS, const float *A, const int LDA, float *B, const int LDB, int *INFO) const 
Epetra_LAPACK wrapper for TRTRS routine. 
 
void PREFIX SGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *m, const int *n, const int *p, int *k, int *l, float *a, const int *lda, float *b, const int *ldb, float *alpha, float *beta, float *u, const int *ldu, float *v, const int *ldv, float *q, const int *ldq, float *work, int *iwork, int *info)
 
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 
Epetra_LAPACK equilibration for general matrix (SGEEQU) 
 
void PREFIX DSPGV_F77(const int *itype, Epetra_fcd, Epetra_fcd, const int *n, double *ap, double *bp, double *w, double *z, const int *ldz, double *work, int *info)
 
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 
Epetra_LAPACK wrapper for reduction to Hessenberg form (SGEHRD) 
 
void POSV(const char UPLO, const int N, const int NRHS, float *A, const int LDA, float *X, const int LDX, int *INFO) const 
Epetra_LAPACK factor and solve for positive definite matrix (SPOSV) 
 
void GELS(const char TRANS, const int M, const int N, const int NRHS, double *A, const int LDA, double *B, const int LDB, double *WORK, const int LWORK, int *INFO) const 
Epetra_LAPACK simple driver to solve least-squares systems. 
 
void SYEVD(const char JOBZ, const char UPLO, const int N, double *A, const int LDA, double *W, double *WORK, const int LWORK, int *IWORK, const int LIWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute all eigenvalues and, optionally, eigenvectors of a real symmetric ma...
 
void POTRF(const char UPLO, const int N, float *A, const int LDA, int *INFO) const 
Epetra_LAPACK factorization for positive definite matrix (SPOTRF) 
 
void POSVX(const char FACT, const char UPLO, const int N, const int NRHS, float *A, const int LDA, float *AF, const int LDAF, const char EQUED, float *S, float *B, const int LDB, float *X, const int LDX, float *RCOND, float *FERR, float *BERR, float *WORK, int *IWORK, int *INFO) const 
Epetra_LAPACK solve driver for positive definite matrix (SPOSVX) 
 
void PORFS(const char UPLO, const int N, const int NRHS, const float *A, const int LDA, const float *AF, const int LDAF, const float *B, const int LDB, float *X, const int LDX, float *FERR, float *BERR, float *WORK, int *IWORK, int *INFO) const 
Epetra_LAPACK solve driver for positive definite matrix (SPOSVX) 
 
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, double *ALPHA, double *BETA, double *U, const int LDU, double *V, const int LDV, double *Q, const int LDQ, double *WORK, int *IWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute the generalized singular value decomposition (GSVD) of an M-by-N rea...
 
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 
Epetra_LAPACK solve (after factorization) for positive definite matrix (SPOTRS) 
 
void PREFIX SSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *n, float *a, const int *lda, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, int *m, float *w, float *z, const int *ldz, int *isuppz, float *work, const int *lwork, int *iwork, const int *liwork, int *info)
 
void PREFIX SSYEVD_F77(Epetra_fcd, Epetra_fcd, const int *n, float *a, const int *lda, float *w, float *work, const int *lwork, int *iwork, const int *liwork, int *info)
 
void GEEV(const char JOBVL, const char JOBVR, const int N, double *A, const int LDA, double *WR, double *WI, double *VL, const int LDVL, double *VR, const int LDVR, double *WORK, const int LWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute for an N-by-N real nonsymmetric matrix A, the eigenvalues and...
 
virtual int ReportError(const std::string Message, int ErrorCode) const 
Error reporting method. 
 
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, const int LDVL, double *VR, const int LDVR, int *ILO, int *IHI, double *SCALE, double *ABNRM, double *RCONDE, double *RCONDV, double *WORK, const int LWORK, int *IWORK, int *INFO) const 
Epetra_LAPACK wrapper to compute for an N-by-N real nonsymmetric matrix A, the eigenvalues and...
 
void GERFS(const char TRANS, const int N, const int NRHS, const float *A, const int LDA, const float *AF, const int LDAF, const int *IPIV, const float *B, const int LDB, float *X, const int LDX, float *FERR, float *BERR, float *WORK, int *IWORK, int *INFO) const 
Epetra_LAPACK Refine solution (GERFS) 
 
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 
Epetra_LAPACK wrapper to compute all eigenvalues and, optionally, eigenvectors of a real symmetric ma...
 
void POTRI(const char UPLO, const int N, float *A, const int LDA, int *INFO) const 
Epetra_LAPACK inversion for positive definite matrix (SPOTRI) 
 
void PREFIX SSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int *n, float *a, const int *lda, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, int *m, float *w, float *z, const int *ldz, float *work, const int *lwork, int *iwork, int *ifail, int *info)
 
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 
Epetra_LAPACK wrapper for generating a m x n real matrix Q with orthonormal columns, defined as the product of k elementary reflectors. (SORGQR) 
 
void LAMCH(const char CMACH, float &T) const 
Epetra_LAPACK wrapper for DLAMCH routine. On out, T holds machine double precision floating point cha...
 
void PREFIX DGESDD_F77(Epetra_fcd, 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, const int *lwork, int *iwork, int *info)
 
void TREXC(const char COMPQ, const int N, float *T, const int LDT, float *Q, const int LDQ, int IFST, int ILST, float *WORK, int *INFO) const 
Epetra_LAPACK wrapper for reordering the real-Schur/Schur factorization of a matrix (STREXC) ...