ConicBundle
|
abstract interface declaring the uniform outer appearance of general cutting models produced by the various models for use in generating the model data so that QP Solvers can provide their own tuned data blocks More...
#include <QPModelDataObject.hxx>
Public Member Functions | |
virtual void | clear ()=0 |
clear | |
QPModelDataObject (CBout *cb=0, int cbinc=-1) | |
default constructor | |
virtual | ~QPModelDataObject () |
virtual destructor | |
virtual const MinorantPointer & | get_constant_minorant () const =0 |
gives reading access to a constant offset minorant | |
virtual const MinorantBundle & | get_bundle () const =0 |
gives reading access to the (possibly transformed) bundle minorants of the cutting model | |
virtual MinorantPointer & | get_constant_minorant ()=0 |
gives access to a constant offset minorant | |
virtual MinorantBundle & | get_bundle ()=0 |
gives access to the bundle minorants of the cutting model so that an AffineFunctionsTransformation and similar can be applied | |
virtual int | push_aft (const AffineFunctionTransformation *inaft, const CH_Matrix_Classes::Indexmatrix *global_indices, const CH_Matrix_Classes::Indexmatrix *local_indices, std::map< MinorantPointer, MinorantPointer > *precomputed=0)=0 |
applies the AffineFunctionTransformation to constant_minorant and bundle, where (if given) only the global_indices of the transformed subgradients are required which need the local_indices only. More... | |
virtual int | pop_aft ()=0 |
undo the top push_aft this | |
virtual int | add_modelx_aggregate (CH_Matrix_Classes::Real &offset, CH_Matrix_Classes::Matrix &gradient)=0 |
this routine is added here mainly to allow for comperative testing; for the current value of x it adds the aggregate minorant (offset and gradient) to the arguments. Caution: the bundle used might have been modified by AffineFuncitonTransformations and need not be the same as initialized with. | |
Public Member Functions inherited from ConicBundle::CBout | |
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 int | mfile_data (std::ostream &out) const |
writes problem data to the given outstream | |
abstract interface declaring the uniform outer appearance of general cutting models produced by the various models for use in generating the model data so that QP Solvers can provide their own tuned data blocks
|
pure virtual |
applies the AffineFunctionTransformation to constant_minorant and bundle, where (if given) only the global_indices of the transformed subgradients are required which need the local_indices only.
If precomputed is given, it may contain some or contains afterwards a map from original minorant to transformed minorant; returns 0 on success.
The given aft and indices will be stored and may be used during the solution of the QP subproblem, therefore the objects pointed to have to remain valid throughout their use in the QP.
The AFT has to pushed onto the model data after the subgradient data has been initialized. Multiple AFTs have to pushed in the correct sequence so that the first AFT pushed is the first to be applied to the subgradient data, etc.
Implemented in ConicBundle::QPModelBlock, and ConicBundle::UQPModelBlock.
Referenced by QPModelDataObject().