3#ifndef pRC_ALGORITHMS_OPTIMIZE_H
4#define pRC_ALGORITHMS_OPTIMIZE_H
30 template<
class Optimizer,
class XX,
class RX = RemoveReference<XX>,
31 class TX =
typename RX::Type,
class VX =
typename TX::Value,
32 If<IsTensorish<RX>> = 0,
33 class RXE = RemoveConstReference<ResultOf<Eval, XX>>,
class FF,
34 If<IsInvocable<FF, RXE const &, RXE &>> = 0,
35 If<IsFloat<ResultOf<FF, RXE const &, RXE &>>> = 0,
class FC,
36 If<IsInvocable<FC, RXE &>> = 0,
class VT = VX,
37 If<All<IsFloat<VX>, IsFloat<VT>>> = 0,
38 If<IsInvocable<Optimizer, XX, FF, FC, VT>> = 0>
64 template<
class Optimizer,
class XX,
class RX = RemoveReference<XX>,
65 class TX =
typename RX::Type,
class VX =
typename TX::Value,
66 If<IsTensorish<RX>> = 0,
67 class RXE = RemoveConstReference<ResultOf<Eval, XX>>,
class FF,
68 If<IsInvocable<FF, RXE const &, RXE &>> = 0,
69 If<IsFloat<ResultOf<FF, RXE const &, RXE &>>> = 0,
class VT = VX,
70 If<All<IsFloat<VX>, IsFloat<VT>>> = 0,
71 If<IsInvocable<Optimizer, XX, FF,
void(RXE const), VT>> = 0>
103 template<
class Optimizer,
class XX,
class RX = RemoveReference<XX>,
104 class TX =
typename RX::Type,
class VX =
typename TX::Value,
105 If<IsTensorish<RX>> = 0,
106 class RXE = RemoveConstReference<ResultOf<Eval, XX>>,
class FF,
107 If<IsInvocable<FF, RXE const &, RXE &>> = 0,
108 If<IsFloat<ResultOf<FF, RXE const &, RXE &>>> = 0,
class FC,
109 If<IsInvocable<FC, RXE &>> = 0,
class VT = VX,
110 If<All<IsFloat<VX>, IsFloat<VT>>> = 0,
111 If<IsInvocable<Optimizer, XX, FF, FC, VT>> = 0>
136 template<
class Optimizer,
class XX,
class RX = RemoveReference<XX>,
137 class TX =
typename RX::Type,
class VX =
typename TX::Value,
138 If<IsTensorish<RX>> = 0,
139 class RXE = RemoveConstReference<ResultOf<Eval, XX>>,
class FF,
140 If<IsInvocable<FF, RXE const &, RXE &>> = 0,
141 If<IsFloat<ResultOf<FF, RXE const &, RXE &>>> = 0,
class VT = VX,
142 If<All<IsFloat<VX>, IsFloat<VT>>> = 0,
143 If<IsInvocable<Optimizer, XX, FF,
void(RXE const), VT>> = 0>
Definition cholesky.hpp:18
static constexpr auto 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.
Definition optimize.hpp:39
static constexpr Conditional< IsSatisfied< C >, RemoveConstReference< X >, X > copy(X &&a)
Definition copy.hpp:13