pRC
multi-purpose Tensor Train library for C++
Loading...
Searching...
No Matches
Public Member Functions | List of all members
pRC::Optimizer::LBFGSB< LS, M > Class Template Reference

#include <lbfgsb.hpp>

Public Member Functions

constexpr LBFGSB (LS const &lineSearch, Size const maxIterations=defaultMaxIterations())
 
constexpr LBFGSB (Size const maxIterations=defaultMaxIterations())
 
constexpr autolineSearch () const
 
constexpr auto maxIterations () const
 
template<class XX , class RX = RemoveReference<XX>, class TX = typename RX::Type, class VX = typename TX::Value, If< IsTensorish< RX > > = 0, class RXE = RemoveConstReference<ResultOf<Eval, XX>>, class FF , If< IsInvocable< FF, RXE const &, RXE & > > = 0, If< IsFloat< ResultOf< FF, RXE const &, RXE & > > > = 0, class FC , If< IsInvocable< FC, RXE > > = 0, class XL = decltype(unit<RX>(NumericLimits<VX>::lowest())), class RL = RemoveReference<XL>, class TL = typename RL::Type, class VL = typename TL::Value, If< IsTensorish< RL > > = 0, class XU = decltype(unit<RX>(NumericLimits<VX>::max())), class RU = RemoveReference<XU>, class TU = typename RU::Type, class VU = typename TU::Value, If< IsTensorish< RU > > = 0, class VT = Common<VX, VL, VU>, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsSame< typename RX::Dimension, typename RL::Dimension, typename RU::Dimension > > = 0, If< IsSame< typename RX::Sizes, typename RL::Sizes, typename RU::Sizes > > = 0, If< IsInvocable< LS, RXE &, ResultOf< FF, RXE const &, RXE & > &, RXE &, VX &, FF, RXE(RXE const &), RXE const &, VX, VX, VX > > = 0>
constexpr auto operator() (XX &&x0, FF &&function, FC &&callback, VT const &tolerance=NumericLimits< VT >::tolerance(), XL &&lowerBound=unit< RL >(NumericLimits< VL >::lowest()), XU &&upperBound=unit< RU >(NumericLimits< VU >::max())) const
 

Constructor & Destructor Documentation

◆ LBFGSB() [1/2]

template<class LS = LineSearch::MoreThuente, Size M = 5>
constexpr pRC::Optimizer::LBFGSB< LS, M >::LBFGSB ( LS const lineSearch,
Size const  maxIterations = defaultMaxIterations() 
)
inlineconstexpr

◆ LBFGSB() [2/2]

template<class LS = LineSearch::MoreThuente, Size M = 5>
constexpr pRC::Optimizer::LBFGSB< LS, M >::LBFGSB ( Size const  maxIterations = defaultMaxIterations())
inlineconstexpr

Member Function Documentation

◆ lineSearch()

template<class LS = LineSearch::MoreThuente, Size M = 5>
constexpr auto & pRC::Optimizer::LBFGSB< LS, M >::lineSearch ( ) const
inlineconstexpr

◆ maxIterations()

template<class LS = LineSearch::MoreThuente, Size M = 5>
constexpr auto pRC::Optimizer::LBFGSB< LS, M >::maxIterations ( ) const
inlineconstexpr

◆ operator()()

template<class LS = LineSearch::MoreThuente, Size M = 5>
template<class XX , class RX = RemoveReference<XX>, class TX = typename RX::Type, class VX = typename TX::Value, If< IsTensorish< RX > > = 0, class RXE = RemoveConstReference<ResultOf<Eval, XX>>, class FF , If< IsInvocable< FF, RXE const &, RXE & > > = 0, If< IsFloat< ResultOf< FF, RXE const &, RXE & > > > = 0, class FC , If< IsInvocable< FC, RXE > > = 0, class XL = decltype(unit<RX>(NumericLimits<VX>::lowest())), class RL = RemoveReference<XL>, class TL = typename RL::Type, class VL = typename TL::Value, If< IsTensorish< RL > > = 0, class XU = decltype(unit<RX>(NumericLimits<VX>::max())), class RU = RemoveReference<XU>, class TU = typename RU::Type, class VU = typename TU::Value, If< IsTensorish< RU > > = 0, class VT = Common<VX, VL, VU>, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsSame< typename RX::Dimension, typename RL::Dimension, typename RU::Dimension > > = 0, If< IsSame< typename RX::Sizes, typename RL::Sizes, typename RU::Sizes > > = 0, If< IsInvocable< LS, RXE &, ResultOf< FF, RXE const &, RXE & > &, RXE &, VX &, FF, RXE(RXE const &), RXE const &, VX, VX, VX > > = 0>
constexpr auto pRC::Optimizer::LBFGSB< LS, M >::operator() ( XX &&  x0,
FF &&  function,
FC &&  callback,
VT const tolerance = NumericLimits<VT>::tolerance(),
XL &&  lowerBound = unit<RL>(NumericLimits<VL>::lowest()),
XU &&  upperBound = unit<RU>(NumericLimits<VU>::max()) 
) const
inlineconstexpr

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