ConicBundle
Public Member Functions | List of all members
ConicBundle::QPSolverProxObject Class Referenceabstract

in order to pass a ConicBundle::BundleProxObject, see Quadratic Proximal Terms, to a custzomized QPSolverObject, the prox classes are also derived from this object More...

#include <QPSolverObject.hxx>

Inheritance diagram for ConicBundle::QPSolverProxObject:
ConicBundle::BundleProxObject ConicBundle::BundleDenseTrustRegionProx ConicBundle::BundleDiagonalTrustRegionProx ConicBundle::BundleDLRTrustRegionProx ConicBundle::BundleIdProx ConicBundle::BundleLowRankTrustRegionProx

Public Member Functions

virtual ~QPSolverProxObject ()
 virtual destructor
 
virtual bool is_DLR () const =0
 return true if H is of the form diagonal matrix plus Gram matrix of a low rank matrix
 
virtual int add_H (CH_Matrix_Classes::Symmatrix &big_sym, CH_Matrix_Classes::Integer start_index=0) const =0
 add H to the dense symmetric matrix as a principal submatrix starting at position start_index
 
virtual CH_Matrix_Classes::Matrixadd_Hx (const CH_Matrix_Classes::Matrix &x, CH_Matrix_Classes::Matrix &outplusHx, CH_Matrix_Classes::Real alpha=1.) const =0
 add $Hx$ to outplusHx and return this
 
virtual CH_Matrix_Classes::Matrixapply_Hinv (CH_Matrix_Classes::Matrix &x) const =0
 returns $H^{-1}x$, possibly transformed by some AffineFunctionTransformation More...
 
virtual void get_precond (CH_Matrix_Classes::Matrix &D, const CH_Matrix_Classes::Matrix *&Vp) const =0
 return $Diag(D)+VV^T$ which either equals $H$ exactly (iff is_DLR() returns true) or, if not, serves as an approximation hopefully suitable for preconditioning. If $V$ is available it may be large, so return only a pointer to avoid copying. If no $V$ is available, then put Vp==0 on exit.
 
virtual void set_short_QPsteps (CH_Matrix_Classes::Integer shortQPst)=0
 may be used to indicate seemingly conservative step sizes possibly due to the quadratic term
 
virtual CH_Matrix_Classes::Integer get_short_QPsteps ()=0
 retrieves the number of conservative step sizes possibly due to the quadratic term passed on to this
 

Detailed Description

in order to pass a ConicBundle::BundleProxObject, see Quadratic Proximal Terms, to a custzomized QPSolverObject, the prox classes are also derived from this object

Member Function Documentation

◆ apply_Hinv()

virtual CH_Matrix_Classes::Matrix& ConicBundle::QPSolverProxObject::apply_Hinv ( CH_Matrix_Classes::Matrix x) const
pure virtual

returns $H^{-1}x$, possibly transformed by some AffineFunctionTransformation

If a stack of instances of AffineFunctionTransformation has been added by push_aft() and A_1 to A_k are on the stack with A_k on top, then it returns $ A_k\cdots A_1\cdot H^{-1}\cdot A_1^\top\cdots A_k^\top\cdot x$

Implemented in ConicBundle::BundleDiagonalTrustRegionProx, ConicBundle::BundleLowRankTrustRegionProx, ConicBundle::BundleDenseTrustRegionProx, ConicBundle::BundleProxObject, ConicBundle::BundleDLRTrustRegionProx, and ConicBundle::BundleIdProx.


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