dlr::optimization Namespace Reference

This namespace contains classes for gradient- and non-gradient- based optimization. More...


Classes

class  GradientFunction
 The GradientFunction class template is derived from std::unary_function, and adds one additional member function for computing the gradient of the function output with respect to the argument. More...
class  Optimizer
 Optimizer is an abstract base class defining the interface for general optimization classes. More...
class  OptimizerBFGS
 OptimizerBFGS implements the Quasi-Newton method of Broyden, Fletcher, Goldfarb, and Shanno, as described in [1] (and possibly in [2]). More...
class  OptimizerLineSearch
 OptimizerLineSearch implements the line search algorithm described in [1]. More...
class  OptimizerLM
 OptimizerLM implements the Levenberg-Marquardt nonlinear least-squares minimization algorithm, as described in [1]. More...
class  OptimizerNelderMead
 OptimizerNelderMead implements the non-gradient based downhill simplex optimization method of Nelder and Mead, as described in [1] and [2]. More...

Functions

template<class ArgumentType>
double contextSensitiveScale (const ArgumentType &vector, const ArgumentType &point)
 This function computes a scale factor for convergence tests.
template<class ArgumentType>
void copyArgumentType (const ArgumentType &source, ArgumentType &target)
 This function copies an argument_type array in such a way that the result is a deep copy of the original, even if argument_type has shallow copy semantics.
template<class ArgumentType>
double dotArgumentType (const ArgumentType &argument0, const ArgumentType &argument1)
 This function computes the dot product of two ArgumentType instances.
template<class ArgumentType>
void matrixMultiplyArgumentType (const Array2D< double > &matrix0, const ArgumentType &vector0, ArgumentType &result)
 This function computes matrix product of an Array2D<double> instance and an ArgumentType instance.


Detailed Description

This namespace contains classes for gradient- and non-gradient- based optimization.

Function Documentation

template<class ArgumentType>
double dlr::optimization::contextSensitiveScale ( const ArgumentType &  vector,
const ArgumentType &  point 
) [inline]

This function computes a scale factor for convergence tests.

Roughly, the bigger the elements of argument vector, relative to the elements of argument point, the bigger the returned value.

Parameters:
vector A direction vector for use in the scaling calculation.
point A starting point for use in the scaling calculation.
Returns:
A scale factor, always greater than zero.

Definition at line 119 of file optimizerCommon.h.

References DLR_THROW3.

Referenced by dlr::optimization::OptimizerBFGS< Functor >::doBfgs(), and dlr::optimization::OptimizerLineSearch< Functor >::run().

template<class ArgumentType>
void dlr::optimization::copyArgumentType ( const ArgumentType &  source,
ArgumentType &  target 
) [inline]

This function copies an argument_type array in such a way that the result is a deep copy of the original, even if argument_type has shallow copy semantics.

Parameters:
source The array that will be copied.
target The array into which source will be copied.

Definition at line 147 of file optimizerCommon.h.

Referenced by dlr::optimization::OptimizerBFGS< Functor >::doBfgs(), dlr::optimization::OptimizerLM< Functor >::operator=(), dlr::optimization::OptimizerLineSearch< Functor >::operator=(), dlr::optimization::OptimizerBFGS< Functor >::operator=(), dlr::optimization::Optimizer< Functor >::operator=(), dlr::optimization::Optimizer< Functor >::Optimizer(), dlr::optimization::OptimizerBFGS< Functor >::OptimizerBFGS(), dlr::optimization::OptimizerLineSearch< Functor >::OptimizerLineSearch(), dlr::optimization::OptimizerLM< Functor >::OptimizerLM(), dlr::optimization::OptimizerNelderMead< Functor >::OptimizerNelderMead(), dlr::optimization::OptimizerNelderMead< Functor >::run(), dlr::optimization::OptimizerLM< Functor >::run(), dlr::optimization::OptimizerLineSearch< Functor >::run(), dlr::optimization::OptimizerBFGS< Functor >::run(), dlr::optimization::OptimizerLineSearch< Functor >::setInitialStep(), dlr::optimization::OptimizerLM< Functor >::setStartPoint(), dlr::optimization::OptimizerLineSearch< Functor >::setStartPoint(), and dlr::optimization::OptimizerBFGS< Functor >::setStartPoint().

template<class ArgumentType>
double dlr::optimization::dotArgumentType ( const ArgumentType &  argument0,
const ArgumentType &  argument1 
) [inline]

This function computes the dot product of two ArgumentType instances.

Note that ArgumentType is assumed to be a vector class supporting operator[](size_t) for const access to its elements, and providing a size() member function. The dot product is returned as a double.

Parameters:
argument0 This argument is the first term in the dot product.
argument1 This argument is the second term in the dot product.
Returns:
The sum of the products of corresponding elements of the two arguments.

Definition at line 161 of file optimizerCommon.h.

References DLR_THROW3.

Referenced by dlr::optimization::OptimizerBFGS< Functor >::doBfgs(), dlr::optimization::OptimizerLM< Functor >::run(), dlr::optimization::OptimizerLineSearch< Functor >::run(), and dlr::optimization::OptimizerLineSearch< Functor >::setInitialStep().

template<class ArgumentType>
void dlr::optimization::matrixMultiplyArgumentType ( const Array2D< double > &  matrix0,
const ArgumentType &  vector0,
ArgumentType &  result 
) [inline]

This function computes matrix product of an Array2D<double> instance and an ArgumentType instance.

Note that ArgumentType is assumed to be a vector class supporting operator[](size_t) for const access to its elements, and providing a size() member function. The matrix*vector product is returned through the final reference argument.

Parameters:
matrix0 This argument is the first term in the product.
vector0 This argument is the second term in the product.
result The elements of this argument will be set to the result of the matrix * vector product.

Definition at line 181 of file optimizerCommon.h.

References DLR_THROW3.

Referenced by dlr::optimization::OptimizerBFGS< Functor >::doBfgs().


Generated on Mon Jul 9 20:34:21 2007 for dlrLibs Utility Libraries by  doxygen 1.5.2