INLA_DIST
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
Solver Class Referenceabstract

abstract base solver class to enable to be able two switch between solvers (current options: PARDISO & GPU) at run time. More...

#include <Solver.h>

Inheritance diagram for Solver:
BTASolver EigenCholSolver EigenSolver PardisoSolver

Public Member Functions

virtual void symbolic_factorization (SpMat &Q, int &init)=0
 
virtual void factorize (SpMat &Q, double &log_det, double &t_priorLatChol)=0
 
virtual void factorize_w_constr (SpMat &Q, const MatrixXd &D, double &log_det, MatrixXd &V)=0
 
virtual void factorize_solve (SpMat &Q, Vect &rhs, Vect &sol, double &log_det, double &t_condLatChol, double &t_condLatSolve)=0
 
virtual void factorize_solve_w_constr (SpMat &Q, Vect &rhs, const MatrixXd &Dxy, double &log_det, Vect &sol, MatrixXd &V)=0
 
virtual void selected_inversion (SpMat &Q, Vect &inv_diag)=0
 
virtual void selected_inversion_w_constr (SpMat &Q, const MatrixXd &D, Vect &inv_diag, MatrixXd &V)=0
 

Protected Attributes

int init
 
double log_det
 
SpMat Q
 
Vect rhs
 
Vect sol
 

Detailed Description

abstract base solver class to enable to be able two switch between solvers (current options: PARDISO & GPU) at run time.

divided into set up, symbolic factorisation, numerical factorisation, numerical factorisation & solve and selected inversion (of the diagonal elements)

Member Function Documentation

◆ factorize()

virtual void Solver::factorize ( SpMat &  Q,
double &  log_det,
double &  t_priorLatChol 
)
pure virtual

◆ factorize_solve()

virtual void Solver::factorize_solve ( SpMat &  Q,
Vect &  rhs,
Vect &  sol,
double &  log_det,
double &  t_condLatChol,
double &  t_condLatSolve 
)
pure virtual

◆ selected_inversion()

virtual void Solver::selected_inversion ( SpMat &  Q,
Vect &  inv_diag 
)
pure virtual

◆ symbolic_factorization()

virtual void Solver::symbolic_factorization ( SpMat &  Q,
int &  init 
)
pure virtual

Member Data Documentation

◆ init

int Solver::init
protected

flag indicating if symbolic factorisation was already performed or not

◆ log_det

double Solver::log_det
protected

log determinant of Q

◆ Q

SpMat Solver::Q
protected

sparse precision matrix Q. Eigen format.

◆ rhs

Vect Solver::rhs
protected

right-hand side, solving Q*sol = rhs

◆ sol

Vect Solver::sol
protected

solution vector, solving Q*sol = rhs


The documentation for this class was generated from the following file: