diff options
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/CoinWarmStartDual.hpp')
-rw-r--r-- | newstructure/thirdparty/linux/include/coin/CoinWarmStartDual.hpp | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/CoinWarmStartDual.hpp b/newstructure/thirdparty/linux/include/coin/CoinWarmStartDual.hpp deleted file mode 100644 index 3e60d11..0000000 --- a/newstructure/thirdparty/linux/include/coin/CoinWarmStartDual.hpp +++ /dev/null @@ -1,166 +0,0 @@ -/* $Id: CoinWarmStartDual.hpp 1372 2011-01-03 23:31:00Z lou $ */ -// Copyright (C) 2000, International Business Machines -// Corporation and others. All Rights Reserved. -// This code is licensed under the terms of the Eclipse Public License (EPL). - -#ifndef CoinWarmStartDual_H -#define CoinWarmStartDual_H - -#include "CoinHelperFunctions.hpp" -#include "CoinWarmStart.hpp" -#include "CoinWarmStartVector.hpp" - - -//############################################################################# - -/** WarmStart information that is only a dual vector */ - -class CoinWarmStartDual : public virtual CoinWarmStart { -public: - /// return the size of the dual vector - inline int size() const { return dual_.size(); } - /// return a pointer to the array of duals - inline const double * dual() const { return dual_.values(); } - - /** Assign the dual vector to be the warmstart information. In this method - the object assumes ownership of the pointer and upon return "dual" will - be a NULL pointer. If copying is desirable use the constructor. */ - inline void assignDual(int size, double *& dual) - { dual_.assignVector(size, dual); } - - CoinWarmStartDual() {} - - CoinWarmStartDual(int size, const double * dual) : dual_(size, dual) {} - - CoinWarmStartDual(const CoinWarmStartDual& rhs) : dual_(rhs.dual_) {} - - CoinWarmStartDual& operator=(const CoinWarmStartDual& rhs) { - if (this != &rhs) { - dual_ = rhs.dual_; - } - return *this; - } - - /** `Virtual constructor' */ - virtual CoinWarmStart *clone() const { - return new CoinWarmStartDual(*this); - } - - virtual ~CoinWarmStartDual() {} - -/*! \name Dual warm start `diff' methods */ -//@{ - - /*! \brief Generate a `diff' that can convert the warm start passed as a - parameter to the warm start specified by \c this. - - The capabilities are limited: the basis passed as a parameter can be no - larger than the basis pointed to by \c this. - */ - - virtual CoinWarmStartDiff* - generateDiff (const CoinWarmStart *const oldCWS) const ; - - /*! \brief Apply \p diff to this warm start. - - Update this warm start by applying \p diff. It's assumed that the - allocated capacity of the warm start is sufficiently large. - */ - - virtual void applyDiff (const CoinWarmStartDiff *const cwsdDiff) ; - -#if 0 -protected: - inline const CoinWarmStartVector<double>& warmStartVector() const { return dual_; } -#endif - -//@} - -private: - ///@name Private data members - CoinWarmStartVector<double> dual_; -}; - -//############################################################################# - -/*! \class CoinWarmStartDualDiff - \brief A `diff' between two CoinWarmStartDual objects - - This class exists in order to hide from the world the details of - calculating and representing a `diff' between two CoinWarmStartDual - objects. For convenience, assignment, cloning, and deletion are visible to - the world, and default and copy constructors are made available to derived - classes. Knowledge of the rest of this structure, and of generating and - applying diffs, is restricted to the friend functions - CoinWarmStartDual::generateDiff() and CoinWarmStartDual::applyDiff(). - - The actual data structure is a pair of vectors, #diffNdxs_ and #diffVals_. - -*/ - -class CoinWarmStartDualDiff : public virtual CoinWarmStartDiff -{ public: - - /*! \brief `Virtual constructor' */ - virtual CoinWarmStartDiff *clone() const - { - return new CoinWarmStartDualDiff(*this) ; - } - - /*! \brief Assignment */ - virtual CoinWarmStartDualDiff &operator= (const CoinWarmStartDualDiff &rhs) - { - if (this != &rhs) { - diff_ = rhs.diff_; - } - return *this; - } - - /*! \brief Destructor */ - virtual ~CoinWarmStartDualDiff() {} - - protected: - - /*! \brief Default constructor - - This is protected (rather than private) so that derived classes can - see it when they make <i>their</i> default constructor protected or - private. - */ - CoinWarmStartDualDiff () : diff_() {} - - /*! \brief Copy constructor - - For convenience when copying objects containing CoinWarmStartDualDiff - objects. But consider whether you should be using #clone() to retain - polymorphism. - - This is protected (rather than private) so that derived classes can - see it when the make <i>their</i> copy constructor protected or - private. - */ - CoinWarmStartDualDiff (const CoinWarmStartDualDiff &rhs) : - diff_(rhs.diff_) {} - - private: - - friend CoinWarmStartDiff* - CoinWarmStartDual::generateDiff(const CoinWarmStart *const oldCWS) const ; - friend void - CoinWarmStartDual::applyDiff(const CoinWarmStartDiff *const diff) ; - - /*! \brief Standard constructor */ - CoinWarmStartDualDiff (int sze, const unsigned int *const diffNdxs, - const double *const diffVals) : - diff_(sze, diffNdxs, diffVals) {} - - /*! - \brief The difference in the dual vector is simply the difference in a - vector. - */ - CoinWarmStartVectorDiff<double> diff_; -}; - - -#endif - |