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