Automatic Differentiation
 
Loading...
Searching...
No Matches
log1m_exp.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_FWD_FUN_LOG1M_EXP_HPP
2#define STAN_MATH_FWD_FUN_LOG1M_EXP_HPP
3
10
11namespace stan {
12namespace math {
13
22template <typename T>
23inline fvar<T> log1m_exp(const fvar<T>& x) {
24 if (x.val_ >= 0) {
25 return fvar<T>(NOT_A_NUMBER);
26 }
27 return fvar<T>(log1m_exp(x.val_), x.d_ / -expm1(-x.val_));
28}
29
30} // namespace math
31} // namespace stan
32#endif
static constexpr double NOT_A_NUMBER
(Quiet) not-a-number value.
Definition constants.hpp:56
fvar< T > expm1(const fvar< T > &x)
Definition expm1.hpp:13
fvar< T > log1m_exp(const fvar< T > &x)
Return the natural logarithm of one minus the exponentiation of the specified argument.
Definition log1m_exp.hpp:23
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...
Definition fvar.hpp:9
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