pRC
multi-purpose Tensor Train library for C++
Loading...
Searching...
No Matches
Public Member Functions | List of all members
pRC::Optimizer::LineSearch::MoreThuente Struct Reference

#include <more_thuente.hpp>

Public Member Functions

constexpr MoreThuente (Size const maxIterations=defaultMaxIterations(), Float<> const c1=defaultC1(), Float<> const c2=defaultC2(), Float<> const trapLower=defaultTrapLower(), Float<> const trapUpper=defaultTrapUpper(), Float<> const delta=defaultDelta())
 
constexpr auto maxIterations () const
 
template<class T = Float<>>
constexpr decltype(autoc1 () const
 
template<class T = Float<>>
constexpr decltype(autoc2 () const
 
template<class T = Float<>>
constexpr decltype(autotrapLower () const
 
template<class T = Float<>>
constexpr decltype(autotrapUpper () const
 
template<class T = Float<>>
constexpr decltype(autodelta () const
 
template<class X , If< IsTensor< X > > = 0, class T = typename X::Type::Value, If< IsFloat< T > > = 0, class F , If< IsInvocable< F, X const &, X & > > = 0, If< IsFloat< ResultOf< F, X const &, X & > > > = 0, class FC , If< IsInvocable< FC, X const & > > = 0, If< IsConvertible< ResultOf< FC, X const & >, X > > = 0>
constexpr auto operator() (X &x, ResultOf< F, X const &, X & > &f, X &g, typename ResultOf< ScalarProduct, X, X >::Type &d, F &&function, FC &&constraint, X const &p, T alpha=identity< T >(), T const alphaMin=zero< T >(), T const alphaMax=identity< T >(NumericLimits< T >::max())) const
 
template<class X , If< IsTensor< X > > = 0, class T = typename X::Type::Value, If< IsFloat< T > > = 0, class F , If< IsInvocable< F, X const &, X & > > = 0, If< IsFloat< ResultOf< F, X const &, X & > > > = 0>
constexpr auto operator() (X &x, ResultOf< F, X const &, X & > &f, X &g, typename ResultOf< ScalarProduct, X, X >::Type &d, F &&function, X const &p, T alpha=identity< T >(), T const alphaMin=zero< T >(), T const alphaMax=identity< T >(NumericLimits< T >::max())) const
 

Constructor & Destructor Documentation

◆ MoreThuente()

constexpr pRC::Optimizer::LineSearch::MoreThuente::MoreThuente ( Size const  maxIterations = defaultMaxIterations(),
Float<> const  c1 = defaultC1(),
Float<> const  c2 = defaultC2(),
Float<> const  trapLower = defaultTrapLower(),
Float<> const  trapUpper = defaultTrapUpper(),
Float<> const  delta = defaultDelta() 
)
inlineconstexpr

Member Function Documentation

◆ c1()

template<class T = Float<>>
constexpr decltype(auto) pRC::Optimizer::LineSearch::MoreThuente::c1 ( ) const
inlineconstexpr

◆ c2()

template<class T = Float<>>
constexpr decltype(auto) pRC::Optimizer::LineSearch::MoreThuente::c2 ( ) const
inlineconstexpr

◆ delta()

template<class T = Float<>>
constexpr decltype(auto) pRC::Optimizer::LineSearch::MoreThuente::delta ( ) const
inlineconstexpr

◆ maxIterations()

constexpr auto pRC::Optimizer::LineSearch::MoreThuente::maxIterations ( ) const
inlineconstexpr

◆ operator()() [1/2]

template<class X , If< IsTensor< X > > = 0, class T = typename X::Type::Value, If< IsFloat< T > > = 0, class F , If< IsInvocable< F, X const &, X & > > = 0, If< IsFloat< ResultOf< F, X const &, X & > > > = 0, class FC , If< IsInvocable< FC, X const & > > = 0, If< IsConvertible< ResultOf< FC, X const & >, X > > = 0>
constexpr auto pRC::Optimizer::LineSearch::MoreThuente::operator() ( X x,
ResultOf< F, X const &, X & > &  f,
X g,
typename ResultOf< ScalarProduct, X, X >::Type &  d,
F &&  function,
FC &&  constraint,
X const p,
T  alpha = identity<T>(),
T const  alphaMin = zero<T>(),
T const  alphaMax = identity<T>(NumericLimits<T>::max()) 
) const
inlineconstexpr

◆ operator()() [2/2]

template<class X , If< IsTensor< X > > = 0, class T = typename X::Type::Value, If< IsFloat< T > > = 0, class F , If< IsInvocable< F, X const &, X & > > = 0, If< IsFloat< ResultOf< F, X const &, X & > > > = 0>
constexpr auto pRC::Optimizer::LineSearch::MoreThuente::operator() ( X x,
ResultOf< F, X const &, X & > &  f,
X g,
typename ResultOf< ScalarProduct, X, X >::Type &  d,
F &&  function,
X const p,
T  alpha = identity<T>(),
T const  alphaMin = zero<T>(),
T const  alphaMax = identity<T>(NumericLimits<T>::max()) 
) const
inlineconstexpr

◆ trapLower()

template<class T = Float<>>
constexpr decltype(auto) pRC::Optimizer::LineSearch::MoreThuente::trapLower ( ) const
inlineconstexpr

◆ trapUpper()

template<class T = Float<>>
constexpr decltype(auto) pRC::Optimizer::LineSearch::MoreThuente::trapUpper ( ) const
inlineconstexpr

The documentation for this struct was generated from the following file: