ConicBundle
|
general purpose implementation of SOCOracle as explained in implemention of a SOCOracle (SOCSupportFunction) More...
#include <SOCSupportFunction.hxx>
Public Member Functions | |
Initialization | |
SOCSupportFunction (CH_Matrix_Classes::Integer socdim, const CBout *cb=0, int incr=-1) | |
initialize with dimension >= 1 (and output options) | |
~SOCSupportFunction () | |
Implementations of SOCOracle routines | |
Minorant * | generate_minorant (const CH_Matrix_Classes::Matrix &SOCvec) |
see SOCOracle::generate_minorant() | |
int | extract_SOCvector (CH_Matrix_Classes::Matrix &SOCvec, const Minorant *SOCminorant) |
see SOCOracle::extract_SOCvector() | |
int | projection (CH_Matrix_Classes::Matrix &offset, CH_Matrix_Classes::Matrix &coeffs, const CH_Matrix_Classes::Matrix &bar_P, const CH_Matrix_Classes::Indexmatrix *index_subset=0) |
see SOCOracle::projection() | |
virtual int | evaluate (const CH_Matrix_Classes::Matrix ¤t_point, const CH_Matrix_Classes::Real relprec, CH_Matrix_Classes::Real &SOC_value, CH_Matrix_Classes::Matrix &SOC_vector, SOCPrimalExtender *&primal_extender) |
see SOCOracle::evaluate() | |
virtual int | evaluate_projection (const CH_Matrix_Classes::Matrix ¤t_point, const CH_Matrix_Classes::Matrix &P, const CH_Matrix_Classes::Real relprec, CH_Matrix_Classes::Real &projected_SOC_value) |
see SOCOracle::evaluate() | |
virtual int | apply_modification (const OracleModification &oracle_modification, const CH_Matrix_Classes::Matrix *new_center, const CH_Matrix_Classes::Matrix *old_center, bool &discard_objective_in_center, bool &discard_model, bool &discard_aggregates, MinorantExtender *&minorant_extender) |
see SOCOracle::apply_modification() for the general use, here oracle_modification has a special role if it can be cast to an AMFModification More... | |
virtual bool | check_correctness () const |
see SOCOracle::check_correctness() (true only needed for debugging) | |
routines for querying data of the problem | |
CH_Matrix_Classes::Integer | get_socdim () |
returns the dimension of the second order cone | |
routines for supporting input and output | |
void | set_out (std::ostream *o=0, int pril=1) |
see ConicBundle::CBout | |
void | set_cbout (const CBout *cb, int incr=-1) |
see ConicBundle::CBout | |
std::ostream & | print_problem_data (std::ostream &out) const |
write the problem description to out so that it can be read again by read_problem_data() | |
std::istream & | read_problem_data (std::istream &in) |
clear() and read the problem from in in the format written by print_problem_data() | |
std::ostream & | print_problem_data_to_mfile (std::ostream &out, CH_Matrix_Classes::Integer blocknr) const |
undocumented highly volatile variant for external testing | |
Public Member Functions inherited from ConicBundle::ModifiableOracleObject | |
virtual | ~ModifiableOracleObject () |
virtual destructor | |
Public Member Functions inherited from ConicBundle::CBout | |
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 | |
int | apply_modification (const SOCSupportModification &mod) |
applies the SOCSupportModfication mod to the current function | |
Private Attributes | |
CH_Matrix_Classes::Integer | socdim |
dimension of the second order cone (for consistency checks) | |
general purpose implementation of SOCOracle as explained in implemention of a SOCOracle (SOCSupportFunction)
|
virtual |
see SOCOracle::apply_modification() for the general use, here oracle_modification has a special role if it can be cast to an AMFModification
if oracle_modification cannot be cast to an SOCSupportModification it is assumed that all append modifications amount to have already been carried out on *this seperately before this routine is called. In particular, it is only checked whether the new dimension matches the one given by oracle_modification, the old dimension is ignored. If this does not hold, the routine stops with an error. Otherwise it checks the other stuff as if a suitable SOCSupportModification has just been executed.
Reimplemented from ConicBundle::SOCOracle.