53 #ifndef AMESOS2_SUPERLU_FUNCTIONMAP_HPP 
   54 #define AMESOS2_SUPERLU_FUNCTIONMAP_HPP 
   56 #ifdef HAVE_TEUCHOS_COMPLEX 
   78 #include "supermatrix.h" 
   80 #include "superlu_enum_consts.h" 
   85 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  102       ExpHeader *expanders; 
 
  108       sgssvx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  109              char *, 
float *, 
float *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  110              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  111              float *, 
float *, 
float *, 
float *,
 
  112 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  115              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  117       sgstrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  118               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  119               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  120 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  123               SLU::SuperLUStat_t*, 
int *);
 
  125       sgsisx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  126              char *, 
float *, 
float *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  127              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  129 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  132              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  134       sgsitrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  135               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  136               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  137 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  140               SLU::SuperLUStat_t*, 
int *);
 
  142       sCreate_CompCol_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, 
float *,
 
  143                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  145       sCreate_CompRow_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, 
float *,
 
  146                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  148       sCreate_Dense_Matrix(SLU::SuperMatrix *, 
int, 
int, 
float *, 
int,
 
  149                            SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  152       sgsequ (SLU::SuperMatrix *, 
float *, 
float *, 
float *,
 
  153         float *, 
float *, 
int *);
 
  156       slaqgs (SLU::SuperMatrix *, 
float *, 
float *, 
float,
 
  157               float, 
float, 
char *);
 
  164 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  181       ExpHeader *expanders; 
 
  187       dgssvx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  188              char *, 
double *, 
double *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  189              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  190              double *, 
double *, 
double *, 
double *,
 
  191 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  194              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  196       dgstrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  197               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  198               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  199 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  202               SLU::SuperLUStat_t*, 
int *);
 
  204       dgsisx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  205              char *, 
double *, 
double *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  206              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  208 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  211              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  213       dgsitrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  214               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  215               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  216 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  219               SLU::SuperLUStat_t*, 
int *);
 
  221       dCreate_CompCol_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, 
double *,
 
  222                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  224       dCreate_CompRow_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, 
double *,
 
  225                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  227       dCreate_Dense_Matrix(SLU::SuperMatrix *, 
int, 
int, 
double *, 
int,
 
  228                            SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  231       dlaqgs (SLU::SuperMatrix *, 
double *, 
double *, 
double,
 
  232               double, 
double, 
char *);
 
  235       dgsequ (SLU::SuperMatrix *, 
double *, 
double *, 
double *,
 
  236         double *, 
double *, 
int *);
 
  241 #ifdef HAVE_TEUCHOS_COMPLEX 
  244 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  261       ExpHeader *expanders; 
 
  267       cgssvx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  268              char *, 
float *, 
float *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  269              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  270              float *, 
float *, 
float *, 
float *,
 
  271 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  274              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  276       cgstrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  277               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  278               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  279 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  282               SLU::SuperLUStat_t*, 
int *);
 
  284       cgsisx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  285              char *, 
float *, 
float *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  286              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  288 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  291              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  293       cgsitrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  294               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  295               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  296 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  299               SLU::SuperLUStat_t*, 
int *);
 
  301       cCreate_CompCol_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, complex *,
 
  302                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  304       cCreate_CompRow_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, complex *,
 
  305                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  307       cCreate_Dense_Matrix(SLU::SuperMatrix *, 
int, 
int, complex *, 
int,
 
  308                            SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  311        cgsequ (SLU::SuperMatrix *, 
float *, 
float *, 
float *,
 
  312                float *, 
float *, 
int *);
 
  315        claqgs (SLU::SuperMatrix *, 
float *, 
float *, 
float,
 
  316                float, 
float, 
char *);
 
  323 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  329       doublecomplex  *lusup;   
 
  340       ExpHeader *expanders; 
 
  346       zgssvx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  347              char *, 
double *, 
double *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  348              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  349              double *, 
double *, 
double *, 
double *,
 
  350 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  353              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  355       zgstrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  356               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  357               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  358 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  361               SLU::SuperLUStat_t*, 
int *);
 
  363       zgsisx(SLU::superlu_options_t *, SLU::SuperMatrix *, 
int *, 
int *, 
int *,
 
  364              char *, 
double *, 
double *, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  365              void *, 
int, SLU::SuperMatrix *, SLU::SuperMatrix *,
 
  367 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  370              SLU::mem_usage_t *, SLU::SuperLUStat_t *, 
int *);
 
  372       zgsitrf (SLU::superlu_options_t*, SLU::SuperMatrix*,
 
  373               int, 
int, 
int*, 
void *, 
int, 
int *, 
int *,
 
  374               SLU::SuperMatrix *, SLU::SuperMatrix *, 
 
  375 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  378               SLU::SuperLUStat_t*, 
int *);
 
  380       zCreate_CompCol_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, doublecomplex *,
 
  381                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  383       zCreate_CompRow_Matrix(SLU::SuperMatrix *, 
int, 
int, 
int, doublecomplex *,
 
  384                              int *, 
int *, SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  386       zCreate_Dense_Matrix(SLU::SuperMatrix *, 
int, 
int, doublecomplex *, 
int,
 
  387                            SLU::Stype_t, SLU::Dtype_t, SLU::Mtype_t);
 
  390       zgsequ (SLU::SuperMatrix *, 
double *, 
double *, 
double *,
 
  391               double *, 
double *, 
int *);
 
  394       zlaqgs (SLU::SuperMatrix *, 
double *, 
double *, 
double,
 
  395               double, 
double, 
char *);
 
  399 #endif  // HAVE_TEUCHOS_COMPLEX 
  437   struct FunctionMap<Superlu,float>
 
  439     typedef TypeMap<Superlu,float> type_map;
 
  441 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  442     typedef typename SLU::S::GlobalLU_t GlobalLU_type;
 
  448     static void gssvx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  449           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
float* R, 
float* C,
 
  450           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  451           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
float* recip_pivot_growth,
 
  452           float* rcond, 
float* ferr, 
float* berr, 
 
  453 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  456           SLU::mem_usage_t* mem_usage,
 
  457           SLU::SuperLUStat_t* stat, 
int* info)
 
  459       SLU::S::sgssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  460          lwork, B, X, recip_pivot_growth, rcond, ferr, berr, 
 
  461 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  464          mem_usage, stat, info);
 
  467     static void gsisx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  468           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
float* R, 
float* C,
 
  469           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  470           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
float* recip_pivot_growth,
 
  472 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  475           SLU::mem_usage_t* mem_usage,
 
  476           SLU::SuperLUStat_t* stat, 
int* info)
 
  478       SLU::S::sgsisx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  479          lwork, B, X, recip_pivot_growth, rcond, 
 
  480 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  483          mem_usage, stat, info);
 
  505     static void gstrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  506           int relax, 
int panel_size, 
int* etree, 
void* work,
 
  507           int lwork, 
int* perm_c, 
int* perm_r, SLU::SuperMatrix* L,
 
  509 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  512           SLU::SuperLUStat_t* stat, 
int* info)
 
  514       SLU::S::sgstrf(options, AC, relax, panel_size, etree,
 
  515          work, lwork, perm_c, perm_r, L, U, 
 
  516 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  522     static void gsitrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  523           int relax, 
int panel_size, 
int* etree, 
void* work,
 
  524           int lwork, 
int* perm_c, 
int* perm_r, SLU::SuperMatrix* L,
 
  526 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  529           SLU::SuperLUStat_t* stat, 
int* info)
 
  531       SLU::S::sgsitrf(options, AC, relax, panel_size, etree,
 
  532           work, lwork, perm_c, perm_r, L, U, 
 
  533 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  542     static void create_CompCol_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
 
  543               int nnz, type_map::type* nzval, 
int* rowind, 
int* colptr, 
 
  544               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  546       SLU::S::sCreate_CompCol_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  547              stype, dtype, mtype);
 
  553     static void create_CompRow_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
 
  554               int nnz, type_map::type* nzval, 
int* rowind, 
int* colptr,
 
  555               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  557       SLU::S::sCreate_CompRow_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  558              stype, dtype, mtype);
 
  570     static void create_Dense_Matrix(SLU::SuperMatrix* X, 
int m, 
int n,
 
  571             type_map::type* x, 
int ldx, SLU::Stype_t stype,
 
  572             SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  574       SLU::S::sCreate_Dense_Matrix(X, m, n, x, ldx, stype, dtype, mtype);
 
  580     static void gsequ(SLU::SuperMatrix* A, 
float* R, 
float* C,
 
  581           float* rowcnd, 
float* colcnd, 
float* amax, 
int* info)
 
  583       SLU::S::sgsequ(A, R, C, rowcnd, colcnd, amax, info);
 
  600     static void laqgs(SLU::SuperMatrix* A, 
float* R, 
float* C,
 
  601           float rowcnd, 
float colcnd, 
float amax, 
char* equed)
 
  603       SLU::S::slaqgs(A, R, C, rowcnd, colcnd, amax, equed);
 
  609   struct FunctionMap<Superlu,double>
 
  611     typedef TypeMap<Superlu,double> type_map;
 
  613 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  614     typedef typename SLU::D::GlobalLU_t GlobalLU_type;
 
  617     static void gssvx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  618           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
double* R, 
double* C,
 
  619           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  620           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
double* recip_pivot_growth,
 
  621           double* rcond, 
double* ferr, 
double* berr, 
 
  622 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  625           SLU::mem_usage_t* mem_usage,
 
  626           SLU::SuperLUStat_t* stat, 
int* info)
 
  628       SLU::D::dgssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  629          lwork, B, X, recip_pivot_growth, rcond, ferr, berr, 
 
  630 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  633          mem_usage, stat, info);
 
  636     static void gstrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  637           int relax, 
int panel_size, 
int* etree, 
void* work, 
int lwork, 
int* perm_c,
 
  638           int* perm_r, SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
 
  639 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  642           SLU::SuperLUStat_t* stat, 
int* info)
 
  644       SLU::D::dgstrf(options, AC, relax, panel_size, etree,
 
  645          work, lwork, perm_c, perm_r, L, U, 
 
  646 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  652     static void gsisx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  653           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
double* R, 
double* C,
 
  654           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  655           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
double* recip_pivot_growth,
 
  657 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  660           SLU::mem_usage_t* mem_usage,
 
  661           SLU::SuperLUStat_t* stat, 
int* info)
 
  663       SLU::D::dgsisx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  664          lwork, B, X, recip_pivot_growth, rcond, 
 
  665 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  668          mem_usage, stat, info);
 
  671     static void gsitrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  672            int relax, 
int panel_size, 
int* etree, 
void* work, 
int lwork, 
int* perm_c,
 
  673            int* perm_r, SLU::SuperMatrix* L, SLU::SuperMatrix* U,
 
  674 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  677            SLU::SuperLUStat_t* stat, 
int* info)
 
  679       SLU::D::dgsitrf(options, AC, relax, panel_size, etree,
 
  680           work, lwork, perm_c, perm_r, L, U, 
 
  681 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  687     static void create_CompCol_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
 
  688               int nnz, type_map::type* nzval, 
int* rowind, 
int* colptr, 
 
  689               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  691       SLU::D::dCreate_CompCol_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  692              stype, dtype, mtype);
 
  695     static void create_CompRow_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
 
  696               int nnz, type_map::type* nzval, 
int* rowind, 
int* colptr, 
 
  697               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  699       SLU::D::dCreate_CompRow_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  700              stype, dtype, mtype);
 
  703     static void create_Dense_Matrix(SLU::SuperMatrix* X, 
int m, 
 
  704             int n, type_map::type* x, 
int ldx, SLU::Stype_t stype, 
 
  705             SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  707       SLU::D::dCreate_Dense_Matrix(X, m, n, x, ldx, stype, dtype, mtype);
 
  710     static void gsequ(SLU::SuperMatrix* A, 
double* R, 
double* C,
 
  711           double* rowcnd, 
double* colcnd, 
double* amax, 
int* info)
 
  713       SLU::D::dgsequ(A, R, C, rowcnd, colcnd, amax, info);
 
  716     static void laqgs(SLU::SuperMatrix* A, 
double* R, 
double* C,
 
  717           double rowcnd, 
double colcnd, 
double amax, 
char* equed)
 
  719       SLU::D::dlaqgs(A, R, C, rowcnd, colcnd, amax, equed);
 
  725 #ifdef HAVE_TEUCHOS_COMPLEX 
  731   struct FunctionMap<Superlu,SLU::C::complex>
 
  733 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  734     typedef typename SLU::C::GlobalLU_t GlobalLU_type;
 
  737     static void gssvx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  738           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
float* R, 
float* C,
 
  739           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  740           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
float* recip_pivot_growth,
 
  741           float* rcond, 
float* ferr, 
float* berr, 
 
  742 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  745           SLU::mem_usage_t* mem_usage,
 
  746           SLU::SuperLUStat_t* stat, 
int* info)
 
  748       SLU::C::cgssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  749          lwork, B, X, recip_pivot_growth, rcond, ferr, berr, 
 
  750 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  753          mem_usage, stat, info);
 
  756     static void gstrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  757           int relax, 
int panel_size, 
int* etree, 
void* work, 
int lwork, 
int* perm_c,
 
  758           int* perm_r, SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
 
  759 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  762           SLU::SuperLUStat_t* stat, 
int* info)
 
  764       SLU::C::cgstrf(options, AC, relax, panel_size, etree,
 
  765          work, lwork, perm_c, perm_r, L, U, 
 
  766 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  772     static void gsisx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  773           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
float* R, 
float* C,
 
  774           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  775           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
float* recip_pivot_growth,
 
  777 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  780           SLU::mem_usage_t* mem_usage,
 
  781           SLU::SuperLUStat_t* stat, 
int* info)
 
  783       SLU::C::cgsisx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  784          lwork, B, X, recip_pivot_growth, rcond, 
 
  785 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  788          mem_usage, stat, info);
 
  791     static void gsitrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  792            int relax, 
int panel_size, 
int* etree, 
void* work, 
int lwork, 
int* perm_c,
 
  793            int* perm_r, SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
 
  794 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  797            SLU::SuperLUStat_t* stat, 
int* info)
 
  799       SLU::C::cgsitrf(options, AC, relax, panel_size, etree,
 
  800           work, lwork, perm_c, perm_r, L, U, 
 
  801 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  807     static void create_CompCol_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
int nnz,
 
  808               SLU::C::complex* nzval, 
int* rowind, 
int* colptr,
 
  809               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  811       SLU::C::cCreate_CompCol_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  812              stype, dtype, mtype);
 
  815     static void create_CompRow_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
int nnz,
 
  816               SLU::C::complex* nzval, 
int* rowind, 
int* colptr,
 
  817               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  819       SLU::C::cCreate_CompRow_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  820              stype, dtype, mtype);
 
  823     static void create_Dense_Matrix(SLU::SuperMatrix* X, 
int m, 
int n,
 
  824             SLU::C::complex* x, 
int ldx, SLU::Stype_t stype,
 
  825             SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  827       SLU::C::cCreate_Dense_Matrix(X, m, n, x, ldx, stype, dtype, mtype);
 
  830     static void gsequ(SLU::SuperMatrix* A, 
float* R, 
float* C,
 
  831           float* rowcnd, 
float* colcnd, 
float* amax, 
int* info)
 
  833       SLU::C::cgsequ(A, R, C, rowcnd, colcnd, amax, info);
 
  836     static void laqgs(SLU::SuperMatrix* A, 
float* R, 
float* C,
 
  837           float rowcnd, 
float colcnd, 
float amax, 
char* equed)
 
  839       SLU::C::claqgs(A, R, C, rowcnd, colcnd, amax, equed);
 
  845   struct FunctionMap<Superlu,SLU::Z::doublecomplex>
 
  847 #ifdef HAVE_AMESOS2_SUPERLU5_API 
  848     typedef typename SLU::Z::GlobalLU_t GlobalLU_type;
 
  851     static void gssvx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  852           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
double* R, 
double* C,
 
  853           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  854           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
double* recip_pivot_growth,
 
  855           double* rcond, 
double* ferr, 
double* berr, 
 
  856 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  859           SLU::mem_usage_t* mem_usage,
 
  860           SLU::SuperLUStat_t* stat, 
int* info)
 
  862       SLU::Z::zgssvx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  863          lwork, B, X, recip_pivot_growth, rcond, ferr, berr, 
 
  864 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  867          mem_usage, stat, info);
 
  870     static void gstrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  871           int relax, 
int panel_size, 
int* etree, 
void* work, 
int lwork, 
int* perm_c,
 
  872           int* perm_r, SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
 
  873 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  876           SLU::SuperLUStat_t* stat, 
int* info)
 
  878       SLU::Z::zgstrf(options, AC, relax, panel_size, etree,
 
  879          work, lwork, perm_c, perm_r, L, U, 
 
  880 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  886     static void gsisx(SLU::superlu_options_t* options, SLU::SuperMatrix* A,
 
  887           int* perm_c, 
int* perm_r, 
int* etree, 
char* equed, 
double* R, 
double* C,
 
  888           SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
void* work, 
int lwork,
 
  889           SLU::SuperMatrix* B, SLU::SuperMatrix* X, 
double* recip_pivot_growth,
 
  891 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  894           SLU::mem_usage_t* mem_usage,
 
  895           SLU::SuperLUStat_t* stat, 
int* info)
 
  897       SLU::Z::zgsisx(options, A, perm_c, perm_r, etree, equed, R, C, L, U, work,
 
  898          lwork, B, X, recip_pivot_growth, rcond, 
 
  899 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  902          mem_usage, stat, info);
 
  905     static void gsitrf(SLU::superlu_options_t* options, SLU::SuperMatrix* AC,
 
  906            int relax, 
int panel_size, 
int* etree, 
void* work, 
int lwork, 
int* perm_c,
 
  907            int* perm_r, SLU::SuperMatrix* L, SLU::SuperMatrix* U, 
 
  908 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  911            SLU::SuperLUStat_t* stat, 
int* info)
 
  913       SLU::Z::zgsitrf(options, AC, relax, panel_size, etree,
 
  914           work, lwork, perm_c, perm_r, L, U, 
 
  915 #ifdef HAVE_AMESOS2_SUPERLU5_API
 
  921     static void create_CompCol_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
int nnz,
 
  922               SLU::Z::doublecomplex* nzval, 
int* rowind, 
int* colptr,
 
  923               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  925       SLU::Z::zCreate_CompCol_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  926              stype, dtype, mtype);
 
  928       TEUCHOS_TEST_FOR_EXCEPTION( A == NULL,
 
  930         "Supermatrix A not initialized properly!");
 
  934     static void create_CompRow_Matrix(SLU::SuperMatrix* A, 
int m, 
int n, 
int nnz,
 
  935               SLU::Z::doublecomplex* nzval, 
int* rowind, 
int* colptr,
 
  936               SLU::Stype_t stype, SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  938       SLU::Z::zCreate_CompRow_Matrix(A, m, n, nnz, nzval, rowind, colptr,
 
  939              stype, dtype, mtype);
 
  941       TEUCHOS_TEST_FOR_EXCEPTION( A == NULL,
 
  943         "Supermatrix A not initialized properly!");
 
  946     static void create_Dense_Matrix(SLU::SuperMatrix* X, 
int m, 
int n,
 
  947             SLU::Z::doublecomplex* x, 
int ldx, SLU::Stype_t stype,
 
  948             SLU::Dtype_t dtype, SLU::Mtype_t mtype)
 
  950       SLU::Z::zCreate_Dense_Matrix(X, m, n, x, ldx, stype, dtype, mtype);
 
  953     static void gsequ(SLU::SuperMatrix* A, 
double* R, 
double* C,
 
  954           double* rowcnd, 
double* colcnd, 
double* amax, 
int* info)
 
  956       SLU::Z::zgsequ(A, R, C, rowcnd, colcnd, amax, info);
 
  959     static void laqgs(SLU::SuperMatrix* A, 
double* R, 
double* C,
 
  960           double rowcnd, 
double colcnd, 
double amax, 
char* equed)
 
  962       SLU::Z::zlaqgs(A, R, C, rowcnd, colcnd, amax, equed);
 
  965 #endif  // HAVE_TEUCHOS_COMPLEX 
  972 #endif  // AMESOS2_SUPERLU_FUNCTIONMAP_HPP 
Declaration of Function mapping class for Amesos2. 
Provides definition of SuperLU types as well as conversions and type traits.