/home/coin/SVN-release/OS-2.0.1/Bonmin/experimental/Bcp/BB_cut.cpp

Go to the documentation of this file.
00001 // (C) Copyright International Business Machines Corporation 2006, 2007
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // Authors :
00006 // Laszlo Ladanyi, International Business Machines Corporation
00007 // Pierre Bonami, Carnegie Mellon University
00008 
00009 #include "BCP_buffer.hpp"
00010 #include "BB_cut.hpp"
00011 
00012 /****************************************************************************/
00013 
00014 void
00015 BB_cut::pack(BCP_buffer& buf) const
00016 {
00017     buf.pack(OsiRowCut::lb())
00018         .pack(OsiRowCut::ub());
00019     const CoinPackedVector& v = OsiRowCut::row();
00020     const int numElem = v.getNumElements();
00021     buf.pack(v.getIndices(), numElem)
00022         .pack(v.getElements(), numElem);
00023 }
00024 
00025 /****************************************************************************/
00026 BB_cut::BB_cut(BCP_buffer& buf) :
00027     BCP_cut_algo(-1e40, 1e40), OsiRowCut()
00028 {
00029     double lb, ub;
00030     buf.unpack(lb)
00031         .unpack(ub);
00032     OsiRowCut::setLb(lb);
00033     OsiRowCut::setUb(ub);
00034 
00035     int numElem;
00036     int* indices;
00037     double* elements;
00038     buf.unpack(indices, numElem, true)
00039         .unpack(elements, numElem, true);
00040     OsiRowCut::setRow(numElem, indices, elements);
00041 
00042     if(numElem > 0) {
00043         delete[] indices;
00044         delete[] elements;
00045     }
00046 }
00047 
00048 /****************************************************************************/
00049 BB_cut::BB_cut(const OsiRowCut& cut) :
00050     BCP_cut_algo(cut.lb(), cut.ub()), OsiRowCut(cut)
00051 {}
00052 
00053 /****************************************************************************/
00054 BCP_MemPool BB_cut::memPool(sizeof(BB_cut));

Generated on Thu Oct 8 03:02:50 2009 by  doxygen 1.4.7