Stan Math Library
2.14.0
reverse mode automatic differentiation
stan
math
prim
scal
prob
gamma_rng.hpp
Go to the documentation of this file.
1
#ifndef STAN_MATH_PRIM_SCAL_PROB_GAMMA_RNG_HPP
2
#define STAN_MATH_PRIM_SCAL_PROB_GAMMA_RNG_HPP
3
4
#include <boost/random/gamma_distribution.hpp>
5
#include <boost/random/variate_generator.hpp>
6
#include <
stan/math/prim/scal/err/check_consistent_sizes.hpp
>
7
#include <
stan/math/prim/scal/err/check_greater_or_equal.hpp
>
8
#include <
stan/math/prim/scal/err/check_less_or_equal.hpp
>
9
#include <
stan/math/prim/scal/err/check_nonnegative.hpp
>
10
#include <
stan/math/prim/scal/err/check_not_nan.hpp
>
11
#include <
stan/math/prim/scal/err/check_positive_finite.hpp
>
12
#include <
stan/math/prim/scal/fun/constants.hpp
>
13
#include <
stan/math/prim/scal/fun/multiply_log.hpp
>
14
#include <
stan/math/prim/scal/fun/value_of.hpp
>
15
#include <
stan/math/prim/scal/fun/gamma_p.hpp
>
16
#include <
stan/math/prim/scal/fun/digamma.hpp
>
17
#include <
stan/math/prim/scal/meta/length.hpp
>
18
#include <
stan/math/prim/scal/meta/VectorView.hpp
>
19
#include <
stan/math/prim/scal/meta/VectorBuilder.hpp
>
20
#include <
stan/math/prim/scal/meta/return_type.hpp
>
21
#include <
stan/math/prim/scal/meta/include_summand.hpp
>
22
#include <
stan/math/prim/scal/fun/grad_reg_inc_gamma.hpp
>
23
24
namespace
stan
{
25
namespace
math {
26
27
template
<
class
RNG>
28
inline
double
29
gamma_rng
(
double
alpha,
30
double
beta,
31
RNG& rng) {
32
using
boost::variate_generator;
33
using
boost::gamma_distribution;
34
35
static
const
char
*
function
(
"gamma_rng"
);
36
check_positive_finite
(
function
,
"Shape parameter"
, alpha);
37
check_positive_finite
(
function
,
"Inverse scale parameter"
, beta);
38
39
/*
40
the boost gamma distribution is defined by
41
shape and scale, whereas the stan one is defined
42
by shape and rate
43
*/
44
variate_generator<RNG&, gamma_distribution<> >
45
gamma_rng
(rng, gamma_distribution<>(alpha, 1.0 / beta));
46
return
gamma_rng
();
47
}
48
49
}
50
}
51
#endif
check_not_nan.hpp
check_positive_finite.hpp
stan
Definition:
log_sum_exp.hpp:8
digamma.hpp
return_type.hpp
include_summand.hpp
multiply_log.hpp
check_nonnegative.hpp
stan::math::check_positive_finite
void check_positive_finite(const char *function, const char *name, const T_y &y)
Check if y is positive and finite.
Definition:
check_positive_finite.hpp:26
check_less_or_equal.hpp
VectorView.hpp
stan::math::gamma_rng
double gamma_rng(double alpha, double beta, RNG &rng)
Definition:
gamma_rng.hpp:29
VectorBuilder.hpp
length.hpp
gamma_p.hpp
grad_reg_inc_gamma.hpp
constants.hpp
check_greater_or_equal.hpp
value_of.hpp
check_consistent_sizes.hpp
[
Stan Home Page
]
© 2011–2016, Stan Development Team.