00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef CglLandPTabRow_H
00013 #define CglLandPTabRow_H
00014
00015 #include "CoinIndexedVector.hpp"
00016 #include <iostream>
00017
00018 namespace LAP
00019 {
00020 class CglLandPSimplex;
00021 struct TabRow: public CoinIndexedVector
00022 {
00024 int num;
00026 double rhs;
00028 const CglLandPSimplex * si_;
00029
00031 bool modularized_;
00032
00033 TabRow():
00034 CoinIndexedVector(), si_(NULL), modularized_(false) {}
00035
00036 TabRow(const CglLandPSimplex *si):
00037 CoinIndexedVector(), num(-1), rhs(0), si_(si), modularized_(false) {}
00038
00039 TabRow(const TabRow & source):CoinIndexedVector(source),
00040 num(source.num), rhs(source.rhs), si_(source.si_)
00041 {
00042 }
00043
00044 TabRow& operator=(const TabRow & r)
00045 {
00046 if (this != &r)
00047 {
00048 CoinIndexedVector::operator=(r);
00049 num = r.num;
00050 rhs = r.rhs;
00051 si_ = r.si_;
00052 }
00053 return *this;
00054 }
00055
00056 bool operator==(const TabRow &r) const;
00057 ~TabRow()
00058 {
00059 }
00060
00061 void modularize(const bool * integerVar);
00062
00063 void print(std::ostream & os, int width = 9, const int * nonBasics = NULL,
00064 int m = 0);
00065 inline
00066 const double& operator[](const int &index) const
00067 {
00068 return denseVector()[index];
00069 }
00070
00071 inline
00072 double& operator[](const int &index)
00073 {
00074 return denseVector()[index];
00075 }
00076 };
00077 }
00078
00079 #endif
00080