functions { #include normal_copula.stanfunctions } data { int N; int K; matrix[N, K] x; complex_row_vector[K] z; } transformed data { complex zi = 1+3.14i; zi = zi * 0i; complex yi = to_complex(0, 1.1) + to_complex(0.0, 2.2) + to_complex(); real x = get_real(3i - 40e-3i + 1e10i); }› parameters { array[K - 1] real mu; array[K + 1] real sigma; cholesky_factor_corr[K] L; tuple(real, tuple(real, real)) t; } model { target += normal_lpdf(x[ : , 1] | mu[1], sigma[1]); target += gumbel_lpdf(x[ : , 2] | mu[2], sigma[2]); target += lognormal_lpdf(x[ : , 3] | mu[3], sigma[3]); target += weibull_lpdf(x[ : , 4] | sigma[4], sigma[5]); { matrix[K, N] y; for (n in 1 : N) { y[1, n] = inv_Phi(normal_cdf(x[n, 1] | mu[1], sigma[1])); y[2, n] = inv_Phi(gumbel_cdf(x[n, 2] | mu[2], sigma[2])); y[3, n] = inv_Phi(lognormal_cdf(x[n, 3] | mu[3], sigma[3])); y[4, n] = inv_Phi(weibull_cdf(x[n, 4] | sigma[4], sigma[5])); } y ~ multi_normal(L); } } generated quantities { matrix[K, K] Sigma = multiply_lower_tri_self_transpose(L); }