ConicBundle
Private Member Functions | Private Attributes | List of all members
ConicBundle::SOCSupportFunction Class Reference

general purpose implementation of SOCOracle as explained in implemention of a SOCOracle (SOCSupportFunction) More...

#include <SOCSupportFunction.hxx>

Inheritance diagram for ConicBundle::SOCSupportFunction:
ConicBundle::SOCOracle ConicBundle::CBout ConicBundle::ModifiableOracleObject ConicBundle::FunctionObject

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
Minorantgenerate_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 &current_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 &current_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)
 

Detailed Description

general purpose implementation of SOCOracle as explained in implemention of a SOCOracle (SOCSupportFunction)

Member Function Documentation

◆ apply_modification()

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


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