16 namespace algo {
namespace ad {
57 return -detail::getValue(_e);
66 return -detail::getValue(_e);
73 decltype(detail::dual_negate_helper(E()))
76 return detail::dual_negate_helper(_e);
83 decltype(detail::dual_negate_helper(E()))
86 return detail::dual_negate_helper(_e);
92 const_closure_type _e;
103 dual_negate<E> operator -(
const dual_expression<E>& e)
105 return dual_negate<E>(e());
147 return std::exp(detail::getValue(_e));
156 return std::exp(detail::getValue(_e));
163 decltype(detail::dual_exp_helper(E()))
166 return detail::dual_exp_helper(_e);
173 decltype(detail::dual_exp_helper(E()))
176 return detail::dual_exp_helper(_e);
182 const_closure_type _e;
193 dual_exp<E> exp(
const dual_expression<E>& e)
195 return dual_exp<E>(e());
237 return std::log(detail::getValue(_e));
246 return std::log(detail::getValue(_e));
253 decltype(detail::dual_log_helper(E()))
256 return detail::dual_log_helper(_e);
263 decltype(detail::dual_log_helper(E()))
266 return detail::dual_log_helper(_e);
272 const_closure_type _e;
283 dual_log<E> log(
const dual_expression<E>& e)
285 return dual_log<E>(e());
327 return std::sin(detail::getValue(_e));
336 return std::sin(detail::getValue(_e));
343 decltype(detail::dual_sin_helper(E()))
346 return detail::dual_sin_helper(_e);
353 decltype(detail::dual_sin_helper(E()))
356 return detail::dual_sin_helper(_e);
362 const_closure_type _e;
373 dual_sin<E> sin(
const dual_expression<E>& e)
375 return dual_sin<E>(e());
417 return std::cos(detail::getValue(_e));
426 return std::cos(detail::getValue(_e));
433 decltype(detail::dual_cos_helper(E()))
436 return detail::dual_cos_helper(_e);
443 decltype(detail::dual_cos_helper(E()))
446 return detail::dual_cos_helper(_e);
452 const_closure_type _e;
463 dual_cos<E> cos(
const dual_expression<E>& e)
465 return dual_cos<E>(e());
double getValue()
Definition: dual_unary_operator.hpp:145
decltype(detail::dual_log_helper(E())) getDerivative()
Definition: dual_unary_operator.hpp:254
dual_exp()
requires.
Definition: dual_unary_operator.hpp:127
decltype(detail::dual_exp_helper(E())) getDerivative()
Definition: dual_unary_operator.hpp:164
double getValue() const
Definition: dual_unary_operator.hpp:334
dual_negate()
the constructor is required.
Definition: dual_unary_operator.hpp:37
dual_sin()
the constructor is required.
Definition: dual_unary_operator.hpp:307
Definition: dual_unary_operator.hpp:116
Definition: dual_unary_operator.hpp:206
decltype(detail::dual_cos_helper(E())) getDerivative()
Definition: dual_unary_operator.hpp:434
decltype(detail::dual_negate_helper(E())) getDerivative()
Definition: dual_unary_operator.hpp:74
dual_negate(const E &e)
Definition: dual_unary_operator.hpp:46
double getValue() const
Definition: dual_unary_operator.hpp:424
Definition: dual_unary_operator.hpp:296
dual_exp(const E &e)
Definition: dual_unary_operator.hpp:136
double getValue()
Definition: dual_unary_operator.hpp:415
dual_cos(const E &e)
Definition: dual_unary_operator.hpp:406
dual_cos()
the constructor is required.
Definition: dual_unary_operator.hpp:397
dual_log()
the constructor is required.
Definition: dual_unary_operator.hpp:217
Definition: dual_expression.hpp:19
double getValue() const
Definition: dual_unary_operator.hpp:154
Definition: dual_unary_operator.hpp:386
Definition: ublas_matrix_expression_concept.hpp:5
double getValue()
Definition: dual_unary_operator.hpp:55
double getValue() const
Definition: dual_unary_operator.hpp:64
dual_sin(const E &e)
Definition: dual_unary_operator.hpp:316
double getValue()
Definition: dual_unary_operator.hpp:235
decltype(detail::dual_sin_helper(E())) getDerivative()
Definition: dual_unary_operator.hpp:344
dual_log(const E &e)
Definition: dual_unary_operator.hpp:226
double getValue()
Definition: dual_unary_operator.hpp:325
Definition: dual_unary_operator.hpp:26
double getValue() const
Definition: dual_unary_operator.hpp:244