ConicBundle
|
stores use information for the model that the minorant is generated for or to the data the model refers to More...
#include <MinorantUseData.hxx>
Public Member Functions | |
MinorantUseData (Minorant *mp, CH_Matrix_Classes::Real sval, CH_Matrix_Classes::Integer modif_id) | |
constructor for a new minorant with scaling sval and modification id modfi_id | |
MinorantUseData (MinorantUseData *mdp, CH_Matrix_Classes::Real sval) | |
constructor for a recursively containing further MinorantUseData with an additional scaling factor sval | |
int | get_scaleval_and_minorant (CH_Matrix_Classes::Real &sv, Minorant *&m) |
by a recursive call return the collected scaling value and the final minorant | |
bool | valid () const |
check validity recursively | |
Minorant * | get_minorant () const |
return the final minorant (by a recursive call) or 0 if there is none | |
CH_Matrix_Classes::Integer & | set_modification_id () |
returns the modification id also for overwriting | |
CH_Matrix_Classes::Integer | get_modification_id () const |
returns the modification id | |
int | synchronize_ids (CH_Matrix_Classes::Integer new_modification_id, CH_Matrix_Classes::Integer new_center_id, CH_Matrix_Classes::Integer old_center_id, CH_Matrix_Classes::Integer new_cand_id, CH_Matrix_Classes::Integer old_cand_id, CH_Matrix_Classes::Integer new_prex_id) |
sets the modification_id to its new id and reinitializes the evaluation map | |
bool | aggregate () const |
returns true if the minorant is an aggregate of several minorants | |
int | aggregated (CH_Matrix_Classes::Integer n) |
add n to the number couting the aggregations | |
CH_Matrix_Classes::Real | offset () const |
return the offset of the minorant | |
CH_Matrix_Classes::Real | coeff (CH_Matrix_Classes::Integer i) const |
return coefficient i of the minorant | |
int | scale (CH_Matrix_Classes::Real factor) |
carries through the scaling for the underlying minorant, afterwards scaleval==1., may only be carried out if use_cnt==1 | |
int | call_primal_extender (PrimalExtender &prex, CH_Matrix_Classes::Integer in_prex_id) |
apply the primal extender to the minorant if in_prex_id indicates a new extension | |
CH_Matrix_Classes::Real | evaluate (CH_Matrix_Classes::Integer yid, const CH_Matrix_Classes::Matrix &y, bool with_constant=true) const |
evaluate the minorant for y unluess yid allows to retrieve a previous evaluation | |
bool | one_user () const |
returns true if not valid or use_cnt==1 recursively | |
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 | |
Private Member Functions | |
MinorantUseData (const MinorantUseData &) | |
forbidden, blocked deriberately | |
MinorantUseData & | operator= (const MinorantUseData &) |
forbidden, blocked deriberately | |
Private Attributes | |
CH_Matrix_Classes::Integer | use_cnt |
the number of MinorantPointer instance pointing to this; once it reaches 0 the corresponding Minorant Pointer will delete it | |
CH_Matrix_Classes::Integer | modification_id |
the value of the modification id of the function at the time of generation or when modified; if minorant!=0 and modification_id<0, the minorant is no longer valid | |
CH_Matrix_Classes::Integer | aggr_stat |
the number of minorants aggregated in this (only caused by MinorantPointer::aggregate | |
CH_Matrix_Classes::Integer | prex_id |
gives the id of the last primal extender call, -1 for failed, 0 initially | |
CH_Matrix_Classes::Real | scaleval |
value by which the minorant or the MinorantUseData has to be scaled | |
std::map< CH_Matrix_Classes::Integer, CH_Matrix_Classes::Real > | evals |
if minorant!=0, this records evaluations for given point ids | |
Minorant * | minorant |
this points to the minorant or maybe to nothing if not valid | |
MinorantUseData * | md |
if there is no minorant, it should be in here (recursively) | |
Friends | |
class | MinorantPointer |
stores use information for the model that the minorant is generated for or to the data the model refers to
The data always relates to the function/model the MinorantPointer was generated for; If a MinorantPointer from another function/model makes use of this, it generates its own MinorantUseData pointing to this MinorantUseData. This make it possible to recognize/enable dynamic function changes at any level.