|
| BundleIdProx (CH_Matrix_Classes::Integer d=0, CH_Matrix_Classes::Real w=1., CBout *cb=0, int cbinc=-1) |
| initialize with dimension and weight
|
|
virtual void | set_weightu (CH_Matrix_Classes::Real in_weightu) |
| set the weight of the proximal term
|
|
virtual CH_Matrix_Classes::Real | get_weightu () const |
| returns the current weight of the proximal term
|
|
virtual CH_Matrix_Classes::Real | get_term_corr (void) const |
| returns the correction factor for the termination criterion, here min(1,1/weight)
|
|
virtual CH_Matrix_Classes::Real | norm_sqr (const CH_Matrix_Classes::Matrix &B) const |
| returns
|
|
virtual CH_Matrix_Classes::Real | dnorm_sqr (const MinorantPointer &B) const |
| returns
|
|
virtual bool | is_DLR () const |
| 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 |
| add H to the dense symmetric matrix as a principal submatrix starting at position start_index
|
|
virtual CH_Matrix_Classes::Matrix & | add_Hx (const CH_Matrix_Classes::Matrix &x, CH_Matrix_Classes::Matrix &outplusHx, CH_Matrix_Classes::Real alpha=1.) const |
| adds to outplusHx and returns this
|
|
virtual CH_Matrix_Classes::Matrix & | apply_Hinv (CH_Matrix_Classes::Matrix &x) const |
| returns
|
|
virtual void | get_precond (CH_Matrix_Classes::Matrix &D, const CH_Matrix_Classes::Matrix *&Vp) const |
| returns a suitable approximation for preconditioning, see BundleProxObject::get_precond
|
|
virtual int | compute_QP_costs (CH_Matrix_Classes::Symmatrix &Q, CH_Matrix_Classes::Matrix &d, CH_Matrix_Classes::Real &offset, const MinorantPointer &constant_minorant, const MinorantBundle &bundle, const CH_Matrix_Classes::Matrix &y, const MinorantPointer &groundset_minorant, CH_Matrix_Classes::Indexmatrix *yfixed) |
| computes the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::compute_QP_costs
|
|
virtual int | update_QP_costs (CH_Matrix_Classes::Symmatrix &delta_Q, CH_Matrix_Classes::Matrix &delta_d, CH_Matrix_Classes::Real &delta_offset, const MinorantPointer &constant_minorant, const MinorantBundle &bundle, const CH_Matrix_Classes::Matrix ¢er_y, const MinorantPointer &groundset_minorant, const MinorantPointer &delta_groundset_minorant, const CH_Matrix_Classes::Indexmatrix &delta_index, CH_Matrix_Classes::Indexmatrix *yfixed) |
| updates the dual QP costs Q, d, and the constant offset to the bundle subproblem, see BundleProxObject::update_QP_costs
|
|
virtual int | apply_modification (const GroundsetModification &gsmdf) |
| when BundleSolver is called to modify the groundset it also calls this
|
|
virtual BundleProxObject * | projected_clone (const CH_Matrix_Classes::Indexmatrix &indices) |
| in order to allow for fixed variables, this generates a clone restricted to the given indices
|
|
virtual int | mfile_data (std::ostream &out) const |
| output the description of the prox term in mfile-suitable format
|
|
| BundleProxObject (VariableMetricSelection *vp=0, bool local_scaling=false, bool bounds_scaling=false, CBout *cb=0, int cbincr=-1) |
| default constructor, switching on dynamic scaling only works for classes with corresponding support
|
|
virtual void | set_short_QPsteps (CH_Matrix_Classes::Integer shortQPst) |
| may be used to indicate seemingly conservative step sizes possibly due to the quadratic term
|
|
virtual CH_Matrix_Classes::Integer | get_short_QPsteps () |
| retrieves the number of conservative step sizes possibly due to the quadratic term passed on to this
|
|
int | apply_factor (CH_Matrix_Classes::Real f) |
| allows AFTModel and SumModel to accumulate a compensation factor for tracing the effects of recursive applications of function_factor in update_model (does not affect H but can be retrieved by get_factor() for this purpose)
|
|
CH_Matrix_Classes::Real | get_factor () |
| returns the current accumulated compensation factor by which H would need to be scaled in order to reflect the curvature relative to the current function without function_factor;
|
|
virtual | ~VariableMetric () |
| virtual destructor
|
|
| VariableMetric (VariableMetricSelection *vp=0, bool use_loc_metric=false, bool use_bnds_scaling=false, CBout *cbo=0, int cbinc=-1) |
| default constructor; if vp is not zero, ownership of *vp is passed over to *this and *this will delete vp
|
|
VariableMetricSelection * | get_variable_metric_selection () const |
| returns 0 or an available VariableMetricSelection object, that may be employed for computing a variable metric term in accordance with the value of use_local_metric
|
|
void | set_variable_metric_selection (VariableMetricSelection *vp=0) |
| sets use_variable_metric; the object passed is then owned by this
|
|
virtual bool | supports_dense_variable_metric () const |
| returns true if add_dense_variable_metric() is supported
|
|
virtual bool | supports_lowrank_variable_metric () const |
| returns true if add_variable_metric() does not ignore the low rank argument vecH
|
|
virtual bool | supports_diagonal_variable_metric () const |
| returns true if add_variable_metric() does not ignore the diagonal argument diagH
|
|
bool | employ_variable_metric () const |
| returns true if some dynamic scaling is supported and switched on
|
|
virtual int | apply_variable_metric (VariableMetricModel *, VariableMetricModel *, const CH_Matrix_Classes::Matrix &, CH_Matrix_Classes::Integer, const CH_Matrix_Classes::Matrix &, bool, CH_Matrix_Classes::Real &, CH_Matrix_Classes::Real, const CH_Matrix_Classes::Indexmatrix *=0) |
| the BundleSolver starts an update of this by dynamic scaling by calling this in every step; negative parameters give no preferences, but the global aggregate (groundset+model) has to be provided and if descent_step==false the scaling may only increase
|
|
virtual int | add_variable_metric (CH_Matrix_Classes::Symmatrix &) |
| adds a suitable modification of symH (symH may be modified in this) to the scaling matrix H More...
|
|
virtual int | add_variable_metric (CH_Matrix_Classes::Matrix &, CH_Matrix_Classes::Matrix &) |
| adds (a suitable modification of) Diag(diagH)+vecH*transpose(vecH) to the scaling matrix H (either matrix may be modified in this) More...
|
|
virtual int | push_aft (const AffineFunctionTransformation *) |
| this AffineFunctionTransformation has to be used before applying Hinv in
|
|
virtual int | pop_aft () |
| removes the top most aft (without deleting it!)
|
|
bool | get_use_bounds_scaling () const |
| returns use_bounds_scaling
|
|
void | set_use_bounds_scaling (bool bounds_scaling) |
| sets use_bounds_scaling
|
|
virtual bool | supports_diagonal_bounds_scaling () const |
| if the respective implementation supports a diagonal bounds scaling heuristic, the following routine has to return true; see also diagonal_scaling_heuristic_update()
|
|
bool | employ_diagonal_bounds_scaling () const |
| if the respective implementation supports a diagonal bounds scaling heuristic, the following routine has to return true; see also diagonal_bounds_scaling_update()
|
|
virtual int | diagonal_bounds_scaling_update (const CH_Matrix_Classes::Matrix &) |
| if supported, D_update has to contain nonnegative numbers that are permanently added to the diagonal here. More...
|
|
bool | get_use_local_metric () const |
| returns use_local_metric
|
|
void | set_use_local_metric (bool local_metric) |
| sets use_local_metric
|
|
virtual void | set_out (std::ostream *out=0, int print_level=1) |
| Specifies the output level (out==NULL: no output at all, out!=NULL and level=0: errors and warnings, level>0 increasingly detailed information) More...
|
|
virtual void | set_cbout (const CBout *cb, int incr=-1) |
| Specifies the output level relative to the given CBout class. More...
|
|
void | clear_cbout () |
| reset to default settings (out=0,print_level=1)
|
|
| CBout (const CBout *cb=0, int incr=-1) |
| calls set_cbout
|
|
| CBout (std::ostream *outp, int pl=1) |
| initialize correspondingly
|
|
| CBout (const CBout &cb, int incr=0) |
| copy constructor
|
|
virtual bool | cb_out (int pl=-1) const |
| Returns true if out!=0 and (pl<print_level), pl<0 should be used for WARNINGS and ERRORS only, pl==0 for usual output.
|
|
std::ostream & | get_out () const |
| If cb_out() returned true, this returns the output stream, but it will abort if called with out==0.
|
|
std::ostream * | get_out_ptr () const |
| returns the pointer to the output stream
|
|
int | get_print_level () const |
| returns the print_level
|
|
virtual | ~QPSolverProxObject () |
| virtual destructor
|
|
implements the abstract interface ConicBundle::BundleProxObject for with H=weight*I, giving rise to a pure augmented model without scaling