/home/coin/SVN-release/OS-2.2.0/OS/examples/branchCutPriceTSP/Member/OS_cut.cpp

Go to the documentation of this file.
00001 // Copyright (C) 2003, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 
00004 #include "BCP_math.hpp"
00005 #include "BCP_buffer.hpp"
00006 #include "OS_cut.hpp"
00007    
00008 /****************************************************************************/
00009 void
00010 OS_cut::pack(BCP_buffer& buf) const
00011 {
00012   buf.pack(OsiRowCut::lb());
00013   buf.pack(OsiRowCut::ub());
00014   const CoinPackedVector& v = OsiRowCut::row();
00015   const int numElem = v.getNumElements();
00016   buf.pack(v.getIndices(), numElem);
00017   buf.pack(v.getElements(), numElem);
00018 }
00019 
00020 /****************************************************************************/
00021 OS_cut::OS_cut(BCP_buffer& buf) :
00022    BCP_cut_algo(-BCP_DBL_MAX, BCP_DBL_MAX), OsiRowCut()
00023 {
00024         double lb, ub;
00025         buf.unpack( lb);
00026         buf.unpack( ub);
00027         OsiRowCut::setLb( lb);
00028         OsiRowCut::setUb( ub);
00029 
00030         int numElem;
00031         int* indices;
00032         double* elements;
00033         buf.unpack(indices, numElem, true);
00034         buf.unpack(elements, numElem, true);
00035         OsiRowCut::setRow(numElem, indices, elements);
00036 
00037         if(numElem > 0) {
00038                 delete[] indices;
00039                 delete[] elements;
00040         }
00041 }
00042 
00043 /****************************************************************************/
00044 OS_cut::OS_cut(const OsiRowCut& cut) :
00045    BCP_cut_algo(cut.lb(), cut.ub()), OsiRowCut(cut)
00046 {}
00047 
00048 /****************************************************************************/
00049 BCP_MemPool OS_cut::memPool(sizeof(OS_cut));

Generated on Thu Aug 5 03:02:58 2010 by  doxygen 1.4.7