| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548 | 
							- /*
 
- Language: Stan
 
- Description: The Stan probabilistic programming language
 
- Author: Jeffrey B. Arnold <jeffrey.arnold@gmail.com>
 
- Website: http://mc-stan.org/
 
- Category: scientific
 
- */
 
- function stan(hljs) {
 
-   // variable names cannot conflict with block identifiers
 
-   const BLOCKS = [
 
-     'functions',
 
-     'model',
 
-     'data',
 
-     'parameters',
 
-     'quantities',
 
-     'transformed',
 
-     'generated'
 
-   ];
 
-   const STATEMENTS = [
 
-     'for',
 
-     'in',
 
-     'if',
 
-     'else',
 
-     'while',
 
-     'break',
 
-     'continue',
 
-     'return'
 
-   ];
 
-   const SPECIAL_FUNCTIONS = [
 
-     'print',
 
-     'reject',
 
-     'increment_log_prob|10',
 
-     'integrate_ode|10',
 
-     'integrate_ode_rk45|10',
 
-     'integrate_ode_bdf|10',
 
-     'algebra_solver'
 
-   ];
 
-   const VAR_TYPES = [
 
-     'int',
 
-     'real',
 
-     'vector',
 
-     'ordered',
 
-     'positive_ordered',
 
-     'simplex',
 
-     'unit_vector',
 
-     'row_vector',
 
-     'matrix',
 
-     'cholesky_factor_corr|10',
 
-     'cholesky_factor_cov|10',
 
-     'corr_matrix|10',
 
-     'cov_matrix|10',
 
-     'void'
 
-   ];
 
-   const FUNCTIONS = [
 
-     'Phi',
 
-     'Phi_approx',
 
-     'abs',
 
-     'acos',
 
-     'acosh',
 
-     'algebra_solver',
 
-     'append_array',
 
-     'append_col',
 
-     'append_row',
 
-     'asin',
 
-     'asinh',
 
-     'atan',
 
-     'atan2',
 
-     'atanh',
 
-     'bernoulli_cdf',
 
-     'bernoulli_lccdf',
 
-     'bernoulli_lcdf',
 
-     'bernoulli_logit_lpmf',
 
-     'bernoulli_logit_rng',
 
-     'bernoulli_lpmf',
 
-     'bernoulli_rng',
 
-     'bessel_first_kind',
 
-     'bessel_second_kind',
 
-     'beta_binomial_cdf',
 
-     'beta_binomial_lccdf',
 
-     'beta_binomial_lcdf',
 
-     'beta_binomial_lpmf',
 
-     'beta_binomial_rng',
 
-     'beta_cdf',
 
-     'beta_lccdf',
 
-     'beta_lcdf',
 
-     'beta_lpdf',
 
-     'beta_rng',
 
-     'binary_log_loss',
 
-     'binomial_cdf',
 
-     'binomial_coefficient_log',
 
-     'binomial_lccdf',
 
-     'binomial_lcdf',
 
-     'binomial_logit_lpmf',
 
-     'binomial_lpmf',
 
-     'binomial_rng',
 
-     'block',
 
-     'categorical_logit_lpmf',
 
-     'categorical_logit_rng',
 
-     'categorical_lpmf',
 
-     'categorical_rng',
 
-     'cauchy_cdf',
 
-     'cauchy_lccdf',
 
-     'cauchy_lcdf',
 
-     'cauchy_lpdf',
 
-     'cauchy_rng',
 
-     'cbrt',
 
-     'ceil',
 
-     'chi_square_cdf',
 
-     'chi_square_lccdf',
 
-     'chi_square_lcdf',
 
-     'chi_square_lpdf',
 
-     'chi_square_rng',
 
-     'cholesky_decompose',
 
-     'choose',
 
-     'col',
 
-     'cols',
 
-     'columns_dot_product',
 
-     'columns_dot_self',
 
-     'cos',
 
-     'cosh',
 
-     'cov_exp_quad',
 
-     'crossprod',
 
-     'csr_extract_u',
 
-     'csr_extract_v',
 
-     'csr_extract_w',
 
-     'csr_matrix_times_vector',
 
-     'csr_to_dense_matrix',
 
-     'cumulative_sum',
 
-     'determinant',
 
-     'diag_matrix',
 
-     'diag_post_multiply',
 
-     'diag_pre_multiply',
 
-     'diagonal',
 
-     'digamma',
 
-     'dims',
 
-     'dirichlet_lpdf',
 
-     'dirichlet_rng',
 
-     'distance',
 
-     'dot_product',
 
-     'dot_self',
 
-     'double_exponential_cdf',
 
-     'double_exponential_lccdf',
 
-     'double_exponential_lcdf',
 
-     'double_exponential_lpdf',
 
-     'double_exponential_rng',
 
-     'e',
 
-     'eigenvalues_sym',
 
-     'eigenvectors_sym',
 
-     'erf',
 
-     'erfc',
 
-     'exp',
 
-     'exp2',
 
-     'exp_mod_normal_cdf',
 
-     'exp_mod_normal_lccdf',
 
-     'exp_mod_normal_lcdf',
 
-     'exp_mod_normal_lpdf',
 
-     'exp_mod_normal_rng',
 
-     'expm1',
 
-     'exponential_cdf',
 
-     'exponential_lccdf',
 
-     'exponential_lcdf',
 
-     'exponential_lpdf',
 
-     'exponential_rng',
 
-     'fabs',
 
-     'falling_factorial',
 
-     'fdim',
 
-     'floor',
 
-     'fma',
 
-     'fmax',
 
-     'fmin',
 
-     'fmod',
 
-     'frechet_cdf',
 
-     'frechet_lccdf',
 
-     'frechet_lcdf',
 
-     'frechet_lpdf',
 
-     'frechet_rng',
 
-     'gamma_cdf',
 
-     'gamma_lccdf',
 
-     'gamma_lcdf',
 
-     'gamma_lpdf',
 
-     'gamma_p',
 
-     'gamma_q',
 
-     'gamma_rng',
 
-     'gaussian_dlm_obs_lpdf',
 
-     'get_lp',
 
-     'gumbel_cdf',
 
-     'gumbel_lccdf',
 
-     'gumbel_lcdf',
 
-     'gumbel_lpdf',
 
-     'gumbel_rng',
 
-     'head',
 
-     'hypergeometric_lpmf',
 
-     'hypergeometric_rng',
 
-     'hypot',
 
-     'inc_beta',
 
-     'int_step',
 
-     'integrate_ode',
 
-     'integrate_ode_bdf',
 
-     'integrate_ode_rk45',
 
-     'inv',
 
-     'inv_Phi',
 
-     'inv_chi_square_cdf',
 
-     'inv_chi_square_lccdf',
 
-     'inv_chi_square_lcdf',
 
-     'inv_chi_square_lpdf',
 
-     'inv_chi_square_rng',
 
-     'inv_cloglog',
 
-     'inv_gamma_cdf',
 
-     'inv_gamma_lccdf',
 
-     'inv_gamma_lcdf',
 
-     'inv_gamma_lpdf',
 
-     'inv_gamma_rng',
 
-     'inv_logit',
 
-     'inv_sqrt',
 
-     'inv_square',
 
-     'inv_wishart_lpdf',
 
-     'inv_wishart_rng',
 
-     'inverse',
 
-     'inverse_spd',
 
-     'is_inf',
 
-     'is_nan',
 
-     'lbeta',
 
-     'lchoose',
 
-     'lgamma',
 
-     'lkj_corr_cholesky_lpdf',
 
-     'lkj_corr_cholesky_rng',
 
-     'lkj_corr_lpdf',
 
-     'lkj_corr_rng',
 
-     'lmgamma',
 
-     'lmultiply',
 
-     'log',
 
-     'log10',
 
-     'log1m',
 
-     'log1m_exp',
 
-     'log1m_inv_logit',
 
-     'log1p',
 
-     'log1p_exp',
 
-     'log2',
 
-     'log_determinant',
 
-     'log_diff_exp',
 
-     'log_falling_factorial',
 
-     'log_inv_logit',
 
-     'log_mix',
 
-     'log_rising_factorial',
 
-     'log_softmax',
 
-     'log_sum_exp',
 
-     'logistic_cdf',
 
-     'logistic_lccdf',
 
-     'logistic_lcdf',
 
-     'logistic_lpdf',
 
-     'logistic_rng',
 
-     'logit',
 
-     'lognormal_cdf',
 
-     'lognormal_lccdf',
 
-     'lognormal_lcdf',
 
-     'lognormal_lpdf',
 
-     'lognormal_rng',
 
-     'machine_precision',
 
-     'matrix_exp',
 
-     'max',
 
-     'mdivide_left_spd',
 
-     'mdivide_left_tri_low',
 
-     'mdivide_right_spd',
 
-     'mdivide_right_tri_low',
 
-     'mean',
 
-     'min',
 
-     'modified_bessel_first_kind',
 
-     'modified_bessel_second_kind',
 
-     'multi_gp_cholesky_lpdf',
 
-     'multi_gp_lpdf',
 
-     'multi_normal_cholesky_lpdf',
 
-     'multi_normal_cholesky_rng',
 
-     'multi_normal_lpdf',
 
-     'multi_normal_prec_lpdf',
 
-     'multi_normal_rng',
 
-     'multi_student_t_lpdf',
 
-     'multi_student_t_rng',
 
-     'multinomial_lpmf',
 
-     'multinomial_rng',
 
-     'multiply_log',
 
-     'multiply_lower_tri_self_transpose',
 
-     'neg_binomial_2_cdf',
 
-     'neg_binomial_2_lccdf',
 
-     'neg_binomial_2_lcdf',
 
-     'neg_binomial_2_log_lpmf',
 
-     'neg_binomial_2_log_rng',
 
-     'neg_binomial_2_lpmf',
 
-     'neg_binomial_2_rng',
 
-     'neg_binomial_cdf',
 
-     'neg_binomial_lccdf',
 
-     'neg_binomial_lcdf',
 
-     'neg_binomial_lpmf',
 
-     'neg_binomial_rng',
 
-     'negative_infinity',
 
-     'normal_cdf',
 
-     'normal_lccdf',
 
-     'normal_lcdf',
 
-     'normal_lpdf',
 
-     'normal_rng',
 
-     'not_a_number',
 
-     'num_elements',
 
-     'ordered_logistic_lpmf',
 
-     'ordered_logistic_rng',
 
-     'owens_t',
 
-     'pareto_cdf',
 
-     'pareto_lccdf',
 
-     'pareto_lcdf',
 
-     'pareto_lpdf',
 
-     'pareto_rng',
 
-     'pareto_type_2_cdf',
 
-     'pareto_type_2_lccdf',
 
-     'pareto_type_2_lcdf',
 
-     'pareto_type_2_lpdf',
 
-     'pareto_type_2_rng',
 
-     'pi',
 
-     'poisson_cdf',
 
-     'poisson_lccdf',
 
-     'poisson_lcdf',
 
-     'poisson_log_lpmf',
 
-     'poisson_log_rng',
 
-     'poisson_lpmf',
 
-     'poisson_rng',
 
-     'positive_infinity',
 
-     'pow',
 
-     'print',
 
-     'prod',
 
-     'qr_Q',
 
-     'qr_R',
 
-     'quad_form',
 
-     'quad_form_diag',
 
-     'quad_form_sym',
 
-     'rank',
 
-     'rayleigh_cdf',
 
-     'rayleigh_lccdf',
 
-     'rayleigh_lcdf',
 
-     'rayleigh_lpdf',
 
-     'rayleigh_rng',
 
-     'reject',
 
-     'rep_array',
 
-     'rep_matrix',
 
-     'rep_row_vector',
 
-     'rep_vector',
 
-     'rising_factorial',
 
-     'round',
 
-     'row',
 
-     'rows',
 
-     'rows_dot_product',
 
-     'rows_dot_self',
 
-     'scaled_inv_chi_square_cdf',
 
-     'scaled_inv_chi_square_lccdf',
 
-     'scaled_inv_chi_square_lcdf',
 
-     'scaled_inv_chi_square_lpdf',
 
-     'scaled_inv_chi_square_rng',
 
-     'sd',
 
-     'segment',
 
-     'sin',
 
-     'singular_values',
 
-     'sinh',
 
-     'size',
 
-     'skew_normal_cdf',
 
-     'skew_normal_lccdf',
 
-     'skew_normal_lcdf',
 
-     'skew_normal_lpdf',
 
-     'skew_normal_rng',
 
-     'softmax',
 
-     'sort_asc',
 
-     'sort_desc',
 
-     'sort_indices_asc',
 
-     'sort_indices_desc',
 
-     'sqrt',
 
-     'sqrt2',
 
-     'square',
 
-     'squared_distance',
 
-     'step',
 
-     'student_t_cdf',
 
-     'student_t_lccdf',
 
-     'student_t_lcdf',
 
-     'student_t_lpdf',
 
-     'student_t_rng',
 
-     'sub_col',
 
-     'sub_row',
 
-     'sum',
 
-     'tail',
 
-     'tan',
 
-     'tanh',
 
-     'target',
 
-     'tcrossprod',
 
-     'tgamma',
 
-     'to_array_1d',
 
-     'to_array_2d',
 
-     'to_matrix',
 
-     'to_row_vector',
 
-     'to_vector',
 
-     'trace',
 
-     'trace_gen_quad_form',
 
-     'trace_quad_form',
 
-     'trigamma',
 
-     'trunc',
 
-     'uniform_cdf',
 
-     'uniform_lccdf',
 
-     'uniform_lcdf',
 
-     'uniform_lpdf',
 
-     'uniform_rng',
 
-     'variance',
 
-     'von_mises_lpdf',
 
-     'von_mises_rng',
 
-     'weibull_cdf',
 
-     'weibull_lccdf',
 
-     'weibull_lcdf',
 
-     'weibull_lpdf',
 
-     'weibull_rng',
 
-     'wiener_lpdf',
 
-     'wishart_lpdf',
 
-     'wishart_rng'
 
-   ];
 
-   const DISTRIBUTIONS = [
 
-     'bernoulli',
 
-     'bernoulli_logit',
 
-     'beta',
 
-     'beta_binomial',
 
-     'binomial',
 
-     'binomial_logit',
 
-     'categorical',
 
-     'categorical_logit',
 
-     'cauchy',
 
-     'chi_square',
 
-     'dirichlet',
 
-     'double_exponential',
 
-     'exp_mod_normal',
 
-     'exponential',
 
-     'frechet',
 
-     'gamma',
 
-     'gaussian_dlm_obs',
 
-     'gumbel',
 
-     'hypergeometric',
 
-     'inv_chi_square',
 
-     'inv_gamma',
 
-     'inv_wishart',
 
-     'lkj_corr',
 
-     'lkj_corr_cholesky',
 
-     'logistic',
 
-     'lognormal',
 
-     'multi_gp',
 
-     'multi_gp_cholesky',
 
-     'multi_normal',
 
-     'multi_normal_cholesky',
 
-     'multi_normal_prec',
 
-     'multi_student_t',
 
-     'multinomial',
 
-     'neg_binomial',
 
-     'neg_binomial_2',
 
-     'neg_binomial_2_log',
 
-     'normal',
 
-     'ordered_logistic',
 
-     'pareto',
 
-     'pareto_type_2',
 
-     'poisson',
 
-     'poisson_log',
 
-     'rayleigh',
 
-     'scaled_inv_chi_square',
 
-     'skew_normal',
 
-     'student_t',
 
-     'uniform',
 
-     'von_mises',
 
-     'weibull',
 
-     'wiener',
 
-     'wishart'
 
-   ];
 
-   return {
 
-     name: 'Stan',
 
-     aliases: [ 'stanfuncs' ],
 
-     keywords: {
 
-       $pattern: hljs.IDENT_RE,
 
-       title: BLOCKS,
 
-       keyword: STATEMENTS.concat(VAR_TYPES).concat(SPECIAL_FUNCTIONS),
 
-       built_in: FUNCTIONS
 
-     },
 
-     contains: [
 
-       hljs.C_LINE_COMMENT_MODE,
 
-       hljs.COMMENT(
 
-         /#/,
 
-         /$/,
 
-         {
 
-           relevance: 0,
 
-           keywords: {
 
-             'meta-keyword': 'include'
 
-           }
 
-         }
 
-       ),
 
-       hljs.COMMENT(
 
-         /\/\*/,
 
-         /\*\//,
 
-         {
 
-           relevance: 0,
 
-           // highlight doc strings mentioned in Stan reference
 
-           contains: [
 
-             {
 
-               className: 'doctag',
 
-               begin: /@(return|param)/
 
-             }
 
-           ]
 
-         }
 
-       ),
 
-       {
 
-         // hack: in range constraints, lower must follow "<"
 
-         begin: /<\s*lower\s*=/,
 
-         keywords: 'lower'
 
-       },
 
-       {
 
-         // hack: in range constraints, upper must follow either , or <
 
-         // <lower = ..., upper = ...> or <upper = ...>
 
-         begin: /[<,]\s*upper\s*=/,
 
-         keywords: 'upper'
 
-       },
 
-       {
 
-         className: 'keyword',
 
-         begin: /\btarget\s*\+=/,
 
-         relevance: 10
 
-       },
 
-       {
 
-         begin: '~\\s*(' + hljs.IDENT_RE + ')\\s*\\(',
 
-         keywords: DISTRIBUTIONS
 
-       },
 
-       {
 
-         className: 'number',
 
-         variants: [
 
-           {
 
-             begin: /\b\d+(?:\.\d*)?(?:[eE][+-]?\d+)?/
 
-           },
 
-           {
 
-             begin: /\.\d+(?:[eE][+-]?\d+)?\b/
 
-           }
 
-         ],
 
-         relevance: 0
 
-       },
 
-       {
 
-         className: 'string',
 
-         begin: '"',
 
-         end: '"',
 
-         relevance: 0
 
-       }
 
-     ]
 
-   };
 
- }
 
- module.exports = stan;
 
 
  |