
using  DeviceType = Devices::Host 

using  IndexType = Index 

using  RealType = Real 

using  VectorType = Containers::Vector< RealType, DeviceType, IndexType > 

using  ConstVectorViewType = typename Traits< Matrix >::ConstVectorViewType 
 Type for constant vector view.


using  DeviceType = typename Matrix::DeviceType 
 Device where the solver will run on and auxillary data will alloacted on.


using  IndexType = typename Matrix::IndexType 
 Type for indexing.


using  MatrixPointer = std::shared_ptr< std::add_const_t< MatrixType > > 
 Type of shared pointer to the matrix.


using  MatrixType = Matrix 
 Type of the matrix representing the linear system.


using  RealType = typename Matrix::RealType 
 Floating point type used for computations.


using  VectorViewType = typename Traits< Matrix >::VectorViewType 
 Type for vector view.


bool  setup (const Config::ParameterContainer ¶meters, const String &prefix="") override 
 Method for setup of the preconditioner of linear iterative solver based on configuration parameters.


void  solve (ConstVectorViewType b, VectorViewType x) const override 
 This method applies the preconditioner.


void  update (const MatrixPointer &matrixPointer) override 
 This method updates the preconditioner with respect to given matrix.


virtual  ~Preconditioner () 
 Destructor of the preconditioner.


static void  configSetup (Config::ConfigDescription &config, const String &prefix="") 
 This method defines configuration entries for setup of the preconditioner of linear iterative solver.


template<typename M > 
static IndexType  getMinColumn (const M &m) 

template<typename M > 
static IndexType  getMinColumn (const Matrices::DistributedMatrix< M > &m) 

Matrices::SparseMatrix< RealType, DeviceType, IndexType, Matrices::GeneralMatrix, Algorithms::Segments::CSR >  L 

Index  p = 0 

Real  tau = 1e4 

Matrices::SparseMatrix< RealType, DeviceType, IndexType, Matrices::GeneralMatrix, Algorithms::Segments::CSR >  U 
