00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "BonBqpdWarmStart.hpp"
00012
00013
00014 namespace Bonmin{
00015
00016 BqpdWarmStart:: BqpdWarmStart(const fint xSize ,
00017 const real* xArray ,
00018 const fint lamSize ,
00019 const real* lamArray ,
00020 const fint lwsSize ,
00021 const fint *lwsArray ,
00022 const fint istat[14] )
00023 :
00024 CoinWarmStartPrimalDual(xSize, lamSize, xArray, lamArray),
00025 CoinWarmStartBasis(),
00026 lwsSize_(lwsSize),
00027 lwsArray_(NULL),
00028 empty_(false)
00029 {
00030 DBG_ASSERT(lwsSize > 0 || !lwsArray);
00031 if (lwsSize_ > 0){
00032 lwsArray_ = new fint[lwsSize];
00033 DBG_ASSERT(lwsArray);
00034 CoinCopyN(lwsArray, lwsSize, lwsArray_);
00035 }
00036 for(int i = 0 ; i < 14 ; i ++) {
00037 istat_[i] = istat[i];
00038 }
00039 }
00040
00041
00042 BqpdWarmStart::BqpdWarmStart(const BqpdWarmStart & other)
00043 :
00044 CoinWarmStartPrimalDual(other),
00045 CoinWarmStartBasis(other),
00046 lwsSize_(other.lwsSize_),
00047 lwsArray_(NULL),
00048 empty_(other.empty_)
00049 {
00050 DBG_ASSERT(lwsSize_ > 0 || !lwsArray_);
00051 if (lwsSize_ > 0){
00052 lwsArray_ = new fint[lwsSize_];
00053 DBG_ASSERT(other.lwsArray_);
00054 CoinCopyN(other.lwsArray_, lwsSize_, lwsArray_);
00055 }
00056 for(int i = 0 ; i < 14 ; i ++) {
00057 istat_[i] = other.istat_[i];
00058 }
00059 }
00060
00061 BqpdWarmStart::~BqpdWarmStart()
00062 {
00063 delete [] lwsArray_;
00064 }
00065
00066 CoinWarmStartDiff *
00067 BqpdWarmStart::generateDiff(const CoinWarmStart * const oldOne) const
00068 {
00069 throw CoinError("Method not implemented",
00070 "generateDiffs",
00071 "BqpdWarmStart");
00072 return NULL;
00073 }
00074
00075
00076 void
00077 BqpdWarmStart::applyDiff(const CoinWarmStartDiff * diff){
00078
00079 throw CoinError("Method not implemented",
00080 "applyDiff",
00081 "BqpdWarmStart");
00082 }
00083
00084 void
00085 BqpdWarmStart::flushPoint()
00086 {
00087 CoinWarmStartPrimalDual::clear();
00088 delete [] lwsArray_;
00089
00090 lwsArray_ = NULL;
00091 }
00092
00093 FilterSolver::fint
00094 BqpdWarmStart::def_istat[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
00095
00096
00097 }