Automatic Differentiation
 
Loading...
Searching...
No Matches
lambert_w.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_FWD_FUN_LAMBERT_W_HPP
2#define STAN_MATH_FWD_FUN_LAMBERT_W_HPP
3
8#include <cmath>
9
10namespace stan {
11namespace math {
12
13template <typename T>
14inline fvar<T> lambert_w0(const fvar<T>& x) {
15 const auto cached_result = lambert_w0(x.val_);
16 return fvar<T>(cached_result, (x.d_ / (x.val_ + exp(cached_result))));
17}
18
19template <typename T>
20inline fvar<T> lambert_wm1(const fvar<T>& x) {
21 const auto cached_result = lambert_wm1(x.val_);
22 return fvar<T>(cached_result, (x.d_ / (x.val_ + exp(cached_result))));
23}
24
25} // namespace math
26} // namespace stan
27#endif
fvar< T > lambert_w0(const fvar< T > &x)
Definition lambert_w.hpp:14
fvar< T > lambert_wm1(const fvar< T > &x)
Definition lambert_w.hpp:20
fvar< T > exp(const fvar< T > &x)
Definition exp.hpp:15
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...
Scalar val_
The value of this variable.
Definition fvar.hpp:49
Scalar d_
The tangent (derivative) of this variable.
Definition fvar.hpp:61
This template class represents scalars used in forward-mode automatic differentiation,...
Definition fvar.hpp:40