![]() |
SG++-Doxygen-Documentation
|
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>
Public Member Functions | |
DBMatDMSDenseIChol (const sgpp::datadriven::DensityEstimationConfiguration &densityEstimationConfig, Grid &grid, double lambda, bool doCV) | |
![]() | |
void | choleskyDowndate (sgpp::base::DataMatrix &decompMatrix, const sgpp::base::DataVector &downdate, bool do_cv=false) const |
Performe a rank one cholesky downdate. | |
void | choleskyUpdate (sgpp::base::DataMatrix &decompMatrix, const sgpp::base::DataVector &update, bool do_cv=false) const |
Performe a rank one cholesky update. | |
DBMatDMSChol ()=default | |
Default constructor. | |
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. | |
void | solveParallel (DataMatrixDistributed &decompMatrix, DataVectorDistributed &x, double lambda_old, double lambda_new) const |
Parallel (distributed) version of solve. | |
![]() | |
DBMatDecompMatrixSolver () | |
![]() | |
double | getEpsilon () |
gets the the epsilon, that is used in the SGSolver | |
size_t | getNumberIterations () |
function that returns the number of needed solve steps | |
double | getResiduum () |
function the returns the residuum (current or final), error of the solver | |
void | setEpsilon (double eps) |
resets the epsilon, that is used in the SGSolver | |
void | setMaxIterations (size_t nIterations) |
resets the number of maximum iterations | |
SGSolver (size_t nMaximumIterations, double epsilon) | |
Std-Constructor. | |
virtual | ~SGSolver () |
Std-Destructor. | |
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. | |
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. | |
void | choleskyUpdateLambda (DataMatrix &decompMatrix, double lambdaUp) const override |
Update the regularization factor of the decomposition. | |
Additional Inherited Members | |
![]() | |
double | myEpsilon |
epsilon needed in the, e.g. final error in the iterative solver, or a timestep | |
size_t | nIterations |
Number of Iterations needed for the solve. | |
size_t | nMaxIterations |
Number of maximum iterations for cg. | |
double | residuum |
residuum | |
Solve the system of equations with a LL'-decomposed matrix where LL' is created by an iterative, incomplete cholesky factorization on a dense matrix.
sgpp::datadriven::DBMatDMSDenseIChol::DBMatDMSDenseIChol | ( | const sgpp::datadriven::DensityEstimationConfiguration & | densityEstimationConfig, |
Grid & | grid, | ||
double | lambda, | ||
bool | doCV | ||
) |
|
overrideprotectedvirtual |
Perform backward substitution solving the triangular system $A alpha = y$ with a parallel Jaccobi solver.
decompMatrix | Triangular matrix |
y | right hand side obtained by forward substitution |
alpha | the vector of unknowns we solve for |
Reimplemented from sgpp::datadriven::DBMatDMSChol.
References alpha, 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().
|
overrideprotectedvirtual |
Perform forward substitution solving the triangular system $L y = b$ with a parallel Jaccobi solver.
decompMatrix | Triangular matrix |
b | right hand side of our initial system matrix we solve for |
y | the 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().
|
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.
decompMatrix | |
lambdaUp |
Reimplemented from sgpp::datadriven::DBMatDMSChol.
References sgpp::datadriven::DBMatOfflineDenseIChol::ichol(), and sgpp::datadriven::DensityEstimationConfiguration::iCholSweepsUpdateLambda_.