00001 00038 #ifndef ABA_COLUMN_H 00039 #define ABA_COLUMN_H 00040 00041 #include "abacus/sparvec.h" 00042 00043 00044 class ABA_COLUMN : public ABA_SPARVEC { 00045 public: 00046 00059 ABA_COLUMN(ABA_GLOBAL *glob, 00060 double obj, 00061 double lb, 00062 double ub, 00063 int nnz, 00064 ABA_ARRAY<int> &s, 00065 ABA_ARRAY<double> &c); 00066 00073 ABA_COLUMN(ABA_GLOBAL *glob, int maxNnz); 00074 00084 ABA_COLUMN(ABA_GLOBAL *glob, 00085 double obj, 00086 double lb, 00087 double ub, 00088 ABA_SPARVEC &vec); 00089 ~ABA_COLUMN(); 00090 #ifdef ABACUS_PARALLEL 00091 00097 ABA_COLUMN(ABA_GLOBAL *glob, ABA_MESSAGE &msg); 00098 00103 void pack(ABA_MESSAGE &msg) const; 00104 #endif 00105 00113 friend ostream& operator<<(ostream &out, const ABA_COLUMN &rhs); 00114 00117 double obj() const; 00118 00124 void obj(double c); 00125 00128 double lBound() const; 00129 00135 void lBound(double l); 00136 00139 double uBound() const; 00140 00146 void uBound(double u); 00147 00154 void copy(const ABA_COLUMN &col); 00155 00156 private: 00157 00160 double obj_; 00161 00164 double lBound_; 00165 00168 double uBound_; 00169 }; 00170 00171 00172 inline double ABA_COLUMN::obj() const 00173 { 00174 return obj_; 00175 } 00176 00177 inline void ABA_COLUMN::obj(double c) 00178 { 00179 obj_ = c; 00180 } 00181 00182 inline double ABA_COLUMN::lBound() const 00183 { 00184 return lBound_; 00185 } 00186 00187 inline void ABA_COLUMN::lBound(double l) 00188 { 00189 lBound_ = l; 00190 } 00191 00192 inline double ABA_COLUMN::uBound() const 00193 { 00194 return uBound_; 00195 } 00196 00197 inline void ABA_COLUMN::uBound(double u) 00198 { 00199 uBound_ = u; 00200 } 00201 00202 00203 #endif // ABA_COLUMN_H 00204