scsolver::numeric::nlp::QuasiNewtonImpl Class Reference

Collaboration diagram for scsolver::numeric::nlp::QuasiNewtonImpl:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 QuasiNewtonImpl (QuasiNewton *p)
 ~QuasiNewtonImpl () throw ()
void solve ()

Private Member Functions

bool evaluateFunc ()
bool calcDefMatrix ()
void runLinearSearch (const ::scsolver::Timer &timer)
bool runIteration (const ::scsolver::Timer &timer)

Static Private Member Functions

static double norm (const Matrix &mxX)
static double evalF (BaseFuncObj &oF, const Matrix &mxVars, vector< double > &fVars)
static double evalF (BaseFuncObj &oF, const Matrix &mxVars)

Private Attributes

QuasiNewtonm_pSelf
unsigned long m_nIter
Modelm_pModel
Matrix m_mxVars
Matrix m_mxdVars
Matrix m_mxVarsOld
Matrix m_mxdF
Matrix m_mxdFOld
Matrix m_mxD
Matrix m_mxDOld
double m_fF
double m_fFOld
double m_fNorm
double m_fTolerance
BaseFuncObjm_pFuncObj
bool m_debug


Detailed Description

Definition at line 57 of file quasinewton.cxx.


Constructor & Destructor Documentation

scsolver::numeric::nlp::QuasiNewtonImpl::QuasiNewtonImpl ( QuasiNewton p  )  [inline]

Definition at line 99 of file quasinewton.cxx.

scsolver::numeric::nlp::QuasiNewtonImpl::~QuasiNewtonImpl (  )  throw () [inline]

Definition at line 118 of file quasinewton.cxx.


Member Function Documentation

static double scsolver::numeric::nlp::QuasiNewtonImpl::norm ( const Matrix mxX  )  [inline, static, private]

Calculate the norm of a set of variables.

Parameters:
mxX one-column matrix representing delta f(x) vector
Returns:
double calculated norm

Definition at line 66 of file quasinewton.cxx.

References scsolver::numeric::Matrix::rows().

Referenced by evaluateFunc().

static double scsolver::numeric::nlp::QuasiNewtonImpl::evalF ( BaseFuncObj oF,
const Matrix mxVars,
vector< double > &  fVars 
) [inline, static, private]

Definition at line 81 of file quasinewton.cxx.

References scsolver::numeric::BaseFuncObj::eval(), scsolver::numeric::Matrix::rows(), and scsolver::numeric::BaseFuncObj::setVars().

Referenced by evalF(), and evaluateFunc().

static double scsolver::numeric::nlp::QuasiNewtonImpl::evalF ( BaseFuncObj oF,
const Matrix mxVars 
) [inline, static, private]

Definition at line 92 of file quasinewton.cxx.

References evalF().

void scsolver::numeric::nlp::QuasiNewtonImpl::solve (  )  [inline]

Definition at line 120 of file quasinewton.cxx.

References scsolver::numeric::Matrix::clear(), scsolver::numeric::nlp::Model::getFuncObject(), scsolver::numeric::nlp::BaseAlgorithm::getModel(), scsolver::numeric::nlp::Model::getPrecision(), scsolver::numeric::nlp::Model::getVars(), m_fF, m_fFOld, m_fNorm, m_fTolerance, m_mxD, m_mxdF, m_mxdFOld, m_mxDOld, m_mxdVars, m_mxVars, m_mxVarsOld, m_nIter, m_pFuncObj, m_pModel, m_pSelf, and runIteration().

bool scsolver::numeric::nlp::QuasiNewtonImpl::evaluateFunc (  )  [inline, private]

Definition at line 179 of file quasinewton.cxx.

References evalF(), scsolver::numeric::BaseFuncObj::getSingleVarFuncObj(), m_debug, m_fF, m_fFOld, m_fNorm, m_fTolerance, m_mxdF, m_mxVars, m_pFuncObj, norm(), scsolver::numeric::Matrix::print(), scsolver::numeric::NumericalDiffer::run(), scsolver::numeric::NumericalDiffer::setFuncObject(), scsolver::numeric::NumericalDiffer::setPrecision(), scsolver::numeric::NumericalDiffer::setVariable(), scsolver::numeric::BaseFuncObj::setVars(), and scsolver::numeric::Matrix::trans().

Referenced by runIteration().

bool scsolver::numeric::nlp::QuasiNewtonImpl::calcDefMatrix (  )  [inline, private]

Calculate or initialize deflection matrix (D).

Returns:
bool true if the iteration should stop, or false otherwise.

Definition at line 240 of file quasinewton.cxx.

References scsolver::numeric::Matrix::empty(), scsolver::numeric::nlp::Model::getGoal(), scsolver::numeric::nlp::Model::getPrecision(), scsolver::numeric::GOAL_MAXIMIZE, m_debug, m_fF, m_fNorm, m_mxD, m_mxdF, m_mxdFOld, m_mxDOld, m_mxdVars, m_mxVars, m_mxVarsOld, m_pModel, scsolver::numeric::Matrix::print(), scsolver::numeric::Matrix::rows(), scsolver::numeric::Matrix::swap(), and scsolver::numeric::Matrix::trans().

Referenced by runIteration().

void scsolver::numeric::nlp::QuasiNewtonImpl::runLinearSearch ( const ::scsolver::Timer timer  )  [inline, private]

Definition at line 291 of file quasinewton.cxx.

References scsolver::numeric::nlp::Model::getGoal(), scsolver::numeric::BaseFuncObj::getSingleVarFuncObjByRatio(), scsolver::numeric::BaseFuncObj::getVars(), m_mxdVars, m_mxVars, m_mxVarsOld, m_pFuncObj, m_pModel, scsolver::matrixToVector(), scsolver::numeric::BaseLineSearch::setFuncObj(), scsolver::numeric::BaseLineSearch::setGoal(), scsolver::numeric::BaseFuncObj::setVars(), scsolver::numeric::QuadFitLineSearch::solve(), and scsolver::vectorToMatrix().

Referenced by runIteration().

bool scsolver::numeric::nlp::QuasiNewtonImpl::runIteration ( const ::scsolver::Timer timer  )  [inline, private]

Definition at line 313 of file quasinewton.cxx.

References calcDefMatrix(), evaluateFunc(), scsolver::numeric::nlp::Model::getPrecision(), m_debug, m_fF, m_fFOld, m_mxD, m_mxdF, m_mxdFOld, m_mxDOld, m_mxVars, m_nIter, m_pModel, scsolver::numeric::Matrix::print(), scsolver::repeatString(), runLinearSearch(), and scsolver::numeric::Matrix::trans().

Referenced by solve().


Member Data Documentation

QuasiNewton* scsolver::numeric::nlp::QuasiNewtonImpl::m_pSelf [private]

Definition at line 158 of file quasinewton.cxx.

Referenced by solve().

unsigned long scsolver::numeric::nlp::QuasiNewtonImpl::m_nIter [private]

Definition at line 161 of file quasinewton.cxx.

Referenced by runIteration(), and solve().

Model* scsolver::numeric::nlp::QuasiNewtonImpl::m_pModel [private]

Definition at line 162 of file quasinewton.cxx.

Referenced by calcDefMatrix(), runIteration(), runLinearSearch(), and solve().

Matrix scsolver::numeric::nlp::QuasiNewtonImpl::m_mxVars [private]

Definition at line 163 of file quasinewton.cxx.

Referenced by calcDefMatrix(), evaluateFunc(), runIteration(), runLinearSearch(), and solve().

Matrix scsolver::numeric::nlp::QuasiNewtonImpl::m_mxdVars [private]

Definition at line 164 of file quasinewton.cxx.

Referenced by calcDefMatrix(), runLinearSearch(), and solve().

Matrix scsolver::numeric::nlp::QuasiNewtonImpl::m_mxVarsOld [private]

Definition at line 165 of file quasinewton.cxx.

Referenced by calcDefMatrix(), runLinearSearch(), and solve().

Matrix scsolver::numeric::nlp::QuasiNewtonImpl::m_mxdF [private]

Definition at line 166 of file quasinewton.cxx.

Referenced by calcDefMatrix(), evaluateFunc(), runIteration(), and solve().

Matrix scsolver::numeric::nlp::QuasiNewtonImpl::m_mxdFOld [private]

Definition at line 167 of file quasinewton.cxx.

Referenced by calcDefMatrix(), runIteration(), and solve().

Matrix scsolver::numeric::nlp::QuasiNewtonImpl::m_mxD [private]

Definition at line 168 of file quasinewton.cxx.

Referenced by calcDefMatrix(), runIteration(), and solve().

Matrix scsolver::numeric::nlp::QuasiNewtonImpl::m_mxDOld [private]

Definition at line 169 of file quasinewton.cxx.

Referenced by calcDefMatrix(), runIteration(), and solve().

double scsolver::numeric::nlp::QuasiNewtonImpl::m_fF [private]

Definition at line 170 of file quasinewton.cxx.

Referenced by calcDefMatrix(), evaluateFunc(), runIteration(), and solve().

double scsolver::numeric::nlp::QuasiNewtonImpl::m_fFOld [private]

Definition at line 171 of file quasinewton.cxx.

Referenced by evaluateFunc(), runIteration(), and solve().

double scsolver::numeric::nlp::QuasiNewtonImpl::m_fNorm [private]

Definition at line 172 of file quasinewton.cxx.

Referenced by calcDefMatrix(), evaluateFunc(), and solve().

double scsolver::numeric::nlp::QuasiNewtonImpl::m_fTolerance [private]

Definition at line 173 of file quasinewton.cxx.

Referenced by evaluateFunc(), and solve().

BaseFuncObj* scsolver::numeric::nlp::QuasiNewtonImpl::m_pFuncObj [private]

Definition at line 175 of file quasinewton.cxx.

Referenced by evaluateFunc(), runLinearSearch(), and solve().

bool scsolver::numeric::nlp::QuasiNewtonImpl::m_debug [private]

Definition at line 177 of file quasinewton.cxx.

Referenced by calcDefMatrix(), evaluateFunc(), and runIteration().


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