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
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 );
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