24#ifndef BlisVariable_h_
25#define BlisVariable_h_
27#include "BcpsObject.h"
43 BlisVariable() : objCoef_(0.0), size_(0), indices_(NULL), values_(NULL) {}
49 indices_ =
new int [s];
50 values_ =
new double [s];
51 memcpy(indices_, ind, s *
sizeof(
int));
52 memcpy(values_, val, s *
sizeof(
double));
57 BcpsVariable(lbh, ubh, lbs, ubs),
59 size_(0), indices_(NULL), values_(NULL)
63 double obj,
int s,
const int *ind,
const double *val)
65 BcpsVariable(lbh, ubh, lbs, ubs)
69 indices_ =
new int [s];
70 values_ =
new double [s];
71 memcpy(indices_, ind, s *
sizeof(
int));
72 memcpy(values_, val, s *
sizeof(
double));
76 delete [] indices_; indices_ = NULL;
77 delete [] values_; values_ = NULL;
90 void setData(
int s,
const int *ind,
const double *val) {
92 delete [] indices_; indices_ = NULL;
93 delete [] values_; values_ = NULL;
94 indices_ =
new int [s];
95 values_ =
new double [s];
98 memcpy(indices_, ind,
sizeof(
int) * s);
99 memcpy(values_, val,
sizeof(
double) * s);
108 AlpsReturnStatus status = AlpsReturnStatusOk;
112 encoded->writeRep(objCoef_);
113 encoded->writeRep(indices_, size_);
114 encoded->writeRep(values_, size_);
121 AlpsReturnStatus status = AlpsReturnStatusOk;
123 encoded.readRep(objCoef_);
124 encoded.readRep(indices_, size_);
125 encoded.readRep(values_, size_);
134 using AlpsKnowledge::encode ;
136 virtual AlpsReturnStatus
encode(AlpsEncoded *encoded){
137 AlpsReturnStatus status;
139 status = encodeBcpsObject(encoded);
146 virtual AlpsKnowledge*
decode(AlpsEncoded &encoded)
const {
147 AlpsReturnStatus status = AlpsReturnStatusOk;
151 status = var->decodeBcpsObject(encoded);
153 throw CoinError(
"Failed to decode Bcps part of var",
161 throw CoinError(
"Failed to decode Blis part of var",
BlisVariable(double obj, int s, const int *ind, const double *val)
double getObjCoef()
Return data.
virtual AlpsKnowledge * decode(AlpsEncoded &encoded) const
Decode a variable from an encoded object.
BlisVariable(double lbh, double ubh, double lbs, double ubs)
BlisVariable(double lbh, double ubh, double lbs, double ubs, double obj, int s, const int *ind, const double *val)
AlpsReturnStatus decodeBlis(AlpsEncoded &encoded)
Unpack Blis part from a encode object.
void setData(int s, const int *ind, const double *val)
Set data.
virtual AlpsReturnStatus encode(AlpsEncoded *encoded)
Pack to a encode object.
void setObjCoef(double coef)
AlpsReturnStatus encodeBlis(AlpsEncoded *encoded)
Pack Blis part into an encoded object.