/home/coin/SVN-release/OS-2.1.0/Bonmin/src/Interfaces/Filter/BonBqpdWarmStart.cpp

Go to the documentation of this file.
00001 // (C) Copyright International Business Machines Corporation 2007
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // Authors :
00006 // Andreas Waechter, International Business Machines Corporation
00007 //                    based on BonFilterWarmStart.cpp
00008 //
00009 // Date : 2007-08-03
00010 
00011 #include "BonBqpdWarmStart.hpp"
00012 
00013 
00014 namespace Bonmin{
00015 
00016   BqpdWarmStart:: BqpdWarmStart(const fint xSize /*= 0*/,
00017                                 const real* xArray /*= NULL*/,
00018                                 const fint lamSize /*= 0*/,
00019                                 const real* lamArray /*= NULL*/,
00020                                 const fint lwsSize /*= 0*/,
00021                                 const fint *lwsArray /*= NULL*/,
00022                                 const fint istat[14] /*= def_istat*/)
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   /* Copy constructor */
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 } /* End namespace Bonmin */

Generated on Tue Mar 30 03:04:36 2010 by  doxygen 1.4.7