ConicBundle
Protected Attributes | List of all members
ConicBundle::SOCSupportModification Class Reference

Collects modifications for SOCSupportFunction for appending, deleting or reassigning variables. More...

#include <SOCSupportModification.hxx>

Inheritance diagram for ConicBundle::SOCSupportModification:
ConicBundle::CBout ConicBundle::OracleModification

Public Member Functions

Constructors and initialization
 SOCSupportModification (CH_Matrix_Classes::Integer var_olddim=0, const CBout *cb=0, int incr=-1)
 constructor, calls modification constructor
 
void clear (CH_Matrix_Classes::Integer var_olddim)
 reset modifications to an unmodified object currently having var_olddim variables, calls Modification::clear
 
virtual ~SOCSupportModification ()
 
Routines for adding modifications
int add_append_vars (CH_Matrix_Classes::Integer append_dim)
 append append_dim new variables to the box function
 
int add_reassign_vars (const CH_Matrix_Classes::Indexmatrix &map_to_old)
 reassign the variables as given in map_to_old, calls Modification::add_reassign_vars
 
int add_delete_vars (const CH_Matrix_Classes::Indexmatrix &del_ind, CH_Matrix_Classes::Indexmatrix &map_to_old)
 delete the variables indexed by del_ind; for each new index map_to_old returns the old one; calls Modification::add_delete_vars
 
Routines for querying properties of the collected modifications
bool no_modification () const
 returns true if no modifications need to be executed except possibly an offset change for the ground set minorant
 
int set_append_to_old (bool append_only)
 if set to true, no deletions/reassignments may be present or specified in the future, only appensions are allowed
 
bool append_to_old () const
 returns true if this only contains appending operations and incorporating this is done with respect to the old dimension
 
bool no_additions_or_deletions_in_vars () const
 returns true if no variables were added or deleted (allows permutations), false otherwise
 
bool deleted_variables_are_zero (const CH_Matrix_Classes::Matrix &oldpoint) const
 returns true if all entries deleted in oldpoint (must be a vector of length old_vardim()) are 0, false otherwise
 
bool new_variables_are_zero (const CH_Matrix_Classes::Matrix &newpoint) const
 returns true if all entries in newpoint (must be a vector of length new_vardim()) that correspond to new variables have value 0 and false otherwise
 
bool mapped_variables_are_equal (const CH_Matrix_Classes::Matrix &newpoint, const CH_Matrix_Classes::Matrix &oldpoint) const
 returns true if the values in newpoint (must be a vector of length new_vardim()) that correspond to old variables match the old values stored in oldpoint (must be a vector of length old_vardim()) and false otherwise
 
Routines implementing the abstract OracleModifcation messages
int get_old_vardim () const
 returns the number of variables before modification
 
int get_new_vardim () const
 returns the number of variables once all stored modifications have been performed
 
int get_appended_vardim () const
 returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)
 
const int * get_map_to_old_variables () const
 returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables
 
int incorporate (const OracleModification &m)
 incorporate the OracleModification m (it should only contain variable changes, but this is not checked!) into this one; calls Modification::incorporate
 
OracleModificationnew_initial_oraclemodification (int old_var_dim) const
 returns a new object on the heap, that allows to incorporate this but starts off from a function whose input argument dimension is old_var_dim
 
int add_append_variables (int append_dim)
 append append_dim further variables at the end of the argument vector (without effect on the box function, i.e., lower and upper bounds are set to 0)
 
int add_reassign_variables (int new_dim, const int *map_to_old_indices)
 reorder and resize the variables as given by the first new_dim entries of map_to_old_indices; each former index may appear at most once in this list, so new_dim < get_new_vardim()
 
Routines for retrieving the detailed collected modifications
CH_Matrix_Classes::Integer old_vardim () const
 returns the number of variables before modification (given on initialization)
 
CH_Matrix_Classes::Integer new_vardim () const
 returns the number of variables once all stored modifications have been performed
 
CH_Matrix_Classes::Integer appended_vardim () const
 returns the number of variables that are appended (due to later reassignmentds they may no longer be located at the end)
 
const CH_Matrix_Classes::Indexmatrixmap_to_old_variables () const
 returns null if there are no index changes, otherwise the Indexmatrix pointed to is a vector whose i-th entry holds the old index of the new i-th variable (injective!), index values exceeding old_vardim() refer to newly appended variables
 
const CH_Matrix_Classes::Indexmatrixdeleted_var_indices () const
 returns null if there were no deletions, otherwise the Indexmatrix pointed to is a vector holding the deleted old variable indices in increasing order
 
const CH_Matrix_Classes::Indexmatrixnew_var_indices () const
 returns null if no variables were added, otherwise the Indexmatrix pointed ato is a vector holding the new indices of the new variables in increasing order
 
Output settings
void set_out (std::ostream *out=0, int print_level=1)
 see CBout::set_out
 
void set_cbout (const CBout *cb=0, int incr=-1)
 see CBout::set_out
 
- 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
 

Protected Attributes

Modification mdf
 this class provides a restricted interface to this Modification instance where all modifications are organized and stored
 

Detailed Description

Collects modifications for SOCSupportFunction for appending, deleting or reassigning variables.

This class is implemented by restricting the possibilities of ConicBundle::Modification to the operations involving variables, so all routines simply call those of Modification. See the description there for usage.


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