/home/coin/SVN-release/OS-2.1.1/OS/examples/branchCutPriceTSP/Member/OS_var.cpp

Go to the documentation of this file.
00001 #include "OS_var.hpp"
00002 
00003 
00004 
00005 
00006 /*---------------------------------------------------------------------------*/
00007 
00008 
00009 OS_var::OS_var(int idx, const CoinPackedVector& f, double w) :
00010         BCP_var_algo(BCP_IntegerVar, w, 0, 1),
00011         varIndex( idx), coinPackedVec(false), weight(w)
00012 {
00013         std::cout << "INSIDE VAR CONSTRUCTOR OS_var(int idx, const CoinPackedVector& f, double w)  " << std::endl;
00014         new (&coinPackedVec) CoinPackedVector(f.getNumElements(),
00015                         f.getIndices(), f.getElements(), false);
00016 
00017 }
00018 /*---------------------------------------------------------------------------*/
00019 
00020 OS_var::OS_var( BCP_buffer& buf) : 
00021     // we don't know the onj coeff (weight) yet, so temporarily set it to 0
00022     BCP_var_algo( BCP_IntegerVar, 0, 0, 1)
00023 {
00024 
00025         std::cout << "INSIDE VAR CONSTRUCTOR  OS_var(BCP_buffer& buf) " << std::endl;
00026         
00027     buf.unpack( varIndex);
00028     int nonz;
00029     int* indexes;
00030     double* values; 
00031     buf.unpack(indexes, nonz);
00032     buf.unpack(values,  nonz);
00033     coinPackedVec.assignVector(nonz, indexes, values, false );  //false -- don't test for duplicates
00034     buf.unpack( weight);
00035     set_obj( weight);
00036 }
00037 
00038 /*===========================================================================*/
00039 
00040 
00041 
00042 void OS_var::pack(BCP_buffer& buf) const
00043 {
00044         std::cout << "PACKING  OS_var::pack(BCP_buffer& buf) " << std::endl;
00045     buf.pack( varIndex);
00046         int nonz = coinPackedVec.getNumElements();
00047     buf.pack(coinPackedVec.getIndices(), nonz);
00048     buf.pack(coinPackedVec.getElements(), nonz);
00049     buf.pack( weight);
00050 }
00051 
00052 

Generated on Mon May 3 03:05:22 2010 by  doxygen 1.4.7