SG++
sgpp::datadriven::DBMatDMSDenseIChol Class Reference

Solve the system of equations with a LL'-decomposed matrix where LL' is created by an iterative, incomplete cholesky factorization on a dense matrix. More...

#include <DBMatDMSDenseIChol.hpp>

Inheritance diagram for sgpp::datadriven::DBMatDMSDenseIChol:
sgpp::datadriven::DBMatDMSChol sgpp::datadriven::DBMatDecompMatrixSolver sgpp::solver::SGSolver

Public Member Functions

 DBMatDMSDenseIChol (const sgpp::datadriven::DensityEstimationConfiguration &densityEstimationConfig, Grid &grid, double lambda, bool doCV)
 
- Public Member Functions inherited from sgpp::datadriven::DBMatDMSChol
void choleskyDowndate (sgpp::base::DataMatrix &decompMatrix, const sgpp::base::DataVector &downdate, bool do_cv=false) const
 Performe a rank one cholesky downdate. More...
 
void choleskyUpdate (sgpp::base::DataMatrix &decompMatrix, const sgpp::base::DataVector &update, bool do_cv=false) const
 Performe a rank one cholesky update. More...
 
 DBMatDMSChol ()=default
 Default constructor. More...
 
virtual void solve (sgpp::base::DataMatrix &decompMatrix, sgpp::base::DataVector &alpha, const sgpp::base::DataVector &b, double lambda_old, double lambda_new) const
 Solves a system of equations. More...
 
- Public Member Functions inherited from sgpp::datadriven::DBMatDecompMatrixSolver
 DBMatDecompMatrixSolver ()
 
- Public Member Functions inherited from sgpp::solver::SGSolver
double getEpsilon ()
 gets the the epsilon, that is used in the SGSolver More...
 
size_t getNumberIterations ()
 function that returns the number of needed solve steps More...
 
double getResiduum ()
 function the returns the residuum (current or final), error of the solver More...
 
void setEpsilon (double eps)
 resets the epsilon, that is used in the SGSolver More...
 
void setMaxIterations (size_t nIterations)
 resets the number of maximum iterations More...
 
 SGSolver (size_t nMaximumIterations, double epsilon)
 Std-Constructor. More...
 
virtual ~SGSolver ()
 Std-Destructor. More...
 

Protected Member Functions

void choleskyBackwardSolve (const DataMatrix &decompMatrix, const DataVector &y, DataVector &alpha) const override
 Perform backward substitution solving the triangular system $A alpha = y$ with a parallel Jaccobi solver. More...
 
void choleskyForwardSolve (const DataMatrix &decompMatrix, const DataVector &b, DataVector &y) const override
 Perform forward substitution solving the triangular system $L y = b$ with a parallel Jaccobi solver. More...
 
void choleskyUpdateLambda (DataMatrix &decompMatrix, double lambdaUp) const override
 Update the regularization factor of the decomposition. More...
 

Additional Inherited Members

- Protected Attributes inherited from sgpp::solver::SGSolver
double myEpsilon
 epsilon needed in the, e.g. final error in the iterative solver, or a timestep More...
 
size_t nIterations
 Number of Iterations needed for the solve. More...
 
size_t nMaxIterations
 Number of maximum iterations for cg. More...
 
double residuum
 residuum More...
 

Detailed Description

Solve the system of equations with a LL'-decomposed matrix where LL' is created by an iterative, incomplete cholesky factorization on a dense matrix.

Constructor & Destructor Documentation

sgpp::datadriven::DBMatDMSDenseIChol::DBMatDMSDenseIChol ( const sgpp::datadriven::DensityEstimationConfiguration densityEstimationConfig,
Grid grid,
double  lambda,
bool  doCV 
)

Member Function Documentation

void sgpp::datadriven::DBMatDMSDenseIChol::choleskyBackwardSolve ( const DataMatrix decompMatrix,
const DataVector y,
DataVector alpha 
) const
overrideprotectedvirtual

Perform backward substitution solving the triangular system $A alpha = y$ with a parallel Jaccobi solver.

Parameters
decompMatrixTriangular matrix
yright hand side obtained by forward substitution
alphathe vector of unknowns we solve for

Reimplemented from sgpp::datadriven::DBMatDMSChol.

References sgpp::base::DataVector::get(), sgpp::base::DataMatrix::get(), sgpp::base::DataVector::getSize(), sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsSolver_, sgpp::base::DataVector::set(), and sgpp::base::DataVector::setAll().

void sgpp::datadriven::DBMatDMSDenseIChol::choleskyForwardSolve ( const DataMatrix decompMatrix,
const DataVector b,
DataVector y 
) const
overrideprotectedvirtual

Perform forward substitution solving the triangular system $L y = b$ with a parallel Jaccobi solver.

Parameters
decompMatrixTriangular matrix
bright hand side of our initial system matrix we solve for
ythe vector of unknowns we solve for

Reimplemented from sgpp::datadriven::DBMatDMSChol.

References sgpp::base::DataVector::get(), sgpp::base::DataMatrix::get(), sgpp::base::DataMatrix::getNrows(), sgpp::base::DataVector::getSize(), sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsSolver_, sgpp::base::DataVector::set(), sgpp::base::DataMatrix::set(), sgpp::base::DataVector::setAll(), and analyse_erg::tmp.

void sgpp::datadriven::DBMatDMSDenseIChol::choleskyUpdateLambda ( DataMatrix decompMatrix,
double  lambdaUp 
) const
overrideprotectedvirtual

Update the regularization factor of the decomposition.

This is a very costly operation as the iterative algorithm will need to recalculate the entire decomposition. However the current solution is used as an initial guess, reducing the required amount of sweeps.

Parameters
decompMatrix
lambdaUp

Reimplemented from sgpp::datadriven::DBMatDMSChol.

References sgpp::datadriven::DBMatOfflineDenseIChol::ichol(), and sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsUpdateLambda_.


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