1 #ifndef STAN_MATH_REV_SCAL_FUN_HYPOT_HPP
2 #define STAN_MATH_REV_SCAL_FUN_HYPOT_HPP
13 class hypot_vv_vari :
public op_vv_vari {
15 hypot_vv_vari(vari* avi, vari* bvi) :
16 op_vv_vari(::
hypot(avi->val_, bvi->val_),
20 avi_->adj_ += adj_ * avi_->val_ / val_;
21 bvi_->adj_ += adj_ * bvi_->val_ / val_;
25 class hypot_vd_vari :
public op_v_vari {
27 hypot_vd_vari(vari* avi,
double b) :
28 op_v_vari(::
hypot(avi->val_, b),
32 avi_->adj_ += adj_ * avi_->val_ / val_;
54 return var(
new hypot_vv_vari(a.
vi_, b.
vi_));
72 return var(
new hypot_vd_vari(a.
vi_, b));
117 return var(
new hypot_vd_vari(b.
vi_, a));
fvar< T > hypot(const fvar< T > &x1, const fvar< T > &x2)
Independent (input) and dependent (output) variables for gradients.
vari * vi_
Pointer to the implementation of this variable.