73 friend class DisplayData;
80 for (
int i=0; i<size(); i++) {
92 RowMajor(s1.size(),s2.size(),s3.size(),s4.size(),s5.size()),
93 S1(s1),S2(s2),S3(s3),S4(s4),S5(s5),
94 v(new double[size()]), manageData(true)
108 RowMajor(s1.size(),s2.size(),s3.size(),s4.size(),s5.size()),
109 S1(s1),S2(s2),S3(s3),S4(s4),S5(s5),
110 v(value), manageData(false)
114 if (manageData ==
true)
delete[] v;
119 for (
int i=0; i<size(); i++) {
133 double&
operator()(
int lcli1,
int lcli2=0,
int lcli3=0,
int lcli4=0,
int lcli5=0) {
134 lcli1 = S1.check(lcli1);
135 lcli2 = S2.check(lcli2);
136 lcli3 = S3.check(lcli3);
137 lcli4 = S4.check(lcli4);
138 lcli5 = S5.check(lcli5);
139 int i = f(lcli1,lcli2,lcli3,lcli4,lcli5);
142 return outOfBoundData;
159 myrefs.push_back(
new DataRef(
this, lcli1, lcli2, lcli3, lcli4, lcli5));
160 return *myrefs.back();
165 void display(
string s =
"");
189 using flopc::MP_data::operator();
198 myrefs.push_back(
new DataRef(
this, lcli1, lcli2, lcli3, lcli4, lcli5, 1));
199 return *myrefs.back();
static MP_set & getEmpty()
gets the distinct 'empty' MP_set.
void value(const double *d)
Used to bind and deep copy data into the MP_data data structure.
const DataRef & operator=(const DataRef &r)
MP_data(const MP_set_base &s1=MP_set::getEmpty(), const MP_set_base &s2=MP_set::getEmpty(), const MP_set_base &s3=MP_set::getEmpty(), const MP_set_base &s4=MP_set::getEmpty(), const MP_set_base &s5=MP_set::getEmpty())
DataRef & probability(double p)
Representation of an index.This is one of the main public interface classes. It is used to iterate th...
void initialize(double d)
similar to value() but copies the same value to all entries.
static double outOfBoundData
Utility interface class for adding a string name onto a structure.
Representation of an expression involving an index.This is one of the main public interface classes...
Base class for all "constant" types of data.
MP_stochastic_data(const MP_set_base &s1=MP_set::getEmpty(), const MP_set_base &s2=MP_set::getEmpty(), const MP_set_base &s3=MP_set::getEmpty(), const MP_set_base &s4=MP_set::getEmpty(), const MP_set_base &s5=MP_set::getEmpty())
DataRef(MP_data *d, const MP_index_exp &i1, const MP_index_exp &i2, const MP_index_exp &i3, const MP_index_exp &i4, const MP_index_exp &i5, int s=0)
static const MP_index_exp & getEmpty()
Return the unique empty expression.
const int outOfBound
Distinct return value on conditions where an index goes out of bounds.
Reference to a set of data.
This is the anchor point for all constructs in a FlopC++ model.The constructors take an OsiSolverInte...
All flopc++ code is contained within the flopc namespace.
Reference counted class for all "boolean" types of data.This contains counters to ConstantBase pointe...
DataRef & such_that(const MP_boolean &b)
Symantic representation of a variable.This is one of the main public interface classes. It should be directly declared by clients of the FlopC++. The parametersof construction are MP_set s which specify the indexes over which the variable is defined.
Function object. Often used.
Reference counted class for all "constant" types of data.
Input data set.This is one of the main public interface classes. It is normally directly constructed ...
double & operator()(int lcli1, int lcli2=0, int lcli3=0, int lcli4=0, int lcli5=0)
Internal representation of a "set".
vector< DataRef * > myrefs
void evaluate_lhs(double v) const
MP_data(double *value, const MP_set_base &s1=MP_set::getEmpty(), const MP_set_base &s2=MP_set::getEmpty(), const MP_set_base &s3=MP_set::getEmpty(), const MP_set_base &s4=MP_set::getEmpty(), const MP_set_base &s5=MP_set::getEmpty())