# SmiCoreCombineRule Class Reference

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

`#include <SmiCoreCombineRule.hpp>`

Inheritance diagram for SmiCoreCombineRule:
[legend]

List of all members.

## 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 (double *dr, const int dr_len, CoinPackedVector *cpv, double *dels, int *indx)=0
| Process.
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.
virtual | ~SmiCoreCombineRule ()
| Process.

## 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 | ( |  | ) | `[inline, virtual]`

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 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 | ( | double * | dr,
|  | const int | dr_len,
|  | CoinPackedVector * | cpv,
|  | double * | dels,
|  | int * | indx |
| ) |  |  | `[pure virtual]`

Process.

Implemented in SmiCoreCombineReplace, and SmiCoreCombineAdd.

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

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

- /home/coin/svn-release/Smi-0.93.1/Smi/src/SmiCoreCombineRule.hpp