version 0.4.1
linearsolver.hh File Reference

Type-erased linear solver with templated scalar type. More...

#include <memory>
#include <type_traits>
#include <variant>
#include <dune/common/exceptions.hh>
#include <Eigen/Core>
#include <Eigen/SparseCore>
#include <ikarus/utils/makeenum.hh>

Go to the source code of this file.

Classes

class  Ikarus::LinearSolverTemplate< ST >
 A type-erased class which wraps most of the linear solvers available in Eigen. More...
 

Namespaces

namespace  Ikarus
 

Typedefs

using Ikarus::LinearSolver = LinearSolverTemplate< double >
 

Enumerations

enum class  Ikarus::SolverTypeTag {
  Ikarus::BEGIN , Ikarus::none , Ikarus::si_ConjugateGradient , Ikarus::si_LeastSquaresConjugateGradient ,
  Ikarus::si_BiCGSTAB , Ikarus::sd_SimplicialLLT , Ikarus::sd_SimplicialLDLT , Ikarus::sd_SparseLU ,
  Ikarus::sd_SparseQR , Ikarus::sd_CholmodSupernodalLLT , Ikarus::sd_UmfPackLU , Ikarus::sd_SuperLU ,
  Ikarus::d_PartialPivLU , Ikarus::d_FullPivLU , Ikarus::d_HouseholderQR , Ikarus::d_ColPivHouseholderQR ,
  Ikarus::d_FullPivHouseholderQR , Ikarus::d_CompleteOrthogonalDecomposition , Ikarus::d_LLT , Ikarus::d_LDLT ,
  Ikarus::END
}
 Enumeration representing different solver types. More...
 
enum class  Ikarus::MatrixTypeTag { Ikarus::Dense , Ikarus::Sparse }
 Enumeration representing different matrix types (Dense or Sparse). More...
 

Functions

constexpr std::string Ikarus::toString (SolverTypeTag _e)