00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef BlisConstraint_h_
00026 #define BlisConstraint_h_
00027
00028 #include "BcpsObject.h"
00029
00030
00031
00032 class BlisConstraint : public BcpsConstraint {
00033
00034 private:
00035
00036 int size_;
00037 int *indices_;
00038 double *values_;
00039
00040 public:
00041
00043 BlisConstraint();
00044
00046 BlisConstraint(int s, const int *ind, const double *val);
00047
00049 BlisConstraint(double lbh, double ubh, double lbs, double ubs);
00050
00052 BlisConstraint(double lbh, double ubh, double lbs, double ubs,
00053 int s, const int *ind, const double *val);
00055 virtual ~BlisConstraint();
00056
00058 BlisConstraint(const BlisConstraint & rhs);
00059
00062 int getSize() const { return size_; }
00063 int* getIndices() const { return indices_; }
00064 double* getValues() const { return values_; }
00069 void setData(int s, const int *ind, const double *val) {
00070 if (size_ < s) {
00071 delete [] indices_;
00072 delete [] values_;
00073 indices_ = new int [s];
00074 values_ = new double [s];
00075 }
00076 size_ = s;
00077 memcpy(indices_, ind, sizeof(int) * s);
00078 memcpy(values_, val, sizeof(double) * s);
00079 }
00082 protected:
00083
00085 AlpsReturnStatus encodeBlis(AlpsEncoded *encoded);
00086
00088 AlpsReturnStatus decodeBlis(AlpsEncoded &encoded);
00089
00090 public:
00091
00093 virtual AlpsReturnStatus encode(AlpsEncoded *encoded);
00094
00096 virtual AlpsKnowledge* decode(AlpsEncoded& encoded) const;
00097
00099 virtual void hashing(BcpsModel *model=NULL);
00100 };
00101
00102
00103
00104 #endif