ConicBundle
PSCVariableMetricSelection.hxx
Go to the documentation of this file.
1 
2 
3 #ifndef CONICBUNDLE_PSCVARIABLEMETRICSELECTION_HXX
4 #define CONICBUNDLE_PSCVARIABLEMETRICSELECTION_HXX
5 
6 
15 #include "PSCOracle.hxx"
16 #include "VariableMetric.hxx"
17 
18 namespace ConicBundle {
19 
20 
25 
26 
40 {
41 private:
44 
47 
50 
53 
55 
63 
64 public:
67  {}
68 
70  PSCVariableMetricSelection(CBout* cb=0,int cbincr=-1):
71  VariableMetricSelection(cb,cbincr),
72  selection_method(-1),
73  oldfactor(0.),
74  maxeigval_factor(1e6),
75  mineigval_factor(1e-3),
76  oracle(0)
77  {}
78 
81  {return selection_method;}
82 
85  {selection_method=sm;}
86 
89  {return oldfactor;}
90 
93  {oldfactor=CH_Matrix_Classes::min(1.,CH_Matrix_Classes::max(0.,of));}
94 
97  {return maxeigval_factor;}
98 
101  {maxeigval_factor=CH_Matrix_Classes::max(1.,ef);}
102 
105  {return mineigval_factor;}
106 
110 
112  virtual void set_oracle(PSCOracle* psco)
113  { oracle=psco; }
114 
118  const CH_Matrix_Classes::Matrix& y,
119  bool descent_step,
120  CH_Matrix_Classes::Real weightu,
121  CH_Matrix_Classes::Real model_maxviol,
122  const CH_Matrix_Classes::Indexmatrix* indices,
123  VariableMetricBundleData& bundle_data);
124 
127  return new PSCVariableMetricSelection(this,0);
128  }
129 };
130 
131 
132 
134 
135 }
136 
137 #endif
138 
int Integer
all integer numbers in calculations and indexing are of this type
Definition: matop.hxx:40
virtual void set_maxeigval_factor(CH_Matrix_Classes::Real ef)
sets the parameter
Definition: PSCVariableMetricSelection.hxx:100
CH_Matrix_Classes::Symmatrix S
local storage for eigenvalue/SVD computations
Definition: PSCVariableMetricSelection.hxx:62
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
CH_Matrix_Classes::Integer selection_method
specifies which of the current experimental routines should be used for computing the metric ...
Definition: PSCVariableMetricSelection.hxx:43
CH_Matrix_Classes::Matrix tmpvec
local temporary storage
Definition: PSCVariableMetricSelection.hxx:61
Matrix class for integral values of type Integer
Definition: indexmat.hxx:195
PSCVariableMetricSelection(CBout *cb=0, int cbincr=-1)
default constructor
Definition: PSCVariableMetricSelection.hxx:70
const Real eps_Real
machine epsilon for type Real
Definition: matop.hxx:59
int add_variable_metric(VariableMetric &H, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, bool descent_step, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real model_maxviol, const CH_Matrix_Classes::Indexmatrix *indices, VariableMetricBundleData &bundle_data)
see ConicBundle::VariableMetricSelection::add_variable_metric(); here it must be possible to cast bun...
Header declaring the classes ConicBundle::PSCOracle and ConicBundle::PSCBundleParameters (needed for ...
virtual void set_selection_method(CH_Matrix_Classes::Integer sm)
sets selection_method
Definition: PSCVariableMetricSelection.hxx:84
Matrix class of symmetric matrices with real values of type Real
Definition: symmat.hxx:43
virtual void set_oldfactor(CH_Matrix_Classes::Real of)
sets the parameter
Definition: PSCVariableMetricSelection.hxx:92
virtual CH_Matrix_Classes::Real get_oldfactor() const
returns the parameter
Definition: PSCVariableMetricSelection.hxx:88
CH_Matrix_Classes::Matrix lamH
local temporary storage for low rank eigenvalues
Definition: PSCVariableMetricSelection.hxx:56
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
virtual CH_Matrix_Classes::Integer get_selection_method() const
returns selection_method
Definition: PSCVariableMetricSelection.hxx:80
Oracle interface for minimization of the maximum eigenvalue of an affine matrix function or...
Definition: PSCOracle.hxx:233
base class for uniform use of WARNINGS and ERRORS (at some point in time)
Definition: CBout.hxx:30
Header declaring the classes ConicBundle::VariableMetricModel, ConicBundle::VariableMetricBundleData...
virtual CH_Matrix_Classes::Real get_mineigval_factor() const
returns the parameter
Definition: PSCVariableMetricSelection.hxx:104
virtual CH_Matrix_Classes::Real get_maxeigval_factor() const
returns the parameter
Definition: PSCVariableMetricSelection.hxx:96
interface class that allows a VariableMetricModel to contribute information to a VariableMetric objec...
Definition: VariableMetric.hxx:309
CH_Matrix_Classes::Matrix Q1AQ2
local temporary storage for Q_1^T*A*Q2
Definition: PSCVariableMetricSelection.hxx:60
virtual void set_mineigval_factor(CH_Matrix_Classes::Real ef)
sets the parameter
Definition: PSCVariableMetricSelection.hxx:108
Matrix class for real values of type Real
Definition: matrix.hxx:74
abstract interface, that allows to specify a routine for providing or computing a suitable variable m...
Definition: VariableMetric.hxx:237
CH_Matrix_Classes::Matrix tmpQ1
local temporary storage for active eigenspace basis
Definition: PSCVariableMetricSelection.hxx:58
iplementation of a VariableMetricSelection routine for PSCModel for forming and adding variable metri...
Definition: PSCVariableMetricSelection.hxx:39
VariableMetricSelection * clone_VariableMetricSelection()
clone: the values are only preserved for those contained in the constructor: n_latest_minorants, selection_method and oldfactor
Definition: PSCVariableMetricSelection.hxx:126
double max(double a, double b)
maximum value of two double variables
Definition: mymath.hxx:43
double min(double a, double b)
minimum value of two double variables
Definition: mymath.hxx:49
CH_Matrix_Classes::Real oldfactor
for values of oldfactor between 0. and 1. the SVD is taken of (1-oldfactor)*vecH*vecH'+oldfactor*oldv...
Definition: PSCVariableMetricSelection.hxx:46
~PSCVariableMetricSelection()
destructor
Definition: PSCVariableMetricSelection.hxx:66
CH_Matrix_Classes::Real mineigval_factor
mineigval_factor* max_eigval is the smallest low rank eigenvalue to be included in the low rank appro...
Definition: PSCVariableMetricSelection.hxx:52
CH_Matrix_Classes::Real maxeigval_factor
maxeigval_factor*weightu is the maximum value allowed for low_rank eigenvalues, bigger eigen_values a...
Definition: PSCVariableMetricSelection.hxx:49
PSCOracle * oracle
needed for PSCOracle::left_right_product(), set once in the beginning but not owned by *this ...
Definition: PSCVariableMetricSelection.hxx:54
virtual void set_oracle(PSCOracle *psco)
sets the oracle pointer to this value (NULL is allowed, but calling add_variable_metric() then result...
Definition: PSCVariableMetricSelection.hxx:112
CH_Matrix_Classes::Matrix tmpQ2
local temporary storage for inactive eigenspace basis
Definition: PSCVariableMetricSelection.hxx:59
abstract interface providing the bundle data that is typically needed in VariableMetricSelection clas...
Definition: VariableMetric.hxx:183
CH_Matrix_Classes::Matrix vecH
local temporary storage for low rank eigenvectors
Definition: PSCVariableMetricSelection.hxx:57