This deals with combining Core and Stochastic data. More...
#include <SmiCoreCombineRule.hpp>
Public Member Functions | |
Virtual Functions: Process and Diff | |
virtual void | Process (double *d1, int o1, const CoinPackedVector &cpv2, char *type=0)=0 |
Process. | |
virtual void | Process (double *d1, int o1, const int len, const int *inds, const double *dels, char *type=0)=0 |
Process. | |
virtual CoinPackedVector * | Process (CoinPackedVector *cpv1, CoinPackedVector *cpv2, char *type=0)=0 |
Process. | |
virtual int | Process (vector< double > *dr, CoinPackedVector *cpv, double *dels, int *indx)=0 |
Process. | |
virtual int | Process (vector< double > *dr, const int cpv_nels, const int *cpv_ind, const double *cpv_els, double *dels, int *indx)=0 |
Process. | |
virtual | ~SmiCoreCombineRule () |
Process. |
This deals with combining Core and Stochastic data.
In the Stochastic MPS standard, stochastic data updates the underlying core lp data. To specify a new scenario, one only has to identify those data that are different. So, in a sense, the stochastic data is really a "diff" between the scenario and the core data. This class specifies how to perform the "undiff", that is, how to combine core and stochastic data.
And of course, a complete implementation specifies the "diff" part as well. Now during a fit of original confusion in the birth of the SMPS standard, we decided to make default combine rule "replace", which has a rather special "diff", but we've learned to live with it.
There only needs to be one of these classes. so they're singletons.
Definition at line 39 of file SmiCoreCombineRule.hpp.
virtual SmiCoreCombineRule::~SmiCoreCombineRule | ( | ) | [inline, virtual] |
Process.
Definition at line 50 of file SmiCoreCombineRule.hpp.
virtual void SmiCoreCombineRule::Process | ( | double * | d1, | |
int | o1, | |||
const CoinPackedVector & | cpv2, | |||
char * | type = 0 | |||
) | [pure virtual] |
Process.
Implemented in SmiCoreCombineReplace, and SmiCoreCombineAdd.
virtual void SmiCoreCombineRule::Process | ( | double * | d1, | |
int | o1, | |||
const int | len, | |||
const int * | inds, | |||
const double * | dels, | |||
char * | type = 0 | |||
) | [pure virtual] |
Process.
Implemented in SmiCoreCombineReplace, and SmiCoreCombineAdd.
virtual CoinPackedVector* SmiCoreCombineRule::Process | ( | CoinPackedVector * | cpv1, | |
CoinPackedVector * | cpv2, | |||
char * | type = 0 | |||
) | [pure virtual] |
Process.
Implemented in SmiCoreCombineReplace, and SmiCoreCombineAdd.
virtual int SmiCoreCombineRule::Process | ( | vector< double > * | dr, | |
CoinPackedVector * | cpv, | |||
double * | dels, | |||
int * | indx | |||
) | [pure virtual] |
Process.
Implemented in SmiCoreCombineReplace, and SmiCoreCombineAdd.
virtual int SmiCoreCombineRule::Process | ( | vector< double > * | dr, | |
const int | cpv_nels, | |||
const int * | cpv_ind, | |||
const double * | cpv_els, | |||
double * | dels, | |||
int * | indx | |||
) | [pure virtual] |
Process.
Implemented in SmiCoreCombineReplace, and SmiCoreCombineAdd.