Algorith sandbox
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
algo::qn::DavidonFeltcherPowell< T > Class Template Reference
Inheritance diagram for algo::qn::DavidonFeltcherPowell< T >:
util::MixIn< IQuasiNewton< T >, DavidonFeltcherPowell< T > > algo::qn::IQuasiNewton< T > util::Object< IQuasiNewton< T > >

Public Types

typedef std::function< T(const ublas::vector< T > &x)> function_type
 
- Public Types inherited from algo::qn::IQuasiNewton< T >
typedef std::function< T(const ublas::vector< T > &x)> function_type
 

Public Member Functions

 DavidonFeltcherPowell (const double epsilon, const std::size_t maxIteration)
 
- Public Member Functions inherited from algo::qn::IQuasiNewton< T >
ublas::vector< double > operator() (const ublas::vector< double > &x0, const function_type &f, const std::shared_ptr< ILineSearcher > searcher)
 solve $\mathrm{argmin}_{x}f(x) More...
 
- Public Member Functions inherited from util::Object< IQuasiNewton< T > >
const IQuasiNewton< T > & cast ()
 
bool operator== (const IQuasiNewton< T > &o) const
 
std::shared_ptr< IQuasiNewton< T > > clone () const
 

Private Member Functions

ublas::vector< double > doOperatorParenthesis (const ublas::vector< double > &x0, const function_type &f, const std::shared_ptr< ILineSearcher > searcher)
 
ublas::matrix< double > calculateInverseHessian (const ublas::vector< double > &x1, const ublas::vector< double > &x2, const ublas::vector< double > &df1, const ublas::vector< double > &df2, const ublas::matrix< double > &H)
 
bool isConverge (const ublas::vector< double > &x1, const ublas::vector< double > &x2)
 

Private Attributes

const double _epsilon
 
const std::size_t _maxIteration
 

Constructor & Destructor Documentation

template<typename T >
template algo::qn::DavidonFeltcherPowell< T >::DavidonFeltcherPowell ( const double  epsilon,
const std::size_t  maxIteration 
)
Parameters
epsilonalgorithm is converged if error is less than epsilon.
maxIterationalgorithm is iterated until converged or number of maxInteration.

Member Function Documentation

template<typename T >
template ublas::matrix< double > algo::qn::DavidonFeltcherPowell< T >::calculateInverseHessian ( const ublas::vector< double > &  x1,
const ublas::vector< double > &  x2,
const ublas::vector< double > &  df1,
const ublas::vector< double > &  df2,
const ublas::matrix< double > &  H 
)
private
Parameters
x1
x2
df1
df2
H
Returns
template<typename T >
template ublas::vector< double > algo::qn::DavidonFeltcherPowell< T >::doOperatorParenthesis ( const ublas::vector< double > &  x0,
const function_type &  f,
const std::shared_ptr< ILineSearcher searcher 
)
privatevirtual
Parameters
x0
f
gradf
Returns

Implements algo::qn::IQuasiNewton< T >.

template<typename T >
template bool algo::qn::DavidonFeltcherPowell< T >::isConverge ( const ublas::vector< double > &  x1,
const ublas::vector< double > &  x2 
)
private
Parameters
x1
x2
Returns

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