DyLP  1.10.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
OsiDylpWarmStartBasisDiff Class Reference

A `diff' between two OsiDylpWarmStartBasis objects. More...

#include <OsiDylpWarmStartBasis.hpp>

+ Inheritance diagram for OsiDylpWarmStartBasisDiff:
+ Collaboration diagram for OsiDylpWarmStartBasisDiff:

Public Member Functions

virtual CoinWarmStartDiffclone () const
 `Virtual constructor' More...
 
virtual OsiDylpWarmStartBasisDiffoperator= (const OsiDylpWarmStartBasisDiff &rhs)
 Assignment. More...
 
virtual ~OsiDylpWarmStartBasisDiff ()
 Destructor. More...
 
- Public Member Functions inherited from CoinWarmStartBasisDiff
virtual CoinWarmStartBasisDiffoperator= (const CoinWarmStartBasisDiff &rhs)
 Assignment. More...
 
virtual ~CoinWarmStartBasisDiff ()
 Destructor. More...
 
- Public Member Functions inherited from CoinWarmStartDiff
virtual ~CoinWarmStartDiff ()
 Abstract destructor. More...
 

Private Member Functions

 OsiDylpWarmStartBasisDiff (int sze, const unsigned int *const diffNdxs, const unsigned int *const diffVals, const CoinWarmStartBasisDiff *const cwsbd)
 Standard constructor. More...
 
 OsiDylpWarmStartBasisDiff ()
 Default constructor. More...
 
 OsiDylpWarmStartBasisDiff (const OsiDylpWarmStartBasisDiff &odwsbd)
 Copy constructor. More...
 

Private Attributes

int consze_
 Number of entries (and allocated capacity), in units of int. More...
 
unsigned int * condiffNdxs_
 Array of diff indices for constraint status. More...
 
unsigned int * condiffVals_
 Array of diff values for constraint status. More...
 

Friends

CoinWarmStartDiffOsiDylpWarmStartBasis::generateDiff (const CoinWarmStart *const oldCWS) const
 
void OsiDylpWarmStartBasis::applyDiff (const CoinWarmStartDiff *const diff)
 

Additional Inherited Members

- Protected Member Functions inherited from CoinWarmStartBasisDiff
 CoinWarmStartBasisDiff ()
 Default constructor. More...
 
 CoinWarmStartBasisDiff (const CoinWarmStartBasisDiff &cwsbd)
 Copy constructor. More...
 
 CoinWarmStartBasisDiff (int sze, const unsigned int *const diffNdxs, const unsigned int *const diffVals)
 Standard constructor. More...
 
 CoinWarmStartBasisDiff (const CoinWarmStartBasis *rhs)
 Constructor when full is smaller than diff! More...
 

Detailed Description

A `diff' between two OsiDylpWarmStartBasis objects.

This class exists in order to hide from the world the details of calculating and representing a `diff' between two OsiDylpWarmStartBasis objects. For convenience, assignment, cloning, and deletion are visible to the world, and default and copy constructors are visible to derived classes. Knowledge of the rest of this structure, and of generating and applying diffs, is restricted to the functions OsiDylpWarmStartBasis::generateDiff() and OsiDylpWarmStartBasis::applyDiff().

The actual data structure is a pair of unsigned int vectors, #diffNdxs_ and #diffVals_, and a CoinWarmStartBasisDiff object.

Todo:
This is a pretty generic structure, and vector diff is a pretty generic activity. We should be able to convert this to a template.
Todo:
Using unsigned int as the data type for the diff vectors might help to contain the damage when this code is inevitably compiled for 64 bit architectures. But the notion of int as 4 bytes is hardwired into CoinWarmStartBasis, so changes are definitely required.

Definition at line 266 of file OsiDylpWarmStartBasis.hpp.

Constructor & Destructor Documentation

virtual OsiDylpWarmStartBasisDiff::~OsiDylpWarmStartBasisDiff ( )
inlinevirtual

Destructor.

Definition at line 279 of file OsiDylpWarmStartBasis.hpp.

OsiDylpWarmStartBasisDiff::OsiDylpWarmStartBasisDiff ( int  sze,
const unsigned int *const  diffNdxs,
const unsigned int *const  diffVals,
const CoinWarmStartBasisDiff *const  cwsbd 
)
private

Standard constructor.

OsiDylpWarmStartBasisDiff::OsiDylpWarmStartBasisDiff ( )
inlineprivate

Default constructor.

Definition at line 296 of file OsiDylpWarmStartBasis.hpp.

OsiDylpWarmStartBasisDiff::OsiDylpWarmStartBasisDiff ( const OsiDylpWarmStartBasisDiff odwsbd)
private

Copy constructor.

For convenience when copying objects containing OsiDylpWarmStartBasisDiff objects. But consider whether you should be using clone() to retain polymorphism.

Member Function Documentation

virtual CoinWarmStartDiff* OsiDylpWarmStartBasisDiff::clone ( ) const
inlinevirtual

`Virtual constructor'

Reimplemented from CoinWarmStartBasisDiff.

Definition at line 270 of file OsiDylpWarmStartBasis.hpp.

virtual OsiDylpWarmStartBasisDiff& OsiDylpWarmStartBasisDiff::operator= ( const OsiDylpWarmStartBasisDiff rhs)
virtual

Assignment.

Friends And Related Function Documentation

void OsiDylpWarmStartBasis::applyDiff ( const CoinWarmStartDiff *const  diff)
friend

Member Data Documentation

int OsiDylpWarmStartBasisDiff::consze_
private

Number of entries (and allocated capacity), in units of int.

Definition at line 314 of file OsiDylpWarmStartBasis.hpp.

unsigned int* OsiDylpWarmStartBasisDiff::condiffNdxs_
private

Array of diff indices for constraint status.

Definition at line 318 of file OsiDylpWarmStartBasis.hpp.

unsigned int* OsiDylpWarmStartBasisDiff::condiffVals_
private

Array of diff values for constraint status.

Definition at line 322 of file OsiDylpWarmStartBasis.hpp.


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