23 #ifndef BcpsSolution_h_
24 #define BcpsSolution_h_
26 #include "AlpsSolution.h"
60 size_(0), objects_(NULL), values_(NULL), quality_(ALPS_OBJ_MAX)
66 size_(size), objects_(NULL), values_(NULL), quality_(q) {
69 values_ =
new double [size];
70 memcpy(values_, values,
sizeof(
double) * size);
73 std::cout <<
"ERROR: Solution size = " << size << std::endl;
82 size_(size), objects_(objects), values_(values), quality_(q) {
90 for (
int i = 0; i <
size_; ++i) {
114 if (!values_)
delete []
values_;
115 values_ =
new double [s];
117 memcpy(values_, vs, s *
sizeof(
double));
130 virtual void print(std::ostream& os)
const {
131 for (
int j = 0; j <
size_; ++j) {
132 if (values_[j] > 1.0e-15 || values_[j] < -1.0e-15) {
133 os <<
"x[" << j <<
"] = " << values_[j] << std::endl;
143 AlpsReturnStatus
encodeBcps(AlpsEncoded *encoded)
const;
146 AlpsReturnStatus
decodeBcps(AlpsEncoded & encoded);
int getSize() const
Get the appropriate data member.
virtual BcpsSolution * selectNonzeros(const double etol=1e-5) const
Select the fractional/nonzero elements from the solution array and return a new object in compacted f...
AlpsReturnStatus decodeBcps(AlpsEncoded &encoded)
Unpack Bcps part of solution from an encoded objects.
BcpsSolution(int size, BcpsObject_p *&objects, double *&values, double q)
Construct an object using the given arrays.
This class holds the solution objects.
virtual ~BcpsSolution()
Distructor.
void setValues(const double *vs, int s)
int size_
Size of values_.
BcpsSolution()
Default constructor.
double quality_
Quality/Objective value associated with this solution.
double getQuality() const
void setSize(int s)
Set/assign the appropriate data member.
BcpsSolution(int size, const double *values, double q)
Useful constructor.
A class for describing the objects that comprise a BCPS subproblem.
AlpsReturnStatus encodeBcps(AlpsEncoded *encoded) const
Pack Bcps part of solution into an encoded objects.
virtual BcpsSolution * selectFractional(const double etol=1e-5) const
virtual void print(std::ostream &os) const
Print out the solution.
const BcpsObject_p * getObjects() const
double * values_
Solution values.
const double * getValues() const
BcpsObject_p * objects_
List of objects associated with values.
void setQuality(double q)
void assignObjects(BcpsObject_p *&obj)