List of all members
SmiCoreCombineRule Class Referenceabstract

This deals with combining Core and Stochastic data. More...

#include <SmiCoreCombineRule.hpp>

Inheritance diagram for SmiCoreCombineRule:
Inheritance graph
[legend]

Public Member Functions

Virtual Functions: Process and Diff
virtual void Process (double *d1, int o1, const CoinPackedVector &cpv2, char *type=0)=0
 Process. More...
 
virtual void Process (double *d1, int o1, const int len, const int *inds, const double *dels, char *type=0)=0
 Process. More...
 
virtual CoinPackedVectorProcess (CoinPackedVector *cpv1, CoinPackedVector *cpv2, char *type=0)=0
 Process. More...
 
virtual int Process (double *dr, const int dr_len, CoinPackedVector *cpv, double *dels, int *indx)=0
 Process. More...
 
virtual int Process (double *dr, const int dr_len, const int cpv_nels, const int *cpv_ind, const double *cpv_els, double *dels, int *indx)=0
 Process. More...
 
virtual ~SmiCoreCombineRule ()
 Process. More...
 

Detailed Description

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 36 of file SmiCoreCombineRule.hpp.

Constructor & Destructor Documentation

virtual SmiCoreCombineRule::~SmiCoreCombineRule ( )
inlinevirtual

Process.

Definition at line 47 of file SmiCoreCombineRule.hpp.

Member Function Documentation

virtual void SmiCoreCombineRule::Process ( double *  d1,
int  o1,
const CoinPackedVector cpv2,
char *  type = 0 
)
pure virtual

Process.

Implemented in SmiCoreCombineAdd, and SmiCoreCombineReplace.

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 SmiCoreCombineAdd, and SmiCoreCombineReplace.

virtual CoinPackedVector* SmiCoreCombineRule::Process ( CoinPackedVector cpv1,
CoinPackedVector cpv2,
char *  type = 0 
)
pure virtual

Process.

Implemented in SmiCoreCombineAdd, and SmiCoreCombineReplace.

virtual int SmiCoreCombineRule::Process ( double *  dr,
const int  dr_len,
CoinPackedVector cpv,
double *  dels,
int *  indx 
)
pure virtual

Process.

Implemented in SmiCoreCombineAdd, and SmiCoreCombineReplace.

virtual int SmiCoreCombineRule::Process ( double *  dr,
const int  dr_len,
const int  cpv_nels,
const int *  cpv_ind,
const double *  cpv_els,
double *  dels,
int *  indx 
)
pure virtual

Process.

Implemented in SmiCoreCombineAdd, and SmiCoreCombineReplace.


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