scsolver::LpModelBuilderImpl Class Reference

Collaboration diagram for scsolver::LpModelBuilderImpl:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 LpModelBuilderImpl ()
 ~LpModelBuilderImpl () throw ()
numeric::lp::Model getModel ()
numeric::GoalType getGoal () const
void setGoal (numeric::GoalType)
CellAddress getObjectiveFormulaAddress () const
void setObjectiveFormulaAddress (const table::CellAddress &)
sal_uInt32 getConstraintId (const ConstraintAddress &)
void setConstraintAddress (const ConstraintAddress &)
std::vector
< ConstraintAddress
getAllConstraintAddresses () const
void setConstraintMatrixSize (size_t, size_t)
void setConstraintCoefficient (const CellAddress &, const ConstraintAddress &, double, double)
void clearConstraintAddresses ()
numeric::EqualityType getConstraintEquality (sal_uInt32) const
sal_uInt32 getDecisionVarId (const CellAddress &)
void setDecisionVarAddress (const CellAddress &)
vector< CellAddress > getAllDecisionVarAddresses () const
void clearDecisionVarAddresses ()
double getCostVector (const CellAddress &)
void setCostVector (const CellAddress &, double)
const rtl::OUString getTempCellFormula (const CellAddress &) const
void setTempCellFormula (const table::CellAddress &, const rtl::OUString &)
void stripConstConstraint ()
void stripZeroCostDecisionVar ()

Private Attributes

numeric::GoalType m_eGoal
table::CellAddress m_aObjFormulaAddr
std::vector
< DecisionVar
m_cnDecisionVars
std::vector
< ConstraintAddress
m_cnConstraintAddress
Matrix m_mxConstraint
Matrix m_mxRHS
std::vector< CellAttrm_cnCellAttrs


Detailed Description

The parent of this class (class LpModelBuilder) is to be instantiated by an object of class SolveModel. It builds up necessary model parameters via its member functions which are expected to be called from SolveModel. It then instantiates an object of class numeric::lp::Model based on those parameters when getModel() is called.

In other words, this class acts as a liason between the model in a spreadsheet form and the model in a form of class lp::Model.

Definition at line 224 of file lpbuilder.cxx.


Constructor & Destructor Documentation

scsolver::LpModelBuilderImpl::LpModelBuilderImpl (  ) 

Definition at line 280 of file lpbuilder.cxx.

scsolver::LpModelBuilderImpl::~LpModelBuilderImpl (  )  throw ()

Definition at line 285 of file lpbuilder.cxx.


Member Function Documentation

numeric::lp::Model scsolver::LpModelBuilderImpl::getModel (  ) 

Construct an object of class numeric::lp::Model based on the related parameters derived prior to calling this method, and return it to the caller when it's successfully created.

Definition at line 292 of file lpbuilder.cxx.

References scsolver::numeric::lp::Model::addConstraint(), scsolver::numeric::Matrix::cols(), getConstraintEquality(), getGoal(), m_cnDecisionVars, m_mxConstraint, m_mxRHS, scsolver::numeric::Matrix::rows(), scsolver::numeric::lp::Model::setCostVectorElement(), and scsolver::numeric::lp::Model::setGoal().

numeric::GoalType scsolver::LpModelBuilderImpl::getGoal (  )  const

Definition at line 319 of file lpbuilder.cxx.

References m_eGoal.

Referenced by getModel().

void scsolver::LpModelBuilderImpl::setGoal ( numeric::GoalType  e  ) 

Definition at line 324 of file lpbuilder.cxx.

References m_eGoal.

CellAddress scsolver::LpModelBuilderImpl::getObjectiveFormulaAddress (  )  const

Definition at line 329 of file lpbuilder.cxx.

References m_aObjFormulaAddr.

void scsolver::LpModelBuilderImpl::setObjectiveFormulaAddress ( const table::CellAddress &  aAddr  ) 

Definition at line 334 of file lpbuilder.cxx.

References m_aObjFormulaAddr.

sal_uInt32 scsolver::LpModelBuilderImpl::getConstraintId ( const ConstraintAddress aConstAddr  ) 

Definition at line 339 of file lpbuilder.cxx.

References m_cnConstraintAddress.

void scsolver::LpModelBuilderImpl::setConstraintAddress ( const ConstraintAddress aItem  ) 

Definition at line 349 of file lpbuilder.cxx.

References m_cnConstraintAddress.

std::vector< ConstraintAddress > scsolver::LpModelBuilderImpl::getAllConstraintAddresses (  )  const [inline]

Definition at line 242 of file lpbuilder.cxx.

void scsolver::LpModelBuilderImpl::setConstraintMatrixSize ( size_t  nRow,
size_t  nCol 
)

Definition at line 354 of file lpbuilder.cxx.

References m_mxConstraint, and scsolver::numeric::Matrix::resize().

void scsolver::LpModelBuilderImpl::setConstraintCoefficient ( const CellAddress &  ,
const ConstraintAddress ,
double  ,
double   
)

void scsolver::LpModelBuilderImpl::clearConstraintAddresses (  )  [inline]

Definition at line 245 of file lpbuilder.cxx.

numeric::EqualityType scsolver::LpModelBuilderImpl::getConstraintEquality ( sal_uInt32  i  )  const

Returns a value of Equality enum by constraint ID. A constraint ID corresponds to an appropriate row ID of the constraint matrix.

Definition at line 385 of file lpbuilder.cxx.

References scsolver::numeric::EQUAL, and m_cnConstraintAddress.

Referenced by getModel(), and stripConstConstraint().

sal_uInt32 scsolver::LpModelBuilderImpl::getDecisionVarId ( const CellAddress &   ) 

void scsolver::LpModelBuilderImpl::setDecisionVarAddress ( const CellAddress &   ) 

vector< CellAddress > scsolver::LpModelBuilderImpl::getAllDecisionVarAddresses (  )  const

Definition at line 417 of file lpbuilder.cxx.

References m_cnDecisionVars.

void scsolver::LpModelBuilderImpl::clearDecisionVarAddresses (  )  [inline]

Definition at line 251 of file lpbuilder.cxx.

double scsolver::LpModelBuilderImpl::getCostVector ( const CellAddress &   ) 

void scsolver::LpModelBuilderImpl::setCostVector ( const CellAddress &  ,
double   
)

const rtl::OUString scsolver::LpModelBuilderImpl::getTempCellFormula ( const CellAddress &   )  const

void scsolver::LpModelBuilderImpl::setTempCellFormula ( const table::CellAddress &  aAddr,
const rtl::OUString &  sStr 
)

Definition at line 473 of file lpbuilder.cxx.

References scsolver::CellAttr::Address, scsolver::CellAttr::Formula, and m_cnCellAttrs.

void scsolver::LpModelBuilderImpl::stripConstConstraint (  ) 

Remove constraint and right-hand-side row(s) if all elements of the constraint row is zero and the constraint is already satisfied.

Definition at line 483 of file lpbuilder.cxx.

References scsolver::Debug(), scsolver::numeric::Matrix::deleteRows(), scsolver::numeric::EQUAL, getConstraintEquality(), scsolver::numeric::GREATER_EQUAL, scsolver::numeric::LESS_EQUAL, m_mxConstraint, m_mxRHS, printElements(), scsolver::numeric::Matrix::rows(), and scsolver::numeric::Matrix::swap().

void scsolver::LpModelBuilderImpl::stripZeroCostDecisionVar (  ) 

Remove decision variables and their corresponding constraint columns if and only if they all have a zero cost coefficient and all elements in their constraint column.

Definition at line 520 of file lpbuilder.cxx.

References scsolver::numeric::Matrix::cols(), scsolver::Debug(), scsolver::numeric::Matrix::deleteColumns(), scsolver::numeric::Matrix::isColumnEmpty(), m_cnDecisionVars, m_mxConstraint, scsolver::numeric::Matrix::print(), printElements(), scsolver::numeric::Matrix::rows(), and scsolver::numeric::Matrix::swap().


Member Data Documentation

numeric::GoalType scsolver::LpModelBuilderImpl::m_eGoal [private]

Definition at line 264 of file lpbuilder.cxx.

Referenced by getGoal(), and setGoal().

table::CellAddress scsolver::LpModelBuilderImpl::m_aObjFormulaAddr [private]

Definition at line 267 of file lpbuilder.cxx.

Referenced by getObjectiveFormulaAddress(), and setObjectiveFormulaAddress().

std::vector< DecisionVar > scsolver::LpModelBuilderImpl::m_cnDecisionVars [private]

Definition at line 268 of file lpbuilder.cxx.

Referenced by getAllDecisionVarAddresses(), getModel(), and stripZeroCostDecisionVar().

std::vector< ConstraintAddress > scsolver::LpModelBuilderImpl::m_cnConstraintAddress [private]

Definition at line 269 of file lpbuilder.cxx.

Referenced by getConstraintEquality(), getConstraintId(), and setConstraintAddress().

Matrix scsolver::LpModelBuilderImpl::m_mxConstraint [private]

Definition at line 272 of file lpbuilder.cxx.

Referenced by getModel(), setConstraintMatrixSize(), stripConstConstraint(), and stripZeroCostDecisionVar().

Matrix scsolver::LpModelBuilderImpl::m_mxRHS [private]

Definition at line 273 of file lpbuilder.cxx.

Referenced by getModel(), and stripConstConstraint().

std::vector< CellAttr > scsolver::LpModelBuilderImpl::m_cnCellAttrs [private]

Definition at line 277 of file lpbuilder.cxx.

Referenced by setTempCellFormula().


The documentation for this class was generated from the following file:
Generated on Mon Jul 28 09:13:48 2008 for scsolver by  doxygen 1.5.3