00001
00041 #ifndef ABA_COLVAR_H
00042 #define ABA_COLVAR_H
00043
00044 #include "abacus/variable.h"
00045 #include "abacus/vartype.h"
00046 #include "abacus/column.h"
00047
00048 class ABA_SPARVEC;
00049 class ABA_COLVAR : public ABA_VARIABLE {
00050 public:
00051
00075 ABA_COLVAR(ABA_MASTER *master,
00076 const ABA_SUB *sub,
00077 bool dynamic,
00078 bool local,
00079 double lBound,
00080 double uBound,
00081 ABA_VARTYPE::TYPE varType,
00082 double obj,
00083 int nnz,
00084 ABA_ARRAY<int> &support,
00085 ABA_ARRAY<double> &coeff);
00086
00091 ABA_COLVAR(ABA_MASTER *master,
00092 const ABA_SUB *sub,
00093 bool dynamic,
00094 bool local,
00095 double lBound,
00096 double uBound,
00097 ABA_VARTYPE::TYPE varType,
00098 double obj, ABA_SPARVEC &vector);
00099
00102 virtual ~ABA_COLVAR();
00103 #ifdef ABACUS_PARALLEL
00104
00109 ABA_COLVAR(ABA_MASTER *master, ABA_MESSAGE &msg);
00110
00111
00112
00113
00114
00115 virtual void pack(ABA_MESSAGE &msg) const;
00116
00121 virtual int classId() const;
00122 #endif
00123
00131 friend ostream &operator<<(ostream &out, const ABA_COLVAR &rhs);
00132
00139 virtual void print(ostream &out);
00140
00146 virtual double coeff(ABA_CONSTRAINT *con);
00147
00154 double coeff(int i);
00155
00158 ABA_COLUMN *column();
00159
00160 protected:
00161 ABA_COLUMN column_;
00162 };
00163 #endif // ABA_COLVAR_H
00164