JUK1
|
a namespace to hold the messiness of my auto-differentiator More...
Functions | |
template<typename ValType , size_t NumVars> | |
requires (std::is_arithmetic< ValType >::value &&NumVars >=0) struct DiffVar | |
template<typename ValType , size_t NumVars, typename F1 , typename F2 > | |
requires (std::is_arithmetic< ValType >::value &&NumVars >=0) const expr auto diffFunc(const DiffVar< ValType | |
while (it1 !=toRet.diffVars.end() &&it2 !=arg.diffVars.end()) | |
DiffVar< ValType, NumVars > | toRet (derivEval) |
template<typename ValType , size_t NumVars, typename OT > | |
requires (std::is_arithmetic< ValType >::value &&NumVars >=0) &&(!std | |
DiffVar< ValType, NumVars > | toRet (func(arg.var, exponent.var)) |
DiffVar< ValType, NumVars > | toRet (funcResult) |
Variables | |
template<typename RT , typename LT , typename OT > | |
concept | MultipliableResult |
template<typename RT , typename LT , typename OT > | |
concept | AddableResult |
template<typename RT , typename LT , typename OT > | |
concept | SubtractableResult |
template<typename RT , typename LT , typename OT > | |
concept | DivisableResult |
NumVars & | arg |
NumVars F1 | func |
NumVars F1 F2 | deriv |
auto | it1 = toRet.diffVars.begin() |
auto | it2 = arg.diffVars.begin() |
auto | derivEval = deriv(arg.var) |
return | toRet |
toRet | var = derivEval |
NumVars DiffVar< ValType, NumVars > | exponent |
auto | it3 = exponent.diffVars.begin() |
a namespace to hold the messiness of my auto-differentiator
In essence the idea of this header is to allow easy determination of the jacobian of a non-linear element without having to manually differentiate a function. Sometimes this can also lead to faster implementations than an analytical derivative. The main advantage though, is being able to express the equation once in a natural format.
AutoDifferentiation::requires | ( | std::is_arithmetic< ValType >::value &&NumVars >= | 0 | ) | && |
Definition at line 368 of file AutoDifferentiation.hpp.
AutoDifferentiation::requires | ( | std::is_arithmetic< ValType >::value &&NumVars >= | 0 | ) | const |
AutoDifferentiation::requires | ( | std::is_arithmetic< ValType >::value &&NumVars >= | 0 | ) |
Definition at line 41 of file AutoDifferentiation.hpp.
DiffVar<ValType, NumVars> AutoDifferentiation::toRet | ( | derivEval | ) |
DiffVar<ValType, NumVars> AutoDifferentiation::toRet | ( | func(arg.var, exponent.var) | ) |
DiffVar<ValType, NumVars> AutoDifferentiation::toRet | ( | funcResult | ) |
Definition at line 294 of file AutoDifferentiation.hpp.
concept AutoDifferentiation::AddableResult |
Definition at line 25 of file AutoDifferentiation.hpp.
NumVars & AutoDifferentiation::arg |
Definition at line 287 of file AutoDifferentiation.hpp.
auto AutoDifferentiation::deriv |
Definition at line 288 of file AutoDifferentiation.hpp.
auto AutoDifferentiation::derivEval = deriv(arg.var) |
Definition at line 293 of file AutoDifferentiation.hpp.
concept AutoDifferentiation::DivisableResult |
Definition at line 35 of file AutoDifferentiation.hpp.
NumVars DiffVar<ValType, NumVars> AutoDifferentiation::exponent |
Definition at line 379 of file AutoDifferentiation.hpp.
NumVars F1 AutoDifferentiation::func |
Definition at line 287 of file AutoDifferentiation.hpp.
auto AutoDifferentiation::it1 = toRet.diffVars.begin() |
Definition at line 291 of file AutoDifferentiation.hpp.
auto AutoDifferentiation::it2 = arg.diffVars.begin() |
Definition at line 292 of file AutoDifferentiation.hpp.
auto AutoDifferentiation::it3 = exponent.diffVars.begin() |
Definition at line 390 of file AutoDifferentiation.hpp.
concept AutoDifferentiation::MultipliableResult |
Definition at line 20 of file AutoDifferentiation.hpp.
concept AutoDifferentiation::SubtractableResult |
Definition at line 30 of file AutoDifferentiation.hpp.
return AutoDifferentiation::toRet |
Definition at line 299 of file AutoDifferentiation.hpp.
Definition at line 363 of file AutoDifferentiation.hpp.