SPxScaler Class Referenceabstract LP scaler abstract base class.Instances of classes derived from SPxScaler may be loaded to SoPlex in order to scale LPs before solving them. SoPlex will load() itself to the SPxScaler and then call scale(). Generally any SPxLP can be loaded to a SPxScaler for scale()ing it. The scaling can be undone by calling unscale(). More...
Inheritance diagram for SPxScaler:
![]()
Detailed DescriptionLP scaler abstract base class. Instances of classes derived from SPxScaler may be loaded to SoPlex in order to scale LPs before solving them. SoPlex will load() itself to the SPxScaler and then call scale(). Generally any SPxLP can be loaded to a SPxScaler for scale()ing it. The scaling can be undone by calling unscale(). Definition at line 39 of file spxscaler.h. Constructor & Destructor Documentation
Member Function Documentation
applies m_colscale and m_rowscale to the Definition at line 186 of file spxscaler.cpp. References SPxLPBase< R >::colVector_w(), SVectorBase< R >::index(), soplex::infinity, SPxLPBase< R >::isConsistent(), SPxLPBase< R >::lhs(), SPxLPBase< R >::lhs_w(), SPxLPBase< R >::lower(), SPxLPBase< R >::lower_w(), SPxScaler::m_colscale, SPxScaler::m_rowscale, SPxLPBase< R >::maxObj_w(), SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxLPBase< R >::rhs(), SPxLPBase< R >::rhs_w(), SPxLPBase< R >::rowVector_w(), SVectorBase< R >::size(), soplex::spxFrexp(), soplex::spxLdexp(), SPxLPBase< R >::upper(), SPxLPBase< R >::upper_w(), and SVectorBase< R >::value(). Referenced by SPxEquiliSC::scale(), and SPxGeometSC::scale().
clone function for polymorphism Implemented in SPxGeometSC, and SPxEquiliSC. Referenced by SoPlexLegacy::operator=(), and SoPlexLegacy::SoPlexLegacy(). computes scaling value for a minimum and maximum pair. This function is used by computeScaleVecs and has to be overridden. Reimplemented in SPxEquiliSC, and SPxGeometSC. Definition at line 134 of file spxscaler.cpp. Referenced by SPxScaler::computeScalingVecs().
iterates through vecset and calls computeScale() for each vector.
Definition at line 140 of file spxscaler.cpp. References SPxScaler::computeScale(), SVectorBase< R >::index(), soplex::infinity, soplex::isZero(), SVSetBase< R >::num(), SVectorBase< R >::size(), soplex::spxAbs(), and SVectorBase< R >::value(). Referenced by SPxEquiliSC::scale(), and SPxGeometSC::scale().
get name of scaler. Definition at line 97 of file spxscaler.cpp. References SPxScaler::m_name. Referenced by SoPlex::getScalerName(), main(), and soplex::operator<<().
consistency check Definition at line 459 of file spxscaler.cpp. References DataArray< T >::isConsistent(), SPxScaler::m_colscale, and SPxScaler::m_rowscale. Referenced by SPxScaler::operator=(), SPxScaler::setOutstream(), and SPxScaler::SPxScaler().
absolute biggest column scaling factor Definition at line 346 of file spxscaler.cpp. References SPxScaler::m_colscale, DataArray< T >::size(), soplex::spxAbs(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SPxEquiliSC::scale(), SPxGeometSC::scale(), and SPxScaler::setOutstream().
absolute biggest row scaling factor Definition at line 379 of file spxscaler.cpp. References SPxScaler::m_rowscale, DataArray< T >::size(), soplex::spxAbs(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SPxEquiliSC::scale(), SPxGeometSC::scale(), and SPxScaler::setOutstream(). maximum ratio between absolute biggest and smallest element in any column.
Definition at line 399 of file spxscaler.cpp. References SPxLPBase< R >::colVector(), soplex::infinity, SPxLPBase< R >::nCols(), SVectorBase< R >::size(), soplex::spxAbs(), and SVectorBase< R >::value(). Referenced by SPxEquiliSC::scale(), SPxGeometSC::scale(), and SPxScaler::setOutstream(). maximum ratio between absolute biggest and smallest element in any row.
Definition at line 431 of file spxscaler.cpp. References soplex::infinity, SPxLPBase< R >::nRows(), SPxLPBase< R >::rowVector(), SVectorBase< R >::size(), soplex::spxAbs(), and SVectorBase< R >::value(). Referenced by SPxEquiliSC::scale(), SPxGeometSC::scale(), and SPxScaler::setOutstream().
absolute smallest column scaling factor Definition at line 330 of file spxscaler.cpp. References soplex::infinity, SPxScaler::m_colscale, DataArray< T >::size(), soplex::spxAbs(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SPxEquiliSC::scale(), SPxGeometSC::scale(), and SPxScaler::setOutstream().
absolute smallest row scaling factor Definition at line 363 of file spxscaler.cpp. References soplex::infinity, SPxScaler::m_rowscale, DataArray< T >::size(), soplex::spxAbs(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SPxEquiliSC::scale(), SPxGeometSC::scale(), and SPxScaler::setOutstream(). assignment operator Definition at line 80 of file spxscaler.cpp. References SPxScaler::isConsistent(), SPxScaler::m_colFirst, SPxScaler::m_colscale, SPxScaler::m_doBoth, SPxScaler::m_name, SPxScaler::m_rowscale, and SPxScaler::spxout. Referenced by SPxEquiliSC::operator=(), and SPxGeometSC::operator=().
scale SPxLP. Implemented in SPxGeometSC, and SPxEquiliSC. Referenced by SoPlex::_preprocessAndSolveReal(), SoPlex::_solveRealForRational(), SPxScaler::setOutstream(), and SoPlexLegacy::solve().
set wether column and row scaling should be performed. Definition at line 109 of file spxscaler.cpp. References SPxScaler::m_doBoth.
set message handler Definition at line 100 of file spxscaler.h. References SPxScaler::isConsistent(), SPxScaler::maxAbsColscale(), SPxScaler::maxAbsRowscale(), SPxScaler::maxColRatio(), SPxScaler::maxRowRatio(), SPxScaler::minAbsColscale(), SPxScaler::minAbsRowscale(), SPxScaler::scale(), SPxScaler::unscaleDual(), SPxScaler::unscalePrimal(), SPxScaler::unscaleRedCost(), and SPxScaler::unscaleSlacks(). Referenced by SoPlex::operator=(), SoPlexLegacy::setPostScaler(), SoPlexLegacy::setPreScaler(), and SoPlex::SoPlex().
setup scale array for the LP. Definition at line 115 of file spxscaler.cpp. References SPxLPBase< R >::isConsistent(), SPxScaler::m_colscale, SPxScaler::m_rowscale, SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), and DataArray< T >::reSize(). Referenced by SPxEquiliSC::scale(), and SPxGeometSC::scale().
unscale dense dual solution vector given in Definition at line 296 of file spxscaler.cpp. References VectorBase< R >::dim(), SPxScaler::m_rowscale, DataArray< T >::size(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRealForRational(), SoPlexLegacy::getDual(), SoPlexLegacy::getDualfarkas(), SPxScaler::setOutstream(), and SoPlexLegacy::unsimplify().
unscale dense primal solution vector given in Definition at line 262 of file spxscaler.cpp. References VectorBase< R >::dim(), SPxScaler::m_colscale, DataArray< T >::size(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRealForRational(), SoPlexLegacy::getPrimal(), SoPlexLegacy::getPrimalray(), SPxScaler::setOutstream(), and SoPlexLegacy::unsimplify().
unscale dense reduced cost vector given in Definition at line 313 of file spxscaler.cpp. References VectorBase< R >::dim(), SPxScaler::m_colscale, DataArray< T >::size(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRealForRational(), SoPlexLegacy::getRedCost(), SPxScaler::setOutstream(), and SoPlexLegacy::unsimplify().
unscale dense slack vector given in Definition at line 279 of file spxscaler.cpp. References VectorBase< R >::dim(), SPxScaler::m_rowscale, DataArray< T >::size(), soplex::spxFrexp(), and soplex::spxLdexp(). Referenced by SoPlex::_resolveWithoutPreprocessing(), SoPlex::_solveRealForRational(), SoPlexLegacy::getSlacks(), SPxScaler::setOutstream(), and SoPlexLegacy::unsimplify(). Friends And Related Function Documentation
Definition at line 35 of file spxscaler.cpp. Member Data Documentation
do column scaling first Definition at line 49 of file spxscaler.h. Referenced by SPxScaler::operator=(), and SPxScaler::setOrder(). column scaling factors Definition at line 47 of file spxscaler.h. Referenced by SPxScaler::applyScaling(), SPxScaler::isConsistent(), SPxScaler::maxAbsColscale(), SPxScaler::minAbsColscale(), soplex::operator<<(), SPxScaler::operator=(), SPxEquiliSC::scale(), SPxGeometSC::scale(), SPxScaler::setup(), SPxScaler::unscalePrimal(), and SPxScaler::unscaleRedCost().
do columns and rows Definition at line 50 of file spxscaler.h. Referenced by SPxScaler::operator=(), SPxEquiliSC::scale(), and SPxScaler::setBoth().
Name of the scaler. Definition at line 46 of file spxscaler.h. Referenced by SPxScaler::getName(), SPxScaler::operator=(), and SPxScaler::~SPxScaler(). row scaling factors Definition at line 48 of file spxscaler.h. Referenced by SPxScaler::applyScaling(), SPxScaler::isConsistent(), SPxScaler::maxAbsRowscale(), SPxScaler::minAbsRowscale(), soplex::operator<<(), SPxScaler::operator=(), SPxEquiliSC::scale(), SPxGeometSC::scale(), SPxScaler::setup(), SPxScaler::unscaleDual(), and SPxScaler::unscaleSlacks().
message handler Definition at line 51 of file spxscaler.h. Referenced by SPxScaler::operator=(), SPxEquiliSC::scale(), and SPxGeometSC::scale(). |