Stan Math Library
2.12.0
reverse mode automatic differentiation
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
stan
math
fwd
scal
fun
lbeta.hpp
Go to the documentation of this file.
1
#ifndef STAN_MATH_FWD_SCAL_FUN_LBETA_HPP
2
#define STAN_MATH_FWD_SCAL_FUN_LBETA_HPP
3
4
#include <
stan/math/fwd/core.hpp
>
5
6
#include <boost/math/special_functions/digamma.hpp>
7
#include <
stan/math/prim/scal/fun/lbeta.hpp
>
8
9
namespace
stan
{
10
namespace
math {
11
12
template
<
typename
T>
13
inline
14
fvar<T>
15
lbeta
(
const
fvar<T>
& x1,
const
fvar<T>
& x2) {
16
using
boost::math::digamma
;
17
return
fvar<T>
(
lbeta
(x1.
val_
, x2.
val_
),
18
x1.
d_
*
digamma
(x1.
val_
)
19
+ x2.
d_
*
digamma
(x2.
val_
)
20
- (x1.
d_
+ x2.
d_
) *
digamma
(x1.
val_
+ x2.
val_
));
21
}
22
23
template
<
typename
T>
24
inline
25
fvar<T>
26
lbeta
(
const
double
x1,
const
fvar<T>
& x2) {
27
using
boost::math::digamma
;
28
return
fvar<T>
(
lbeta
(x1, x2.
val_
),
29
x2.
d_
*
digamma
(x2.
val_
) - x2.
d_
*
digamma
(x1 + x2.
val_
));
30
}
31
32
template
<
typename
T>
33
inline
34
fvar<T>
35
lbeta
(
const
fvar<T>
& x1,
const
double
x2) {
36
using
boost::math::digamma
;
37
return
fvar<T>
(
lbeta
(x1.
val_
, x2),
38
x1.
d_
*
digamma
(x1.
val_
) - x1.
d_
*
digamma
(x1.
val_
+ x2));
39
}
40
}
41
}
42
#endif
core.hpp
stan::math::fvar::d_
T d_
Definition:
fvar.hpp:14
stan
Definition:
log_sum_exp.hpp:8
stan::math::lbeta
fvar< T > lbeta(const fvar< T > &x1, const fvar< T > &x2)
Definition:
lbeta.hpp:15
stan::math::fvar::val_
T val_
Definition:
fvar.hpp:13
lbeta.hpp
stan::math::fvar
Definition:
fvar.hpp:12
stan::math::digamma
fvar< T > digamma(const fvar< T > &x)
Definition:
digamma.hpp:15
[
Stan Home Page
]
© 2011–2016, Stan Development Team.