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