DyLP 1.10.4
Loading...
Searching...
No Matches
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 OsiDylpWarmStartBasisDiffoperator= (const OsiDylpWarmStartBasisDiff &rhs)
 `Virtual constructor' */ virtual CoinWarmStartDiff *clone() const { OsiDylpWarmStartBasisDiff *odwsbd = new OsiDylpWarmStartBasisDiff(*this) ; return (dynamic_cast<CoinWarmStartDiff *>(odwsbd)) ; }
virtual ~OsiDylpWarmStartBasisDiff ()
 Destructor.
Public Member Functions inherited from CoinWarmStartBasisDiff
virtual CoinWarmStartDiffclone () const
virtual CoinWarmStartBasisDiffoperator= (const CoinWarmStartBasisDiff &rhs)
virtual ~CoinWarmStartBasisDiff ()
Public Member Functions inherited from CoinWarmStartDiff
virtual ~CoinWarmStartDiff ()

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 ()
 CoinWarmStartBasisDiff (const CoinWarmStartBasisDiff &cwsbd)
 CoinWarmStartBasisDiff (int sze, const unsigned int *const diffNdxs, const unsigned int *const diffVals)
 CoinWarmStartBasisDiff (const CoinWarmStartBasis *rhs)

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

◆ ~OsiDylpWarmStartBasisDiff()

virtual OsiDylpWarmStartBasisDiff::~OsiDylpWarmStartBasisDiff ( )
inlinevirtual

Destructor.

Definition at line 279 of file OsiDylpWarmStartBasis.hpp.

Member Function Documentation

◆ operator=()

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

`Virtual constructor' */ virtual CoinWarmStartDiff *clone() const { OsiDylpWarmStartBasisDiff *odwsbd = new OsiDylpWarmStartBasisDiff(*this) ; return (dynamic_cast<CoinWarmStartDiff *>(odwsbd)) ; }

/*! Assignment

◆ OsiDylpWarmStartBasis::generateDiff

◆ OsiDylpWarmStartBasis::applyDiff

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

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