Stan Math Library
2.8.0
reverse mode automatic differentiation
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerator
Friends
Macros
Groups
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::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.