Go to the documentation of this file.
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);
This class holds a column in a compressed form.
BCP_row(const CoinPackedVectorBase &vec, const double LB, const double UB)
BCP_col(const BCP_col &x)
The copy constructor makes a copy of x.
BCP_row()
The default constructor creates an empty row with -infinity as lower and +infinity as upper bound.
BCP_lp_relax(const bool colordered=true)
Create an empty LP relaxation with given ordering.
virtual int getNumElements() const
size_t colnum() const
The number of columns.
void pack(BCP_buffer &buf) const
Pack the LP relaxation into the buffer.
const BCP_vec< double > & ColUpperBound() const
A const reference to the vector of upper bounds on the variables.
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.
BCP_col & operator=(const BCP_col &x)
Assignment operator: copy over the contents of x.
double UpperBound() const
Return the upper bound.
void setVector(int size, const int *inds, const double *elems, bool testForDuplicateIndex=COIN_DEFAULT_VALUE_FOR_DUPLICATE)
void erase_col_set(const BCP_vec< int > &pos)
Remove the columns whose indices are listed in pos from the LP relaxation.
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.
const BCP_vec< double > & RowUpperBound() const
A const reference to the vector of upper bounds on the cuts.
~BCP_col()
The destructor deletes all data members.
const BCP_vec< double > & Objective() const
A const reference to the vector of objective coefficients.
The class BCP_vec serves the same purpose as the vector class in the standard template library.
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.
BCP_row & operator=(const BCP_row &x)
Assignment operator: copy over the contents of x.
double _LowerBound
The lower bound corresponding to the row.
size_t size() const
Return the current number of entries.
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(const int size, int *&ElementIndices, double *&ElementValues, const double LB, const double UB)
Set the lower and upper bounds to the given values.
const BCP_vec< double > & ColLowerBound() const
A const reference to the vector of lower bounds on the variables.
BCP_lp_relax & operator=(const BCP_lp_relax &mat)
Copy the content of x into the LP relaxation.
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.
double LowerBound() const
Return the lower bound.
void LowerBound(const double lb)
Set the lower bound to the given value.
~BCP_row()
The destructor deletes all data members.
double _UpperBound
The upper bound corresponding to the row.
double _Objective
The objective function coefficient corresponding to the column.
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() const
Return the objective coefficient.
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 ...
void clear()
Clear the LP relaxation.
double LowerBound() const
Return the lower bound.
size_t rownum() const
The number of rows.
virtual const double * getElements() const
void unpack(BCP_buffer &buf)
Unpack the LP relaxation from the buffer.
CoinPackedVector & operator=(const CoinPackedVector &)
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 LowerBound(double lb)
Set the lower 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.
An object of type BCP_lp_relax holds the description of an lp relaxation.
~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.
double _LowerBound
The lower bound corresponding to the column.
void erase_row_set(const BCP_vec< int > &pos)
Remove the rows whose indices are listed in pos from the LP relaxation.
BCP_row(const BCP_row &x)
The copy constructor makes a copy of x.
void UpperBound(const double ub)
Set the upper bound to the given value.
This class holds a row in a compressed form.
void Objective(const double obj)
Set the objective coefficient to the given value.
double UpperBound() const
Return the upper bound.
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.
BCP_col(const CoinPackedVectorBase &vec, const double Obj, const double LB, const double UB)
BCP_col()
The default constructor creates an empty column with 0 as objective coefficient, 0....
virtual const int * getIndices() const
double _UpperBound
The upper bound corresponding to the column.
This class describes the message buffer used for all processes of BCP.
void assignVector(int size, int *&inds, double *&elems, bool testForDuplicateIndex=COIN_DEFAULT_VALUE_FOR_DUPLICATE)
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.
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 UpperBound(double ub)
Set the upper bound to the given value.