cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
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 auto & lineSearch () const
 
constexpr auto maxIterations () const
 
template<class XX , class FF , class FC , IsTensorish RX = RemoveReference<XX>, IsTensor RXE = RemoveConstReference<ResultOf<Eval, XX>>, IsFloat VX = Value<RX>, class XL = decltype(unit<RX>(NumericLimits<VX>::lowest())), IsTensorish RL = RemoveReference<XL>, IsFloat VL = Value<RL>, class XU = decltype(unit<RX>(NumericLimits<VX>::max())), IsTensorish RU = RemoveReference<XU>, IsFloat VU = Value<RU>, IsFloat VT = Common<VX, VL, VU>>
requires IsInvocable<FF, RXE const &, RXE &> && IsFloat<ResultOf<FF, RXE const &, RXE &>> && IsInvocable<FC, RXE const &> && (RX::Dimension == RL::Dimension) && (RX::Dimension == RU::Dimension) && IsSame<typename RX::Sizes, typename RL::Sizes> && IsSame<typename RX::Sizes, typename RU::Sizes> && IsInvocable<LS, RXE &, ResultOf<FF, RXE const &, RXE &> &, RXE &, typename ResultOf<ScalarProduct, XX, XX>::Type &, FF, RXE(RXE const &), RXE const &, VX, VX, VX>
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>
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>
pRC::Optimizer::LBFGSB< LS, M >::LBFGSB ( Size const maxIterations = defaultMaxIterations())
inlineconstexpr

Member Function Documentation

◆ lineSearch()

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

◆ maxIterations()

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

◆ operator()()

template<class LS = LineSearch::MoreThuente, Size M = 5>
template<class XX , class FF , class FC , IsTensorish RX = RemoveReference<XX>, IsTensor RXE = RemoveConstReference<ResultOf<Eval, XX>>, IsFloat VX = Value<RX>, class XL = decltype(unit<RX>(NumericLimits<VX>::lowest())), IsTensorish RL = RemoveReference<XL>, IsFloat VL = Value<RL>, class XU = decltype(unit<RX>(NumericLimits<VX>::max())), IsTensorish RU = RemoveReference<XU>, IsFloat VU = Value<RU>, IsFloat VT = Common<VX, VL, VU>>
requires IsInvocable<FF, RXE const &, RXE &> && IsFloat<ResultOf<FF, RXE const &, RXE &>> && IsInvocable<FC, RXE const &> && (RX::Dimension == RL::Dimension) && (RX::Dimension == RU::Dimension) && IsSame<typename RX::Sizes, typename RL::Sizes> && IsSame<typename RX::Sizes, typename RU::Sizes> && IsInvocable<LS, RXE &, ResultOf<FF, RXE const &, RXE &> &, RXE &, typename ResultOf<ScalarProduct, XX, XX>::Type &, FF, RXE(RXE const &), RXE const &, VX, VX, VX>
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: