73 assign(
const int size,
int*& ElementIndices,
double*& ElementValues,
74 const double Obj,
const double LB,
const double UB) {
83 copy(
const int size,
const int* ElementIndices,
const double* ElementValues,
84 const double Obj,
const double LB,
const double UB) {
99 const double Obj,
const double LB,
const double UB) {
125 const double Obj,
const double LB,
const double UB) :
131 BCP_col(
const int size,
int*& ElementIndices,
double*& ElementValues,
132 const double Obj,
const double LB,
const double UB) :
138 const double Obj,
const double LB,
const double UB) :
191 assign(
const int size,
int*& ElementIndices,
double*& ElementValues,
192 const double LB,
const double UB) {
200 copy(
const int size,
const int* ElementIndices,
const double* ElementValues,
201 const double LB,
const double UB) {
215 const double LB,
const double UB) {
240 const double LB,
const double UB) :
246 BCP_row(
const int size,
int*& ElementIndices,
double*& ElementValues,
247 const double LB,
const double UB) :
288 inline size_t colnum()
const {
return _ColLowerBound.
size(); }
290 inline size_t rownum()
const {
return _RowLowerBound.
size(); }
313 void reserve(
const int MaxColNum,
const int MaxRowNum,
314 const int MaxNonzeros);
319 const double* OBJ,
const double* CLB,
const double* CUB,
320 const double* RLB,
const double* RUB);
323 double*& OBJ,
double*& CLB,
double*& CUB,
324 double*& RLB,
double*& RUB);
333 void add_col_set(
const BCP_col_set& Cols);
336 void add_row_set(
const BCP_row_set& Rows);
351 double dot_product_col(
const int index,
const BCP_vec<double>& col)
const;
354 double dot_product_row(
const int index,
const BCP_vec<double>& row)
const;
357 double dot_product_col(
const int index,
const double* col)
const;
360 double dot_product_row(
const int index,
const double* row)
const;
379 _Objective(), _ColLowerBound(), _ColUpperBound(),
380 _RowLowerBound(), _RowUpperBound() {}
400 double extra_gap,
double extra_major);
415 double extra_gap,
double extra_major);
430 int*& VB,
int*& EI,
double*& EV,
431 double*& OBJ,
double*& CLB,
double*& CUB,
432 double*& RLB,
double*& RUB);
virtual const double * getElements() const
double _LowerBound
The lower bound corresponding to the column.
CoinPackedVector & operator=(const CoinPackedVector &)
const BCP_vec< double > & RowUpperBound() const
A const reference to the vector of upper bounds on the cuts.
void UpperBound(const double ub)
Set the upper bound to the given value.
BCP_col(BCP_vec< int >::const_iterator firstind, BCP_vec< int >::const_iterator lastind, BCP_vec< double >::const_iterator firstval, BCP_vec< double >::const_iterator lastval, const double Obj, const double LB, const double UB)
This constructor acts exactly like the copy method with the same argument list.
double LowerBound() const
Return the lower bound.
void assign(const int size, int *&ElementIndices, double *&ElementValues, const double Obj, const double LB, const double UB)
Set the objective coefficient, lower and upper bounds to the given values.
void copy(BCP_vec< int >::const_iterator firstind, BCP_vec< int >::const_iterator lastind, BCP_vec< double >::const_iterator firstval, BCP_vec< double >::const_iterator lastval, const double LB, const double UB)
Same as the other copy() method, except that instead of using vectors the indices (values) are given ...
void assign(CoinPackedMatrix &m, double *&OBJ, double *&CLB, double *&CUB, double *&RLB, double *&RUB)
Set up the LP relaxation by taking over the pointers in the arguments.
void copy(const int size, const int *ElementIndices, const double *ElementValues, const double LB, const double UB)
Copy the arguments into the appropriate data members.
void assign(const int size, int *&ElementIndices, double *&ElementValues, const double LB, const double UB)
Set the lower and upper bounds to the given values.
void pack(BCP_buffer &buf) const
Pack the LP relaxation into the buffer.
double _LowerBound
The lower bound corresponding to the row.
BCP_row(const int size, int *&ElementIndices, double *&ElementValues, const double LB, const double UB)
This constructor acts exactly like the assign method with the same argument list.
double _Objective
The objective function coefficient corresponding to the column.
void UpperBound(double ub)
Set the upper bound to the given value.
double _UpperBound
The upper bound corresponding to the column.
An object of type BCP_lp_relax holds the description of an lp relaxation.
This class holds a row in a compressed form.
const BCP_vec< double > & ColLowerBound() const
A const reference to the vector of lower bounds on the variables.
double UpperBound() const
Return the upper bound.
void copyOf(const CoinPackedMatrix &m, const double *OBJ, const double *CLB, const double *CUB, const double *RLB, const double *RUB)
Set up the LP relaxation by making a copy of the arguments.
~BCP_lp_relax()
The destructor deletes the data members.
const BCP_vec< double > & RowLowerBound() const
A const reference to the vector of lower bounds on the cuts.
~BCP_col()
The destructor deletes all data members.
void erase_row_set(const BCP_vec< int > &pos)
Remove the rows whose indices are listed in pos from the LP relaxation.
virtual const int * getIndices() const
BCP_row(const CoinPackedVectorBase &vec, const double LB, const double UB)
BCP_col(const int size, int *&ElementIndices, double *&ElementValues, const double Obj, const double LB, const double UB)
This constructor acts exactly like the assign method with the same argument list.
void Objective(const double obj)
Set the objective coefficient to the given value.
BCP_col()
The default constructor creates an empty column with 0 as objective coefficient, 0....
BCP_lp_relax & operator=(const BCP_lp_relax &mat)
Copy the content of x into the LP relaxation.
BCP_row & operator=(const BCP_row &x)
Assignment operator: copy over the contents of x.
virtual int getNumElements() const
This class describes the message buffer used for all processes of BCP.
BCP_col(const BCP_col &x)
The copy constructor makes a copy of x.
void unpack(BCP_buffer &buf)
Unpack the LP relaxation from the buffer.
double _UpperBound
The upper bound corresponding to the row.
size_t colnum() const
The number of columns.
void erase_col_set(const BCP_vec< int > &pos)
Remove the columns whose indices are listed in pos from the LP relaxation.
This class holds a column in a compressed form.
BCP_lp_relax(const bool colordered=true)
Create an empty LP relaxation with given ordering.
void assignVector(int size, int *&inds, double *&elems, bool testForDuplicateIndex=COIN_DEFAULT_VALUE_FOR_DUPLICATE)
BCP_col & operator=(const BCP_col &x)
Assignment operator: copy over the contents of x.
double Objective() const
Return the objective coefficient.
void reserve(const int MaxColNum, const int MaxRowNum, const int MaxNonzeros)
Reserve space in the LP relaxation for at least MaxColNum columns, MaxRowNum rows and MaxNonzeros non...
void setVector(int size, const int *inds, const double *elems, bool testForDuplicateIndex=COIN_DEFAULT_VALUE_FOR_DUPLICATE)
size_t rownum() const
The number of rows.
~BCP_row()
The destructor deletes all data members.
BCP_row(const BCP_row &x)
The copy constructor makes a copy of x.
void clear()
Clear the LP relaxation.
BCP_row()
The default constructor creates an empty row with -infinity as lower and +infinity as upper bound.
void copy(const int size, const int *ElementIndices, const double *ElementValues, const double Obj, const double LB, const double UB)
Copy the arguments into the appropriate data members.
size_t size() const
Return the current number of entries.
double LowerBound() const
Return the lower bound.
void LowerBound(const double lb)
Set the lower bound to the given value.
The class BCP_vec serves the same purpose as the vector class in the standard template library.
void copy(BCP_vec< int >::const_iterator firstind, BCP_vec< int >::const_iterator lastind, BCP_vec< double >::const_iterator firstval, BCP_vec< double >::const_iterator lastval, const double Obj, const double LB, const double UB)
Same as the other copy() method, except that instead of using vectors the indices (values) are given ...
const BCP_vec< double > & Objective() const
A const reference to the vector of objective coefficients.
void LowerBound(double lb)
Set the lower bound to the given value.
const BCP_vec< double > & ColUpperBound() const
A const reference to the vector of upper bounds on the variables.
BCP_row(BCP_vec< int >::const_iterator firstind, BCP_vec< int >::const_iterator lastind, BCP_vec< double >::const_iterator firstval, BCP_vec< double >::const_iterator lastval, const double LB, const double UB)
This constructor acts exactly like the copy method with the same argument list.
double UpperBound() const
Return the upper bound.
BCP_col(const CoinPackedVectorBase &vec, const double Obj, const double LB, const double UB)