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

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>

Inheritance diagram for ConicBundle::QPModelDataObject:
ConicBundle::CBout ConicBundle::QPConeModelDataObject ConicBundle::QPModelBlock ConicBundle::QPSumModelDataObject ConicBundle::UQPModelBlock ConicBundle::QPConeModelBlock ConicBundle::UQPConeModelBlock ConicBundle::QPConeModelBlock ConicBundle::QPSumModelBlock ConicBundle::QPSumModelBlock ConicBundle::UQPSumModelBlock ConicBundle::UQPConeModelBlock ConicBundle::UQPSumModelBlock

Public Member Functions

virtual void clear ()=0
 clear
 
 QPModelDataObject (CBout *cb=0, int cbinc=-1)
 default constructor
 
virtual ~QPModelDataObject ()
 virtual destructor
 
virtual const MinorantPointerget_constant_minorant () const =0
 gives reading access to a constant offset minorant
 
virtual const MinorantBundleget_bundle () const =0
 gives reading access to the (possibly transformed) bundle minorants of the cutting model
 
virtual MinorantPointerget_constant_minorant ()=0
 gives access to a constant offset minorant
 
virtual MinorantBundleget_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
 

Detailed Description

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

Member Function Documentation

◆ push_aft()

virtual int ConicBundle::QPModelDataObject::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 
)
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().


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