Skip to content

Commit e9cac29

Browse files
committed
Formatting
1 parent 2c06a47 commit e9cac29

File tree

2 files changed

+34
-36
lines changed

2 files changed

+34
-36
lines changed

functions/copula/centered_gaussian_copula.stanfunctions

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ array[] matrix normal_marginal(matrix y, matrix mu_glm, vector sigma) {
3131
array[2] matrix[N, J] rtn;
3232
// Initialise the jacobian adjustments to zero, as vectorised lpdf will be used
3333
rtn[2] = rep_matrix(0, N, J);
34-
35-
for (j in 1:J) {
36-
rtn[1][ : , j] = (y[: , j] - mu_glm[ : , j]) / sigma[j];
37-
rtn[2][1, j] = normal_lpdf(y[ : , j] | mu_glm[ : , j], sigma[j]);
34+
35+
for (j in 1 : J) {
36+
rtn[1][ : , j] = (y[ : , j] - mu_glm[ : , j]) / sigma[j];
37+
rtn[2][1, j] = normal_lpdf(y[ : , j] | mu_glm[ : , j], sigma[j]);
3838
}
39-
39+
4040
return rtn;
4141
}
4242

@@ -63,11 +63,11 @@ array[] matrix bernoulli_marginal(array[,] int y, matrix mu_glm, matrix u_raw) {
6363
int J = cols(mu_glm);
6464
matrix[N, J] matrix_y = to_matrix(y);
6565
matrix[N, J] mu_glm_logit = 1 - inv_logit(mu_glm);
66-
66+
6767
matrix[N, J] Lbound = matrix_y .* mu_glm_logit;
6868
matrix[N, J] UmL = fabs(matrix_y - mu_glm_logit);
69-
70-
return { inv_Phi(Lbound + UmL .* u_raw), log(UmL) };
69+
70+
return {inv_Phi(Lbound + UmL .* u_raw), log(UmL)};
7171
}
7272

7373
/**
@@ -89,15 +89,15 @@ array[] matrix bernoulli_marginal(array[,] int y, matrix mu_glm, matrix u_raw) {
8989
* @return 2D array of matrices containing the random variables
9090
* and jacobian adjustments
9191
*/
92-
array[] matrix binomial_marginal(array[,] int num, array[,] int den,
93-
matrix mu_glm, matrix u_raw) {
92+
array[] matrix binomial_marginal(array[,] int num, array[,] int den, matrix mu_glm,
93+
matrix u_raw) {
9494
int N = rows(mu_glm);
9595
int J = cols(mu_glm);
9696
matrix[N, J] mu_glm_logit = inv_logit(mu_glm);
9797
array[2] matrix[N, J] rtn;
98-
99-
for (j in 1:J) {
100-
for (n in 1:N) {
98+
99+
for (j in 1 : J) {
100+
for (n in 1 : N) {
101101
real Ubound = binomial_cdf(num[n, j] | den[n, j], mu_glm_logit[n, j]);
102102
real Lbound = 0;
103103
if (num[n, j] > 0) {
@@ -108,7 +108,7 @@ array[] matrix binomial_marginal(array[,] int num, array[,] int den,
108108
rtn[2][n, j] = log(UmL);
109109
}
110110
}
111-
111+
112112
return rtn;
113113
}
114114

@@ -135,9 +135,9 @@ array[] matrix poisson_marginal(array[,] int y, matrix mu_glm, matrix u_raw) {
135135
int J = cols(mu_glm);
136136
matrix[N, J] mu_glm_exp = exp(mu_glm);
137137
array[2] matrix[N, J] rtn;
138-
139-
for (j in 1:J) {
140-
for (n in 1:N) {
138+
139+
for (j in 1 : J) {
140+
for (n in 1 : N) {
141141
real Ubound = poisson_cdf(y[n, j] | mu_glm_exp[n, j]);
142142
real Lbound = 0;
143143
if (y[n, j] > 0) {
@@ -148,11 +148,10 @@ array[] matrix poisson_marginal(array[,] int y, matrix mu_glm, matrix u_raw) {
148148
rtn[2][n, j] = log(UmL);
149149
}
150150
}
151-
151+
152152
return rtn;
153153
}
154154

155-
156155
/**
157156
* Mixed Copula Log-Probability Function
158157
*
@@ -167,23 +166,23 @@ real centered_gaussian_copula_cholesky_lpdf(array[,] matrix marginals, matrix L)
167166
int N = rows(marginals[1][1]);
168167
int J = rows(L);
169168
matrix[N, J] U;
170-
169+
171170
// Iterate through marginal arrays, concatenating the outcome matrices by column
172171
// and aggregating the log-likelihoods (from continuous marginals) and jacobian
173172
// adjustments (from discrete marginals)
174173
real adj = 0;
175174
int pos = 1;
176-
for (m in 1:size(marginals)) {
175+
for (m in 1 : size(marginals)) {
177176
int curr_cols = cols(marginals[m][1]);
178-
179-
U[ : , pos:(pos + curr_cols - 1)] = marginals[m][1];
180-
177+
178+
U[ : , pos : (pos + curr_cols - 1)] = marginals[m][1];
179+
181180
adj += sum(marginals[m][2]);
182181
pos += curr_cols;
183182
}
184-
183+
185184
// Return the sum of the log-probability for copula outcomes and jacobian adjustments
186185
return multi_normal_cholesky_copula_lpdf(U | L) + adj;
187186
}
188187

189-
/** @} */
188+
/** @} */

functions/copula/normal_copula.stanfunctions

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
*/
3131
real normal_copula_lpdf(real u, real v, real rho) {
3232
real rho_sq = square(rho);
33-
33+
3434
return (0.5 * rho * (-2. * u * v + square(u) * rho + square(v) * rho)) / (-1. + rho_sq)
3535
- 0.5 * log1m(rho_sq);
3636
}
@@ -52,12 +52,12 @@ real normal_copula_lpdf(real u, real v, real rho) {
5252
real normal_copula_vector_lpdf(vector u, vector v, real rho) {
5353
int N = num_elements(u);
5454
real rho_sq = square(rho);
55-
55+
5656
real a1 = 0.5 * rho;
5757
real a2 = rho_sq - 1;
5858
real a3 = 0.5 * log1m(rho_sq);
5959
real x = -2 * u' * v + rho * (dot_self(u) + dot_self(v));
60-
60+
6161
return a1 * x / a2 - N * a3;
6262
}
6363

@@ -97,7 +97,7 @@ real multi_normal_copula_lpdf(matrix u, matrix L) {
9797
int N = cols(u);
9898
real inv_sqrt_det_log = sum(log(diagonal(L)));
9999
matrix[K, N] x = mdivide_left_tri_low(L, u);
100-
100+
101101
return -N * inv_sqrt_det_log - 0.5 * sum(columns_dot_self(x) - columns_dot_self(u));
102102
}
103103

@@ -122,10 +122,10 @@ real bivariate_normal_copula_cdf(vector u, real rho) {
122122
real alpha_u = a * (pv / pu - rho);
123123
real alpha_v = a * (pu / pv - rho);
124124
real d = 0;
125-
126-
if (u[1] < 0.5 && u[2] >= 0.5 || u[1] >= 0.5 && u[2] < 0.5)
125+
126+
if (u[1] < 0.5 && u[2] >= 0.5 || u[1] >= 0.5 && u[2] < 0.5)
127127
d = 0.5;
128-
128+
129129
return avg_uv - owens_t(pu, alpha_u) - owens_t(pv, alpha_v) - d;
130130
}
131131

@@ -165,7 +165,6 @@ real bivariate_normal_copula_cdf(vector u, real rho) {
165165
* @return log density of the distribution
166166
*/
167167

168-
169168
/**
170169
* Multivariate Normal Copula lpdf (Cholesky parameterisation)
171170
*
@@ -176,7 +175,7 @@ real bivariate_normal_copula_cdf(vector u, real rho) {
176175
real multi_normal_cholesky_copula_lpdf(matrix U, matrix L) {
177176
int N = rows(U);
178177
int J = cols(U);
179-
matrix[J,J] Gammainv = chol2inv(L);
178+
matrix[J, J] Gammainv = chol2inv(L);
180179
return -N * sum(log(diagonal(L))) - 0.5 * sum(add_diag(Gammainv, -1.0) .* crossprod(U));
181180
}
182-
/** @} */
181+
/** @} */

0 commit comments

Comments
 (0)