10#ifndef THYRA_AMESOS_TYPES_HPP 
   11#define THYRA_AMESOS_TYPES_HPP 
   13#include "Amesos_ConfigDefs.h" 
   14#include "Teuchos_StringToIntMap.hpp" 
   28#ifdef HAVE_AMESOS_UMFPACK 
   31#ifdef HAVE_AMESOS_SUPERLU 
   34#ifdef HAVE_AMESOS_SUPERLUDIST 
   37#ifdef HAVE_AMESOS_TAUCS 
   40#ifdef HAVE_AMESOS_PARDISO 
   43#ifdef HAVE_AMESOS_PASTIX 
   46#ifdef HAVE_AMESOS_PARAKLETE 
   49#ifdef HAVE_AMESOS_MUMPS 
   52#ifdef HAVE_AMESOS_SCALAPACK 
   55#ifdef HAVE_AMESOS_DSCPACK 
   63const int numSolverTypes = 1 
 
   67#ifdef HAVE_AMESOS_UMFPACK 
   70#ifdef HAVE_AMESOS_SUPERLU 
   73#ifdef HAVE_AMESOS_SUPERLUDIST 
   76#ifdef HAVE_AMESOS_TAUCS 
   79#ifdef HAVE_AMESOS_PARDISO 
   82#ifdef HAVE_AMESOS_PASTIX 
   85#ifdef HAVE_AMESOS_PARAKLETE 
   88#ifdef HAVE_AMESOS_MUMPS 
   91#ifdef HAVE_AMESOS_SCALAPACK 
   94#ifdef HAVE_AMESOS_DSCPACK 
  102extern const ESolverType solverTypeValues[numSolverTypes];
 
  107extern const char* solverTypeNames[numSolverTypes];
 
  112extern const bool supportsUnsymmetric[numSolverTypes];
 
  117inline const char* 
toString(
const ESolverType solverType)
 
  118{ 
return solverTypeNames[solverType]; }
 
  123extern Teuchos::StringToIntMap solverTypeNameToEnumMap;
 
  128enum ERefactorizationPolicy {
 
  129  REPIVOT_ON_REFACTORIZATION     
 
  130  ,NO_PIVOT_ON_REFACTORIZATION   
 
  136const int numRefactorizationPolices = 2;
 
  141extern const ERefactorizationPolicy refactorizationPolicyValues[numRefactorizationPolices];
 
  144extern const char* refactorizationPolicyNames[numRefactorizationPolices];
 
  149inline const char* 
toString(
const ERefactorizationPolicy refactorizationPolicy)
 
  150{ 
return refactorizationPolicyNames[refactorizationPolicy]; }
 
  155extern Teuchos::StringToIntMap refactorizationPolicyNameToEnumMap;
 
std::string toString(const int &x)