Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Private Member Functions | List of all members
CoinBuild Class Reference

In many cases it is natural to build a model by adding one row at a time. More...

#include <CoinBuild.hpp>

Public Member Functions

Useful methods
void addRow (int numberInRow, const int *columns, const double *elements, double rowLower=-COIN_DBL_MAX, double rowUpper=COIN_DBL_MAX)
 add a row More...
 
void addColumn (int numberInColumn, const int *rows, const double *elements, double columnLower=0.0, double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0)
 add a column More...
 
void addCol (int numberInColumn, const int *rows, const double *elements, double columnLower=0.0, double columnUpper=COIN_DBL_MAX, double objectiveValue=0.0)
 add a column More...
 
int numberRows () const
 Return number of rows or maximum found so far. More...
 
int numberColumns () const
 Return number of columns or maximum found so far. More...
 
CoinBigIndex numberElements () const
 Return number of elements. More...
 
int row (int whichRow, double &rowLower, double &rowUpper, const int *&indices, const double *&elements) const
 Returns number of elements in a row and information in row. More...
 
int currentRow (double &rowLower, double &rowUpper, const int *&indices, const double *&elements) const
 Returns number of elements in current row and information in row Used as rows may be stored in a chain. More...
 
void setCurrentRow (int whichRow)
 Set current row. More...
 
int currentRow () const
 Returns current row number. More...
 
int column (int whichColumn, double &columnLower, double &columnUpper, double &objectiveValue, const int *&indices, const double *&elements) const
 Returns number of elements in a column and information in column. More...
 
int currentColumn (double &columnLower, double &columnUpper, double &objectiveValue, const int *&indices, const double *&elements) const
 Returns number of elements in current column and information in column Used as columns may be stored in a chain. More...
 
void setCurrentColumn (int whichColumn)
 Set current column. More...
 
int currentColumn () const
 Returns current column number. More...
 
int type () const
 Returns type. More...
 
Constructors, destructor
 CoinBuild ()
 Default constructor. More...
 
 CoinBuild (int type)
 Constructor with type 0==for addRow, 1== for addColumn. More...
 
 ~CoinBuild ()
 Destructor. More...
 
Copy method
 CoinBuild (const CoinBuild &)
 The copy constructor. More...
 
CoinBuildoperator= (const CoinBuild &)
 = More...
 

Private Member Functions

void setMutableCurrent (int which) const
 Set current. More...
 
void addItem (int numberInItem, const int *indices, const double *elements, double itemLower, double itemUpper, double objectiveValue)
 add a item More...
 
int item (int whichItem, double &itemLower, double &itemUpper, double &objectiveValue, const int *&indices, const double *&elements) const
 Returns number of elements in a item and information in item. More...
 
int currentItem (double &itemLower, double &itemUpper, double &objectiveValue, const int *&indices, const double *&elements) const
 Returns number of elements in current item and information in item Used as items may be stored in a chain. More...
 
void setCurrentItem (int whichItem)
 Set current item. More...
 
int currentItem () const
 Returns current item number. More...
 

Private Attributes

Data members
int numberItems_
 Current number of items. More...
 
int numberOther_
 Current number of other dimension i.e. Columns if addRow (i.e. max) More...
 
CoinBigIndex numberElements_
 Current number of elements. More...
 
double * currentItem_
 Current item pointer. More...
 
double * firstItem_
 First item pointer. More...
 
double * lastItem_
 Last item pointer. More...
 
int type_
 Type of build - 0 for row, 1 for column, -1 unset. More...
 

Detailed Description

In many cases it is natural to build a model by adding one row at a time.

In Coin this is inefficient so this class gives some help. An instance of CoinBuild can be built up more efficiently and then added to the Clp/OsiModel in one go.

It may be more efficient to have fewer arrays and re-allocate them but this should give a large gain over addRow.

I have now extended it to columns.

Definition at line 25 of file CoinBuild.hpp.

Constructor & Destructor Documentation

CoinBuild::CoinBuild ( )

Default constructor.

CoinBuild::CoinBuild ( int  type)

Constructor with type 0==for addRow, 1== for addColumn.

CoinBuild::~CoinBuild ( )

Destructor.

CoinBuild::CoinBuild ( const CoinBuild )

The copy constructor.

Member Function Documentation

void CoinBuild::addRow ( int  numberInRow,
const int *  columns,
const double *  elements,
double  rowLower = -COIN_DBL_MAX,
double  rowUpper = COIN_DBL_MAX 
)

add a row

void CoinBuild::addColumn ( int  numberInColumn,
const int *  rows,
const double *  elements,
double  columnLower = 0.0,
double  columnUpper = COIN_DBL_MAX,
double  objectiveValue = 0.0 
)

add a column

void CoinBuild::addCol ( int  numberInColumn,
const int *  rows,
const double *  elements,
double  columnLower = 0.0,
double  columnUpper = COIN_DBL_MAX,
double  objectiveValue = 0.0 
)
inline

add a column

Definition at line 40 of file CoinBuild.hpp.

int CoinBuild::numberRows ( ) const
inline

Return number of rows or maximum found so far.

Definition at line 48 of file CoinBuild.hpp.

int CoinBuild::numberColumns ( ) const
inline

Return number of columns or maximum found so far.

Definition at line 53 of file CoinBuild.hpp.

CoinBigIndex CoinBuild::numberElements ( ) const
inline

Return number of elements.

Definition at line 58 of file CoinBuild.hpp.

int CoinBuild::row ( int  whichRow,
double &  rowLower,
double &  rowUpper,
const int *&  indices,
const double *&  elements 
) const

Returns number of elements in a row and information in row.

int CoinBuild::currentRow ( double &  rowLower,
double &  rowUpper,
const int *&  indices,
const double *&  elements 
) const

Returns number of elements in current row and information in row Used as rows may be stored in a chain.

void CoinBuild::setCurrentRow ( int  whichRow)

Set current row.

int CoinBuild::currentRow ( ) const

Returns current row number.

int CoinBuild::column ( int  whichColumn,
double &  columnLower,
double &  columnUpper,
double &  objectiveValue,
const int *&  indices,
const double *&  elements 
) const

Returns number of elements in a column and information in column.

int CoinBuild::currentColumn ( double &  columnLower,
double &  columnUpper,
double &  objectiveValue,
const int *&  indices,
const double *&  elements 
) const

Returns number of elements in current column and information in column Used as columns may be stored in a chain.

void CoinBuild::setCurrentColumn ( int  whichColumn)

Set current column.

int CoinBuild::currentColumn ( ) const

Returns current column number.

int CoinBuild::type ( ) const
inline

Returns type.

Definition at line 90 of file CoinBuild.hpp.

CoinBuild& CoinBuild::operator= ( const CoinBuild )

=

void CoinBuild::setMutableCurrent ( int  which) const
private

Set current.

void CoinBuild::addItem ( int  numberInItem,
const int *  indices,
const double *  elements,
double  itemLower,
double  itemUpper,
double  objectiveValue 
)
private

add a item

int CoinBuild::item ( int  whichItem,
double &  itemLower,
double &  itemUpper,
double &  objectiveValue,
const int *&  indices,
const double *&  elements 
) const
private

Returns number of elements in a item and information in item.

int CoinBuild::currentItem ( double &  itemLower,
double &  itemUpper,
double &  objectiveValue,
const int *&  indices,
const double *&  elements 
) const
private

Returns number of elements in current item and information in item Used as items may be stored in a chain.

void CoinBuild::setCurrentItem ( int  whichItem)
private

Set current item.

int CoinBuild::currentItem ( ) const
private

Returns current item number.

Member Data Documentation

int CoinBuild::numberItems_
private

Current number of items.

Definition at line 140 of file CoinBuild.hpp.

int CoinBuild::numberOther_
private

Current number of other dimension i.e. Columns if addRow (i.e. max)

Definition at line 142 of file CoinBuild.hpp.

CoinBigIndex CoinBuild::numberElements_
private

Current number of elements.

Definition at line 144 of file CoinBuild.hpp.

double* CoinBuild::currentItem_
mutableprivate

Current item pointer.

Definition at line 146 of file CoinBuild.hpp.

double* CoinBuild::firstItem_
private

First item pointer.

Definition at line 148 of file CoinBuild.hpp.

double* CoinBuild::lastItem_
private

Last item pointer.

Definition at line 150 of file CoinBuild.hpp.

int CoinBuild::type_
private

Type of build - 0 for row, 1 for column, -1 unset.

Definition at line 152 of file CoinBuild.hpp.


The documentation for this class was generated from the following file: