Automatic Differentiation
 
Loading...
Searching...
No Matches
lbeta.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_FWD_FUN_LBETA_HPP
2#define STAN_MATH_FWD_FUN_LBETA_HPP
3
6
9
10namespace stan {
11namespace math {
12
13template <typename T>
14inline fvar<T> lbeta(const fvar<T>& x1, const fvar<T>& x2) {
15 return fvar<T>(lbeta(x1.val_, x2.val_),
16 x1.d_ * digamma(x1.val_) + x2.d_ * digamma(x2.val_)
17 - (x1.d_ + x2.d_) * digamma(x1.val_ + x2.val_));
18}
19
20template <typename T>
21inline fvar<T> lbeta(double x1, const fvar<T>& x2) {
22 return fvar<T>(lbeta(x1, x2.val_),
23 x2.d_ * digamma(x2.val_) - x2.d_ * digamma(x1 + x2.val_));
24}
25
26template <typename T>
27inline fvar<T> lbeta(const fvar<T>& x1, double x2) {
28 return fvar<T>(lbeta(x1.val_, x2),
29 x1.d_ * digamma(x1.val_) - x1.d_ * digamma(x1.val_ + x2));
30}
31} // namespace math
32} // namespace stan
33#endif
fvar< T > lbeta(const fvar< T > &x1, const fvar< T > &x2)
Definition lbeta.hpp:14
fvar< T > digamma(const fvar< T > &x)
Return the derivative of the log gamma function at the specified argument.
Definition digamma.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