pRC
multi-purpose Tensor Train library for C++
Loading...
Searching...
No Matches
Namespaces | Functions
optimize.hpp File Reference
#include <prc/core/functors/eval.hpp>
#include <prc/core/tensor/type_traits.hpp>
#include <prc/core/value/limits.hpp>
#include <prc/core/value/type_traits.hpp>

Go to the source code of this file.

Namespaces

namespace  pRC
 

Functions

template<class Optimizer , 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 VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, FC, VT > > = 0>
static constexpr auto pRC::optimize (Optimizer &&optimizer, XX &&x, FF &&function, FC &&callback, VT const &tolerance=NumericLimits< VT >::tolerance())
 This function is used to optimize over a tensorish object.
 
template<class Optimizer , 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 VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, void(RXE const), VT > > = 0>
static constexpr auto pRC::optimize (Optimizer &&optimizer, XX &&x, FF &&function, VT const &tolerance=NumericLimits< VT >::tolerance())
 This function is used to optimize over a tensorish object.
 
template<class Optimizer , 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 VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, FC, VT > > = 0>
static constexpr auto pRC::optimize (XX &&x, FF &&function, FC &&callback, VT const &tolerance=NumericLimits< VT >::tolerance())
 This function is used to optimize over a tensorish object.
 
template<class Optimizer , 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 VT = VX, If< All< IsFloat< VX >, IsFloat< VT > > > = 0, If< IsInvocable< Optimizer, XX, FF, void(RXE const), VT > > = 0>
static constexpr auto pRC::optimize (XX &&x, FF &&function, VT const &tolerance=NumericLimits< VT >::tolerance())
 This function is used to optimize over a tensorish object.