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.
1.6.1