1 #ifndef STAN_MATH_PRIM_MAT_FUN_CHOLESKY_FACTOR_CONSTRAIN_HPP 2 #define STAN_MATH_PRIM_MAT_FUN_CHOLESKY_FACTOR_CONSTRAIN_HPP 28 const Eigen::Matrix<T, Eigen::Dynamic, 1>& x,
int M,
int N) {
31 "num rows (must be greater or equal to num cols)", M,
34 "((N * (N + 1)) / 2 + (M - N) * N)",
35 ((N * (N + 1)) / 2 + (M - N) * N));
36 Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> y(M, N);
40 for (
int m = 0; m < N; ++m) {
41 for (
int n = 0; n < m; ++n)
43 y(m, m) =
exp(x(pos++));
44 for (
int n = m + 1; n < N; ++n)
48 for (
int m = N; m < M; ++m)
49 for (
int n = 0; n < N; ++n)
70 const Eigen::Matrix<T, Eigen::Dynamic, 1>& x,
int M,
int N, T& lp) {
72 "((N * (N + 1)) / 2 + (M - N) * N)",
73 ((N * (N + 1)) / 2 + (M - N) * N));
75 std::vector<T> log_jacobians(N);
76 for (
int n = 0; n < N; ++n) {
78 log_jacobians[n] = x(pos++);
80 lp +=
sum(log_jacobians);
fvar< T > sum(const std::vector< fvar< T > > &m)
Return the sum of the entries of the specified standard vector.
void check_size_match(const char *function, const char *name_i, T_size1 i, const char *name_j, T_size2 j)
Check if the provided sizes match.
void check_greater_or_equal(const char *function, const char *name, const T_y &y, const T_low &low)
Check if y is greater or equal than low.
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > cholesky_factor_constrain(const Eigen::Matrix< T, Eigen::Dynamic, 1 > &x, int M, int N)
Return the Cholesky factor of the specified size read from the specified vector.
fvar< T > exp(const fvar< T > &x)