Stan Math Library
2.14.0
reverse mode automatic differentiation
stan
math
prim
mat
prob
lkj_corr_cholesky_rng.hpp
Go to the documentation of this file.
1
#ifndef STAN_MATH_PRIM_MAT_PROB_LKJ_CORR_CHOLESKY_RNG_HPP
2
#define STAN_MATH_PRIM_MAT_PROB_LKJ_CORR_CHOLESKY_RNG_HPP
3
4
#include <
stan/math/prim/scal/err/check_finite.hpp
>
5
#include <
stan/math/prim/scal/err/check_positive.hpp
>
6
#include <
stan/math/prim/scal/fun/constants.hpp
>
7
#include <
stan/math/prim/scal/prob/beta_rng.hpp
>
8
#include <
stan/math/prim/scal/meta/include_summand.hpp
>
9
#include <
stan/math/prim/mat/fun/factor_cov_matrix.hpp
>
10
#include <
stan/math/prim/mat/fun/factor_U.hpp
>
11
#include <
stan/math/prim/mat/fun/read_corr_L.hpp
>
12
#include <
stan/math/prim/mat/fun/read_corr_matrix.hpp
>
13
#include <
stan/math/prim/mat/fun/read_cov_L.hpp
>
14
#include <
stan/math/prim/mat/fun/read_cov_matrix.hpp
>
15
#include <
stan/math/prim/mat/fun/make_nu.hpp
>
16
#include <
stan/math/prim/scal/fun/identity_constrain.hpp
>
17
#include <
stan/math/prim/scal/fun/identity_free.hpp
>
18
#include <
stan/math/prim/scal/fun/positive_constrain.hpp
>
19
#include <
stan/math/prim/scal/fun/positive_free.hpp
>
20
#include <
stan/math/prim/scal/fun/lb_constrain.hpp
>
21
#include <
stan/math/prim/scal/fun/lb_free.hpp
>
22
#include <
stan/math/prim/scal/fun/ub_constrain.hpp
>
23
#include <
stan/math/prim/scal/fun/ub_free.hpp
>
24
#include <
stan/math/prim/scal/fun/lub_constrain.hpp
>
25
#include <
stan/math/prim/scal/fun/lub_free.hpp
>
26
#include <
stan/math/prim/scal/fun/prob_constrain.hpp
>
27
#include <
stan/math/prim/scal/fun/prob_free.hpp
>
28
#include <
stan/math/prim/scal/fun/corr_constrain.hpp
>
29
#include <
stan/math/prim/scal/fun/corr_free.hpp
>
30
#include <
stan/math/prim/mat/fun/simplex_constrain.hpp
>
31
#include <
stan/math/prim/mat/fun/simplex_free.hpp
>
32
#include <
stan/math/prim/mat/fun/ordered_constrain.hpp
>
33
#include <
stan/math/prim/mat/fun/ordered_free.hpp
>
34
#include <
stan/math/prim/mat/fun/positive_ordered_constrain.hpp
>
35
#include <
stan/math/prim/mat/fun/positive_ordered_free.hpp
>
36
#include <
stan/math/prim/mat/fun/cholesky_factor_constrain.hpp
>
37
#include <
stan/math/prim/mat/fun/cholesky_factor_free.hpp
>
38
#include <
stan/math/prim/mat/fun/cholesky_corr_constrain.hpp
>
39
#include <
stan/math/prim/mat/fun/cholesky_corr_free.hpp
>
40
#include <
stan/math/prim/mat/fun/corr_matrix_constrain.hpp
>
41
#include <
stan/math/prim/mat/fun/corr_matrix_free.hpp
>
42
#include <
stan/math/prim/mat/fun/cov_matrix_constrain.hpp
>
43
#include <
stan/math/prim/mat/fun/cov_matrix_free.hpp
>
44
#include <
stan/math/prim/mat/fun/cov_matrix_constrain_lkj.hpp
>
45
#include <
stan/math/prim/mat/fun/cov_matrix_free_lkj.hpp
>
46
47
namespace
stan
{
48
namespace
math {
49
50
template
<
class
RNG>
51
inline
Eigen::MatrixXd
52
lkj_corr_cholesky_rng
(
size_t
K,
53
double
eta,
54
RNG& rng) {
55
static
const
char
*
function
(
"lkj_corr_cholesky_rng"
);
56
57
check_positive
(
function
,
"Shape parameter"
, eta);
58
59
Eigen::ArrayXd CPCs((K * (K - 1)) / 2);
60
double
alpha = eta + 0.5 * (K - 1);
61
unsigned
int
count = 0;
62
for
(
size_t
i = 0; i < (K - 1); i++) {
63
alpha -= 0.5;
64
for
(
size_t
j = i + 1; j < K; j++) {
65
CPCs(count) = 2.0 *
beta_rng
(alpha, alpha, rng) - 1.0;
66
count++;
67
}
68
}
69
return
read_corr_L
(CPCs, K);
70
}
71
72
}
73
}
74
#endif
ub_constrain.hpp
factor_U.hpp
cov_matrix_free_lkj.hpp
positive_free.hpp
check_positive.hpp
stan
Definition:
log_sum_exp.hpp:8
lb_free.hpp
cov_matrix_free.hpp
stan::math::beta_rng
double beta_rng(double alpha, double beta, RNG &rng)
Definition:
beta_rng.hpp:30
corr_matrix_constrain.hpp
cholesky_factor_free.hpp
include_summand.hpp
corr_constrain.hpp
prob_free.hpp
ordered_constrain.hpp
cov_matrix_constrain_lkj.hpp
beta_rng.hpp
read_cov_L.hpp
simplex_free.hpp
cholesky_corr_constrain.hpp
identity_free.hpp
simplex_constrain.hpp
prob_constrain.hpp
cholesky_factor_constrain.hpp
factor_cov_matrix.hpp
ub_free.hpp
cholesky_corr_free.hpp
constants.hpp
check_finite.hpp
cov_matrix_constrain.hpp
identity_constrain.hpp
stan::math::lkj_corr_cholesky_rng
Eigen::MatrixXd lkj_corr_cholesky_rng(size_t K, double eta, RNG &rng)
Definition:
lkj_corr_cholesky_rng.hpp:52
stan::math::check_positive
void check_positive(const char *function, const char *name, const T_y &y)
Check if y is positive.
Definition:
check_positive.hpp:63
positive_ordered_constrain.hpp
positive_constrain.hpp
lub_constrain.hpp
read_cov_matrix.hpp
read_corr_matrix.hpp
read_corr_L.hpp
lub_free.hpp
positive_ordered_free.hpp
corr_matrix_free.hpp
make_nu.hpp
lb_constrain.hpp
ordered_free.hpp
corr_free.hpp
stan::math::read_corr_L
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > read_corr_L(const Eigen::Array< T, Eigen::Dynamic, 1 > &CPCs, size_t K)
Return the Cholesky factor of the correlation matrix of the specified dimensionality corresponding to...
Definition:
read_corr_L.hpp:37
[
Stan Home Page
]
© 2011–2016, Stan Development Team.