highlight.stan

/* Stan Highlighting Example
 This file contains a syntatically correct but nonsensical Stan program that
 includes almost every feature of the language needed to validate syntax
 highlighters. It will compile (as of Stan 2.17.1), but it does nothing
 useful.
 Author: Jeffrey Arnold <jeffrey.anold@gmail.com>
 Copyright: Jeffrey Arnold (2018)
 License: MIT
*/
// line comment
# deprecated line comment
functions {
 #include stuff.stan
 #include "morestuff.stan"
 #include 'moststuff.stan'
 #include <evenmorestuff.stan>
 // declarations
 void oof(real x);
 // definitions
 // return types
 void oof(real x) {
 print("print ", x);
 }
 /*
@param x A number
@return x + 1
 */
 real foo(real x) {
 return x;
 }
 int bar(int x) {
 return x;
 }
 vector baz(vector x) {
 return x;
 }
 row_vector qux(row_vector x) {
 return x;
 }
 matrix quux(matrix x) {
 return x;
 }
 // numbers of arguments
 void corge() {
 print("no parameters");
 }
 void grault(int a, real b, vector c, row_vector d, matrix f) {
 print("many parameters");
 }
 void garply(real a, real[] b, real[,] c, real[,,] d) {
 print("array arguments");
 }
 // array return types
 int[] waldo(int[] x) {
 return x;
 }
 int[,] fred(int[,] x) {
 return x;
 }
 int[,,] plough(int[,,] x) {
 return x;
 }
 // data only function argument
 real plugh(data real x) {
 return x;
 }
 // ode function
 real[] ode_func(real a, real[] b, real[] c, real[] d, int[] e) {
 return b;
 }
}
data {
 // non-int variable types
 int x_int;
 real x_real;
 real y_real;
 vector[1] x_vector;
 ordered[1] x_ordered;
 positive_ordered[1] x_positive_ordered;
 simplex[1] x_simplex;
 unit_vector[1] x_unit_vector;
 row_vector[1] x_row_vector;
 matrix[1, 1] x_matrix;
 cholesky_factor_corr[2] x_cholesky_factor_corr;
 cholesky_factor_cov[2] x_cholesky_factor_cov;
 cholesky_factor_cov[2, 3] x_cholesky_factor_cov_2;
 corr_matrix[2] x_corr_matrix;
 cov_matrix[2] x_cov_matrix;
 // range constraints
 real<lower = 0., upper = 1.> alpha;
 real<lower = 0.> bravo;
 real<upper = 1.> charlie;
 // arrays
 int echo[1];
 int foxtrot[1, 1];
 int golf[1, 1, 1];
 // identifier with all valid letters
 real abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789;
 // hard pattern
 real<lower = (bravo < charlie), upper = (bravo> charlie)> ranger;
 // identifier patterns
 real a;
 real a3;
 real a_3;
 real Sigma;
 real my_cpp_style_variable;
 real myCamelCaseVariable;
 real abcdefghijklmnojk;
 // names beginning with keywords
 real iffffff;
 real whilest;
 // name ending with truncation
 real fooT;
 // new array syntax
 array [N] real foo_new;
}
transformed data {
 // declaration and assignment
 int india = 1;
 real romeo = 1.0;
 row_vector[2] victor = [1, 2];
 matrix[2, 2] mike = [[1, 2], [3, 4]];
 real sierra[2] = {1., 2.};
 complex zulu = 3+4.1i;
}
parameters {
 real hotel;
 real<offset = 0., multiplier = 1.> alpha;
 sum_to_zero_vector[3] zero_sum_game;
}
transformed parameters {
 real juliette;
 juliette = hotel * 2.;
 // increment log-determinant of the jacobian
 jacobian += 1.;
}
model {
 real x;
 int k;
 vector[2] y = [1., 1.]';
 matrix[2, 2] A = [[1., 1.], [1., 1.]];
 real odeout[2, 2];
 real algout[2, 2];
 // if else statements
 if (x_real < 0) x = 0.;
 if (x_real < 0) {
 x = 0.;
 }
 if (x_real < 0) x = 0.;
 else x = 1.;
 if (x_real < 0) {
 x = 0.;
 } else {
 x = 1.;
 }
 if (x_real < 0) x = 0.;
 else if (x_real> 1) x = 1.;
 else x = 0.5;
 if (x_real < 0) {
 x = 0.;
 } else if (x_real> 1) {
 x = 1.;
 } else {
 x = 0.5;
 }
 // for loops
 for (i in 1:5) {
 print("i = ", i);
 }
 // for (j in echo) {
 // print("j = ", j);
 // }
 // while loop
 while (1) {
 break;
 continue;
 }
 // reject statement
 reject("reject statment ", x_real);
 // print statement
 print("print statement ", x_real);
 print("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_~@#$%^&*`'-+={}[].,;: ");
 // fatal_error statement (hard exit)
 fatal_error("fatal error statement", x_real);
 // increment log probability statements;
 target += 1.;
 // valid integer literals
 k = 0;
 k = 1;
 k = -1;
 k = 256;
 k = -127098;
 k = 007;
 // valid real literals
 x = 0.0;
 x = 1.0;
 x = 3.14;
 x = 003.14;
 x = -217.9387;
 x = 0.123;
 x = .123;
 x = 1.;
 x = -0.123;
 x = -.123;
 x = -1.;
 x = 12e34;
 x = 12E34;
 x = 12.e34;
 x = 12.E34;
 x = 12.0e34;
 x = 12.0E34;
 x = .1e34;
 x = .1E34;
 x = -12e34;
 x = -12E34;
 x = -12.e34;
 x = -12.E34;
 x = -12.0e34;
 x = -12.0E34;
 x = -.1e34;
 x = -.1E34;
 x = 12e-34;
 x = 12E-34;
 x = 12.e-34;
 x = 12.E-34;
 x = 12.0e-34;
 x = 12.0E-34;
 x = .1e-34;
 x = .1E-34;
 x = -12e-34;
 x = -12E-34;
 x = -12.e-34;
 x = -12.E-34;
 x = -12.0e-34;
 x = -12.0E-34;
 x = -.1e-34;
 x = -.1E-34;
 x = 12e+34;
 x = 12E+34;
 x = 12.e+34;
 x = 12.E+34;
 x = 12.0e+34;
 x = 12.0E+34;
 x = .1e+34;
 x = .1E+34;
 x = -12e+34;
 x = -12E+34;
 x = -12.e+34;
 x = -12.E+34;
 x = -12.0e+34;
 x = -12.0E+34;
 x = -.1e+34;
 x = -.1E+34;
 // imaginary literals
 complex z = 3 + 3i;
 z = 2.3i;
 z = 3.4e10i;
 z = 0i;
 // assignment statements
 x = 1;
 x += 1.;
 x -= 1.;
 x *= 1.;
 x /= 1.;
 y .*= x_vector;
 y ./= x_vector;
 // operators
 x = x_real && 1;
 x = x_real || 1;
 x = x_real < 1.;
 x = x_real <= 1.;
 x = x_real> 1.;
 x = x_real>= 1.;
 x = x_real + 1.;
 x = x_real - 1.;
 x = x_real * 1.;
 x = x_real / 1.;
 x = x_real ^ 2.;
 x = x_real % 2;
 x = !x_real;
 x = +x_real;
 x = -x_real;
 x = x_int ? x_real : 0.;
 y = x_row_vector';
 y = x_matrix \ x_vector;
 y = x_vector .* x_vector;
 y = x_vector ./ x_vector;
 // parenthized expression
 x = (x_real + x_real);
 // block statement
 {
 real z;
 z = 1.;
 }
 profile("profile-test") {
 real z;
 z = 1.;
 }
 // built-in functions
 x = log(1.);
 x = exp(1.);
 // non-built-in function
 x = foo(1.);
 // constants and nullary functions
 x = machine_precision();
 x = pi();
 x = e();
 x = sqrt2();
 x = log2();
 x = log10();
 // special values
 x = not_a_number();
 x = positive_infinity();
 x = negative_infinity();
 x = machine_precision();
 // log probability
 x = target();
 // sampling statement
 x_real ~ normal(0., 1.);
 // truncation
 x_real ~ normal(0., 1.) T[-1., 1.];
 x_real ~ normal(0., 1.) T[, 1.];
 x_real ~ normal(0., 1.) T[-1., ];
 x_real ~ normal(0., 1.) T[ , ];
 // transformation on lhs of sampling
 log(x_real) ~ normal(0., 1.);
 // lhs indexes
 y[1] = 1.;
 A[1, 2] = 1.;
 A[1][2] = 1.;
 // special functions
 odeout = integrate_ode(ode_func, {1.}, x_real, {1.}, {1.}, {1.}, {0});
 odeout = integrate_ode_bdf(ode_func, {1.}, x_real, {1.}, {1.}, {1.}, {0},
 x_real, x_real, x_int);
 odeout = integrate_ode_rk45(ode_func, {1.}, x_real, {1.}, {1.}, {1.}, {0},
 x_real, x_real, x_int);
 // algout = algebra_solver(algebra_func, x_vector, x_vector, {1.}, {0});
 // distribution functions
 x = normal_lpdf(0.5 | 0., 1.);
 x = normal_cdf(0.5, 0., 1.);
 x = normal_lcdf(0.5 | 0., 1.);
 x = normal_lccdf(0.5 | 0., 1.);
 x = binomial_lpmf(1 | 2, 0.5);
 // deprecated features
 foo <- 1;
 increment_log_prob(0.0);
 y_hat = integrate_ode(sho, y0, t0, ts, theta, x_r, x_i);
 x = get_lp();
 x = multiply_log(1.0, 1.0);
 x = binomial_coefficient_log(1.0, 1.0);
 // deprecated distribution functions versions
 x = normal_log(0.5, 0.0, 1.0);
 x = normal_cdf_log(0.5, 0.0, 1.0);
 x = normal_ccdf_log(0.5, 0.0, 1.0);
}
generated quantities {
 real Y;
 // rng function
 Y = normal_rng(0., 1.);
 tuple(real, int) tupl = (1.5, 2);
 complex_matrix C_mike = mike;
}

AltStyle によって変換されたページ (->オリジナル) /