diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index a8a7138ce4..2035703857 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -299,42 +299,62 @@ let extract_transform_args var = function |TupleTransformation _ | StochasticRow | StochasticColumn -> [] -let rec param_size transform sizedtype = - let rec shrink_eigen f st = - match st with - | SizedType.SArray (t, d) -> SizedType.SArray (shrink_eigen f t, d) - | SVector (mem_pattern, d) | SMatrix (mem_pattern, d, _) -> - SVector (mem_pattern, f d) - | SInt | SReal | SComplex | SRowVector _ | STuple _ | SComplexRowVector _ - |SComplexVector _ | SComplexMatrix _ -> +(** Allows [shrink_helper] to operate either on each dimension independently + or on both matrix dimensions at once *) +type size_change = + | Univariate of (Expr.Typed.t -> Expr.Typed.t) + | Multivariate of (Expr.Typed.t -> Expr.Typed.t -> Expr.Typed.t) + +(** We need to compute somewhat arbitrary new sizes for the unconstrained + parameters. This function handles the primary cases: + + - A vector of size N is transformed to a vector of size (f N) + - A matrix of size N x M is transformed to a vector of size (f N) x (f_d2 M) + - A matrix of size N x N is transformed to a vector of size (f N M) + - Arrays of the above are handled recursively +*) +let rec shrink_helper (f : size_change) f_d2 st = + let f_assert_univariate d = + match f with + | Univariate f -> f d + | Multivariate _ -> Common.ICE.internal_compiler_error [%message - "Expecting SVector or SMatrix, got " (st : Expr.Typed.t SizedType.t)] - in - let rec shrink_eigen_mat f st = - match st with - | SizedType.SArray (t, d) -> SizedType.SArray (shrink_eigen_mat f t, d) - | SMatrix (mem_pattern, d1, d2) -> SVector (mem_pattern, f d1 d2) - | SInt | SReal | SComplex | SRowVector _ | SVector _ | STuple _ - |SComplexRowVector _ | SComplexVector _ | SComplexMatrix _ -> - Common.ICE.internal_compiler_error - [%message "Expecting SMatrix, got " (st : Expr.Typed.t SizedType.t)] - in + "To shrink a vector, the first argument must be a univariate \ + function " + (st : Expr.Typed.t SizedType.t)] in + match st with + | SizedType.SArray (t, d) -> SizedType.SArray (shrink_helper f f_d2 t, d) + | SVector (mem_pattern, d) -> SVector (mem_pattern, f_assert_univariate d) + | SRowVector (mem_pattern, d) -> + SRowVector (mem_pattern, f_assert_univariate d) + | SMatrix (mem_pattern, d1, d2) -> ( + match f with + | Univariate f_d1 -> SMatrix (mem_pattern, f_d1 d1, f_d2 d2) + | Multivariate f -> SVector (mem_pattern, f d1 d2)) + | SInt | SReal | SComplex | STuple _ | SComplexRowVector _ + |SComplexVector _ | SComplexMatrix _ -> + Common.ICE.internal_compiler_error + [%message + "Expecting SVector or SMatrix, got " (st : Expr.Typed.t SizedType.t)] + +let rec transform_sizedtype transformation sizedtype = + (* Functions for computing the new sizetype after some transformation *) + let shrink_eigen_mat f st = + (* Matrices become vectors, with size computed by [f] *) + shrink_helper (Multivariate f) Fn.id st in + let shrink_eigen_vec f st = + (* Matrices are mapped to vectors, only depending on their first dimension for sizing *) + shrink_eigen_mat (fun x _ -> f x) st in + let shrink_eigen f1 f2 st = + (* Types don't change, just sizes *) + shrink_helper (Univariate f1) f2 st in + (* Helper functions for computing the new sizes *) + let minus_one d = Expr.Helpers.(binop d Minus (int 1)) in let k_choose_2 k = Expr.Helpers.(binop (binop k Times (binop k Minus (int 1))) Divide (int 2)) in - let rec stoch_size f1 f2 st = - match st with - | SizedType.SMatrix (mem_pattern, d1, d2) -> - SizedType.SMatrix (mem_pattern, f1 d1, f2 d2) - | SArray (t, d) -> SizedType.SArray (stoch_size f1 f2 t, d) - | SInt | SReal | SComplex | SRowVector _ | SVector _ | STuple _ - |SComplexRowVector _ | SComplexVector _ | SComplexMatrix _ -> - Common.ICE.internal_compiler_error - [%message "Expecting SMatrix, got " (st : Expr.Typed.t SizedType.t)] - in - let min_one d = Expr.Helpers.(binop d Minus (int 1)) in - match transform with + match transformation with | Transformation.Identity | Lower _ | Upper _ |LowerUpper (_, _) |Offset _ | Multiplier _ @@ -348,14 +368,17 @@ let rec param_size transform sizedtype = SizedType.build_sarray dims (SizedType.STuple (List.map subtypes_transforms ~f:(fun (st, trans) -> - param_size trans st))) - | Simplex | SumToZero -> - shrink_eigen (fun d -> Expr.Helpers.(binop d Minus (int 1))) sizedtype - | CholeskyCorr | Correlation -> shrink_eigen k_choose_2 sizedtype - | StochasticRow -> stoch_size Fn.id min_one sizedtype - | StochasticColumn -> stoch_size min_one Fn.id sizedtype + transform_sizedtype trans st))) + | SumToZero -> shrink_eigen minus_one minus_one sizedtype + | Simplex | StochasticColumn -> shrink_eigen minus_one Fn.id sizedtype + | StochasticRow -> shrink_eigen Fn.id minus_one sizedtype + | CholeskyCorr | Correlation -> shrink_eigen_vec k_choose_2 sizedtype + | Covariance -> + shrink_eigen_vec + (fun k -> Expr.Helpers.(binop k Plus (k_choose_2 k))) + sizedtype | CholeskyCov -> - (* (N * (N + 1)) / 2 + (M - N) * N *) + (* choose(N, 2) + (M - N) * N *) shrink_eigen_mat (fun m n -> Expr.Helpers.( @@ -364,10 +387,6 @@ let rec param_size transform sizedtype = Plus (binop (binop m Minus n) Times n))) sizedtype - | Covariance -> - shrink_eigen - (fun k -> Expr.Helpers.(binop k Plus (k_choose_2 k))) - sizedtype let rec check_decl var decl_type' decl_trans smeta adlevel = let check_tuple var trans_subtypes = @@ -855,7 +874,8 @@ let trans_block ud_dists declc block prog = , smeta.Ast.loc , Program. { out_constrained_st= type_ - ; out_unconstrained_st= param_size transform type_ + ; out_unconstrained_st= + transform_sizedtype transform type_ ; out_block= block ; out_trans= transform } ) in let stmts = diff --git a/src/frontend/Pretty_printing.ml b/src/frontend/Pretty_printing.ml index d621e4d5c2..58de389445 100644 --- a/src/frontend/Pretty_printing.ml +++ b/src/frontend/Pretty_printing.ml @@ -360,7 +360,10 @@ let rec pp_transformed_type ppf (st, trans) = | PositiveOrdered -> pf ppf "positive_ordered%a" sizes_fmt () | Simplex -> pf ppf "simplex%a" sizes_fmt () | UnitVector -> pf ppf "unit_vector%a" sizes_fmt () - | SumToZero -> pf ppf "sum_to_zero_vector%a" sizes_fmt () + | SumToZero -> + let ty_str = + match st with SizedType.SMatrix _ -> "matrix" | _ -> "vector" in + pf ppf "sum_to_zero_%s%a" ty_str sizes_fmt () | CholeskyCorr -> pf ppf "cholesky_factor_corr%a" cov_sizes_fmt () | CholeskyCov -> pf ppf "cholesky_factor_cov%a" cov_sizes_fmt () | Correlation -> pf ppf "corr_matrix%a" cov_sizes_fmt () diff --git a/src/frontend/lexer.mll b/src/frontend/lexer.mll index 19024bdbd6..79d51da995 100644 --- a/src/frontend/lexer.mll +++ b/src/frontend/lexer.mll @@ -133,7 +133,8 @@ rule token = parse Parser.POSITIVEORDERED } | "simplex" { lexer_logger "simplex" ; Parser.SIMPLEX } | "unit_vector" { lexer_logger "unit_vector" ; Parser.UNITVECTOR } - | "sum_to_zero_vector" { lexer_logger "sum_to_zero_vector" ; Parser.SUMTOZERO } + | "sum_to_zero_vector" { lexer_logger "sum_to_zero_vector" ; Parser.SUMTOZEROVEC } + | "sum_to_zero_matrix" { lexer_logger "sum_to_zero_matrix" ; Parser.SUMTOZEROMAT } | "cholesky_factor_corr" { lexer_logger "cholesky_factor_corr" ; Parser.CHOLESKYFACTORCORR } | "cholesky_factor_cov" { lexer_logger "cholesky_factor_cov" ; diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index 5e7a6b663c..3231a2fc54 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -2,7 +2,7 @@ program: WHILE ## ## Concrete syntax: while ## -## Ends in an error in state: 406. +## Ends in an error in state: 407. ## ## program' -> . program [ # ] ## @@ -20,9 +20,9 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCORR WHILE ## ## Concrete syntax: data { cholesky_factor_corr while ## -## Ends in an error in state: 569. +## Ends in an error in state: 576. ## -## top_var_type -> CHOLESKYFACTORCORR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCORR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCORR @@ -42,9 +42,9 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK WHILE ## ## Concrete syntax: data { cholesky_factor_cov [ while ## -## Ends in an error in state: 563. +## Ends in an error in state: 570. ## -## top_var_type -> CHOLESKYFACTORCOV LBRACK . expression option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCOV LBRACK . expression option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCOV LBRACK @@ -60,9 +60,9 @@ program: DATABLOCK LBRACE CORRMATRIX WHILE ## ## Concrete syntax: data { corr_matrix while ## -## Ends in an error in state: 539. +## Ends in an error in state: 546. ## -## top_var_type -> CORRMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CORRMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CORRMATRIX @@ -78,9 +78,9 @@ program: DATABLOCK LBRACE COVMATRIX WHILE ## ## Concrete syntax: data { cov_matrix while ## -## Ends in an error in state: 535. +## Ends in an error in state: 542. ## -## top_var_type -> COVMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COVMATRIX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## COVMATRIX @@ -92,9 +92,9 @@ program: DATABLOCK LBRACE INT LABRACK WHILE ## ## Concrete syntax: data { int < while ## -## Ends in an error in state: 533. +## Ends in an error in state: 540. ## -## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## LABRACK @@ -106,9 +106,9 @@ program: DATABLOCK LBRACE INT LBRACE ## ## Concrete syntax: data { int { ## -## Ends in an error in state: 532. +## Ends in an error in state: 539. ## -## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## INT @@ -124,9 +124,9 @@ program: DATABLOCK LBRACE ORDERED WHILE ## ## Concrete syntax: data { ordered while ## -## Ends in an error in state: 521. +## Ends in an error in state: 528. ## -## top_var_type -> ORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ORDERED @@ -142,9 +142,9 @@ program: DATABLOCK LBRACE POSITIVEORDERED WHILE ## ## Concrete syntax: data { positive_ordered while ## -## Ends in an error in state: 517. +## Ends in an error in state: 524. ## -## top_var_type -> POSITIVEORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> POSITIVEORDERED . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## POSITIVEORDERED @@ -156,7 +156,7 @@ program: DATABLOCK LBRACE RBRACE WHILE ## ## Concrete syntax: data { } while ## -## Ends in an error in state: 633. +## Ends in an error in state: 640. ## ## program -> option(function_block) option(data_block) . option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -170,7 +170,7 @@ program: DATABLOCK LBRACE REAL IDENTIFIER SEMICOLON WHILE ## ## Concrete syntax: data { real foo ; while ## -## Ends in an error in state: 624. +## Ends in an error in state: 631. ## ## list(top_var_decl_no_assign) -> top_var_decl_no_assign . list(top_var_decl_no_assign) [ RBRACE ] ## @@ -184,9 +184,9 @@ program: DATABLOCK LBRACE REAL LBRACE ## ## Concrete syntax: data { real { ## -## Ends in an error in state: 515. +## Ends in an error in state: 522. ## -## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## REAL @@ -198,9 +198,9 @@ program: DATABLOCK LBRACE ROWVECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK ## ## Concrete syntax: data { row_vector < multiplier = foo > while ## -## Ends in an error in state: 511. +## Ends in an error in state: 518. ## -## top_var_type -> ROWVECTOR type_constraint . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR type_constraint . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR type_constraint @@ -216,9 +216,9 @@ program: DATABLOCK LBRACE SIMPLEX WHILE ## ## Concrete syntax: data { simplex while ## -## Ends in an error in state: 506. +## Ends in an error in state: 513. ## -## top_var_type -> SIMPLEX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SIMPLEX . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## SIMPLEX @@ -234,9 +234,9 @@ program: DATABLOCK LBRACE UNITVECTOR WHILE ## ## Concrete syntax: data { unit_vector while ## -## Ends in an error in state: 484. +## Ends in an error in state: 485. ## -## top_var_type -> UNITVECTOR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> UNITVECTOR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## UNITVECTOR @@ -248,7 +248,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## ## Concrete syntax: data { vector < offset = foo , multiplier = foo , ## -## Ends in an error in state: 460. +## Ends in an error in state: 461. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -271,8 +271,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 428, spurious reduction of production constr_expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 429, spurious reduction of production constr_expression -> common_expression ## Expected ">" after "multiplier = " expression. @@ -281,7 +281,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## ## Concrete syntax: data { vector < offset = foo , multiplier = while ## -## Ends in an error in state: 459. +## Ends in an error in state: 460. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER ASSIGN . constr_expression [ RABRACK ] ## @@ -295,7 +295,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA MULTIPLI ## ## Concrete syntax: data { vector < offset = foo , multiplier while ## -## Ends in an error in state: 458. +## Ends in an error in state: 459. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER . ASSIGN constr_expression [ RABRACK ] ## @@ -311,7 +311,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN IDENTIFIER COMMA WHILE ## ## Concrete syntax: data { vector < offset = foo , while ## -## Ends in an error in state: 457. +## Ends in an error in state: 458. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA . MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## @@ -325,7 +325,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN WHILE ## ## Concrete syntax: data { vector < offset = while ## -## Ends in an error in state: 455. +## Ends in an error in state: 456. ## ## offset_mult -> OFFSET ASSIGN . constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET ASSIGN . constr_expression [ RABRACK ] @@ -340,7 +340,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET WHILE ## ## Concrete syntax: data { vector < offset while ## -## Ends in an error in state: 454. +## Ends in an error in state: 455. ## ## offset_mult -> OFFSET . ASSIGN constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET . ASSIGN constr_expression [ RABRACK ] @@ -383,7 +383,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER ASS ## ## Concrete syntax: data { vector < lower = foo , upper = foo , ## -## Ends in an error in state: 474. +## Ends in an error in state: 475. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -406,8 +406,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER ASS ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 428, spurious reduction of production constr_expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 429, spurious reduction of production constr_expression -> common_expression ## Expected ">" after "upper = " expression. @@ -418,7 +418,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER ASS ## ## Concrete syntax: data { vector < lower = foo , upper = while ## -## Ends in an error in state: 473. +## Ends in an error in state: 474. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER ASSIGN . constr_expression [ RABRACK ] ## @@ -432,7 +432,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA UPPER WHI ## ## Concrete syntax: data { vector < lower = foo , upper while ## -## Ends in an error in state: 472. +## Ends in an error in state: 473. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER . ASSIGN constr_expression [ RABRACK ] ## @@ -446,7 +446,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN IDENTIFIER COMMA WHILE ## ## Concrete syntax: data { vector < lower = foo , while ## -## Ends in an error in state: 471. +## Ends in an error in state: 472. ## ## range -> LOWER ASSIGN constr_expression COMMA . UPPER ASSIGN constr_expression [ RABRACK ] ## @@ -460,7 +460,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN WHILE ## ## Concrete syntax: data { vector < lower = while ## -## Ends in an error in state: 469. +## Ends in an error in state: 470. ## ## range -> LOWER ASSIGN . constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER ASSIGN . constr_expression [ RABRACK ] @@ -475,7 +475,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER WHILE ## ## Concrete syntax: data { vector < lower while ## -## Ends in an error in state: 468. +## Ends in an error in state: 469. ## ## range -> LOWER . ASSIGN constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER . ASSIGN constr_expression [ RABRACK ] @@ -490,7 +490,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN WHILE ## ## Concrete syntax: data { vector < multiplier = while ## -## Ends in an error in state: 462. +## Ends in an error in state: 463. ## ## offset_mult -> MULTIPLIER ASSIGN . constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER ASSIGN . constr_expression [ RABRACK ] @@ -505,7 +505,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER WHILE ## ## Concrete syntax: data { vector < multiplier while ## -## Ends in an error in state: 461. +## Ends in an error in state: 462. ## ## offset_mult -> MULTIPLIER . ASSIGN constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER . ASSIGN constr_expression [ RABRACK ] @@ -522,7 +522,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG WHILE ## ## Concrete syntax: data { vector < upper = ! while ## -## Ends in an error in state: 421. +## Ends in an error in state: 422. ## ## constr_expression -> BANG . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -536,7 +536,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS WHILE ## ## Concrete syntax: data { vector < upper = - while ## -## Ends in an error in state: 420. +## Ends in an error in state: 421. ## ## constr_expression -> MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -550,7 +550,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS WHILE ## ## Concrete syntax: data { vector < upper = + while ## -## Ends in an error in state: 419. +## Ends in an error in state: 420. ## ## constr_expression -> PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -564,7 +564,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER DIVIDE WHILE ## ## Concrete syntax: data { vector < upper = foo / while ## -## Ends in an error in state: 446. +## Ends in an error in state: 447. ## ## constr_expression -> constr_expression DIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -578,7 +578,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER ELTDIVIDE WHILE ## ## Concrete syntax: data { vector < upper = foo ./ while ## -## Ends in an error in state: 444. +## Ends in an error in state: 445. ## ## constr_expression -> constr_expression ELTDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -592,7 +592,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER ELTTIMES WHILE ## ## Concrete syntax: data { vector < upper = foo .* while ## -## Ends in an error in state: 442. +## Ends in an error in state: 443. ## ## constr_expression -> constr_expression ELTTIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -606,7 +606,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER HAT WHILE ## ## Concrete syntax: data { vector < upper = foo ^ while ## -## Ends in an error in state: 424. +## Ends in an error in state: 425. ## ## constr_expression -> constr_expression HAT . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -620,7 +620,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER LDIVIDE WHILE ## ## Concrete syntax: data { vector < upper = foo \ while ## -## Ends in an error in state: 434. +## Ends in an error in state: 435. ## ## constr_expression -> constr_expression LDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -634,7 +634,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER MINUS WHILE ## ## Concrete syntax: data { vector < upper = foo - while ## -## Ends in an error in state: 448. +## Ends in an error in state: 449. ## ## constr_expression -> constr_expression MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -648,7 +648,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER MODULO WHILE ## ## Concrete syntax: data { vector < upper = foo % while ## -## Ends in an error in state: 440. +## Ends in an error in state: 441. ## ## constr_expression -> constr_expression MODULO . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -662,7 +662,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER PLUS WHILE ## ## Concrete syntax: data { vector < upper = foo + while ## -## Ends in an error in state: 438. +## Ends in an error in state: 439. ## ## constr_expression -> constr_expression PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -676,7 +676,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER TIMES WHILE ## ## Concrete syntax: data { vector < upper = foo * while ## -## Ends in an error in state: 432. +## Ends in an error in state: 433. ## ## constr_expression -> constr_expression TIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -690,7 +690,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN WHILE ## ## Concrete syntax: data { vector < upper = while ## -## Ends in an error in state: 418. +## Ends in an error in state: 419. ## ## range -> UPPER ASSIGN . constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER ASSIGN . constr_expression [ RABRACK ] @@ -705,7 +705,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER WHILE ## ## Concrete syntax: data { vector < upper while ## -## Ends in an error in state: 417. +## Ends in an error in state: 418. ## ## range -> UPPER . ASSIGN constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER . ASSIGN constr_expression [ RABRACK ] @@ -720,10 +720,10 @@ program: DATABLOCK LBRACE VECTOR LABRACK WHILE ## ## Concrete syntax: data { vector < while ## -## Ends in an error in state: 416. +## Ends in an error in state: 417. ## -## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## type_constraint -> LABRACK . offset_mult RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## type_constraint -> LABRACK . offset_mult RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## LABRACK @@ -735,10 +735,10 @@ program: DATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## ## Concrete syntax: data { vector [ 24 ] ^ ## -## Ends in an error in state: 616. +## Ends in an error in state: 623. ## -## decl(top_var_type,no_assign) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] -## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -750,7 +750,7 @@ program: DATABLOCK LBRACE IDENTIFIER ## ## Concrete syntax: data { foo ## -## Ends in an error in state: 414. +## Ends in an error in state: 415. ## ## data_block -> DATABLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -762,14 +762,15 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, sum_to_zero_vector, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - row_stochastic_matrix, column_stochastic_matrix, tuple(...) + sum_to_zero_matrix, row_stochastic_matrix, column_stochastic_matrix, + tuple(...) optionally preceded by a single array[...] program: DATABLOCK WHILE ## ## Concrete syntax: data while ## -## Ends in an error in state: 413. +## Ends in an error in state: 414. ## ## data_block -> DATABLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -783,7 +784,7 @@ program: FUNCTIONBLOCK LBRACE RBRACE COVMATRIX ## ## Concrete syntax: functions { } cov_matrix ## -## Ends in an error in state: 412. +## Ends in an error in state: 413. ## ## program -> option(function_block) . option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -799,7 +800,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN RPAREN SEMICOLON WHILE ## ## Concrete syntax: functions { void foo ( ) ; while ## -## Ends in an error in state: 404. +## Ends in an error in state: 405. ## ## list(function_def) -> function_def . list(function_def) [ RBRACE EOF ] ## @@ -817,7 +818,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN DATABLOCK WHILE ## ## Concrete syntax: functions { void foo ( data while ## -## Ends in an error in state: 91. +## Ends in an error in state: 92. ## ## arg_decl -> option(DATABLOCK) . unsized_type decl_identifier [ RPAREN COMMA ] ## @@ -831,7 +832,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN RPAREN VOID ## ## Concrete syntax: functions { void foo ( ) void ## -## Ends in an error in state: 95. +## Ends in an error in state: 96. ## ## function_def -> return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ VOID VECTOR TUPLE ROWVECTOR REAL RBRACE MATRIX INT EOF COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX ARRAY ] ## @@ -847,7 +848,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN VECTOR IDENTIFIER COMMA WHI ## ## Concrete syntax: functions { void foo ( vector foo , while ## -## Ends in an error in state: 399. +## Ends in an error in state: 400. ## ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl COMMA . separated_nonempty_list(COMMA,arg_decl) [ RPAREN ] ## @@ -861,7 +862,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN VECTOR IDENTIFIER WHILE ## ## Concrete syntax: functions { void foo ( vector foo while ## -## Ends in an error in state: 398. +## Ends in an error in state: 399. ## ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl . [ RPAREN ] ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl . COMMA separated_nonempty_list(COMMA,arg_decl) [ RPAREN ] @@ -876,7 +877,7 @@ program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER WHILE ## ## Concrete syntax: functions { void foo while ## -## Ends in an error in state: 87. +## Ends in an error in state: 88. ## ## function_def -> return_type decl_identifier . LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ VOID VECTOR TUPLE ROWVECTOR REAL RBRACE MATRIX INT EOF COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX ARRAY ] ## @@ -904,7 +905,7 @@ program: FUNCTIONBLOCK LBRACE WHILE ## ## Concrete syntax: functions { while ## -## Ends in an error in state: 408. +## Ends in an error in state: 409. ## ## function_block -> FUNCTIONBLOCK LBRACE . list(function_def) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF DATABLOCK ] ## @@ -918,7 +919,7 @@ program: FUNCTIONBLOCK WHILE ## ## Concrete syntax: functions while ## -## Ends in an error in state: 407. +## Ends in an error in state: 408. ## ## function_block -> FUNCTIONBLOCK . LBRACE list(function_def) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF DATABLOCK ] ## @@ -932,7 +933,7 @@ program: GENERATEDQUANTITIESBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: generated quantities { } .*= ## -## Ends in an error in state: 682. +## Ends in an error in state: 689. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) . EOF [ # ] ## @@ -946,7 +947,7 @@ program: GENERATEDQUANTITIESBLOCK LBRACE VOID ## ## Concrete syntax: generated quantities { void ## -## Ends in an error in state: 679. +## Ends in an error in state: 686. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -960,7 +961,7 @@ program: GENERATEDQUANTITIESBLOCK WHILE ## ## Concrete syntax: generated quantities while ## -## Ends in an error in state: 678. +## Ends in an error in state: 685. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -1016,9 +1017,9 @@ program: MODELBLOCK LBRACE MATRIX WHILE ## ## Concrete syntax: model { matrix while ## -## Ends in an error in state: 203. +## Ends in an error in state: 204. ## -## sized_basic_type -> MATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX . LBRACK expression COMMA expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX @@ -1030,7 +1031,7 @@ program: MODELBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: model { } .*= ## -## Ends in an error in state: 677. +## Ends in an error in state: 684. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) option(model_block) . option(generated_quantities_block) EOF [ # ] ## @@ -1046,7 +1047,7 @@ program: MODELBLOCK LBRACE REAL IDENTIFIER ASSIGN WHILE ## ## Concrete syntax: model { real foo = while ## -## Ends in an error in state: 314. +## Ends in an error in state: 315. ## ## option(pair(ASSIGN,expression)) -> ASSIGN . expression [ SEMICOLON COMMA ] ## @@ -1060,10 +1061,10 @@ program: MODELBLOCK LBRACE REAL LBRACK ## ## Concrete syntax: model { real [ ## -## Ends in an error in state: 324. +## Ends in an error in state: 325. ## -## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type @@ -1099,9 +1100,9 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK WHILE ## ## Concrete syntax: model { row_vector [ while ## -## Ends in an error in state: 199. +## Ends in an error in state: 200. ## -## sized_basic_type -> ROWVECTOR LBRACK . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> ROWVECTOR LBRACK . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR LBRACK @@ -1113,7 +1114,7 @@ program: MODELBLOCK LBRACE SEMICOLON VOID ## ## Concrete syntax: model { ; void ## -## Ends in an error in state: 389. +## Ends in an error in state: 390. ## ## list(vardecl_or_statement) -> vardecl_or_statement . list(vardecl_or_statement) [ RBRACE ] ## @@ -1153,9 +1154,9 @@ program: MODELBLOCK LBRACE VECTOR WHILE ## ## Concrete syntax: model { vector while ## -## Ends in an error in state: 192. +## Ends in an error in state: 193. ## -## sized_basic_type -> VECTOR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> VECTOR . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR @@ -1167,7 +1168,7 @@ program: MODELBLOCK LBRACE VOID ## ## Concrete syntax: model { void ## -## Ends in an error in state: 674. +## Ends in an error in state: 681. ## ## model_block -> MODELBLOCK LBRACE . list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1181,7 +1182,7 @@ program: MODELBLOCK WHILE ## ## Concrete syntax: model while ## -## Ends in an error in state: 673. +## Ends in an error in state: 680. ## ## model_block -> MODELBLOCK . LBRACE list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1195,7 +1196,7 @@ program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: parameters { } .*= ## -## Ends in an error in state: 666. +## Ends in an error in state: 673. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) . option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -1209,7 +1210,7 @@ program: PARAMETERSBLOCK LBRACE WHILE ## ## Concrete syntax: parameters { while ## -## Ends in an error in state: 662. +## Ends in an error in state: 669. ## ## parameters_block -> PARAMETERSBLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1223,7 +1224,7 @@ program: PARAMETERSBLOCK WHILE ## ## Concrete syntax: parameters while ## -## Ends in an error in state: 661. +## Ends in an error in state: 668. ## ## parameters_block -> PARAMETERSBLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -1239,7 +1240,7 @@ program: TRANSFORMEDDATABLOCK LBRACE BANG WHILE ## ## Concrete syntax: transformed data { ! while ## -## Ends in an error in state: 110. +## Ends in an error in state: 111. ## ## expression -> BANG . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1253,9 +1254,9 @@ program: TRANSFORMEDDATABLOCK LBRACE BREAK WHILE ## ## Concrete syntax: transformed data { break while ## -## Ends in an error in state: 300. +## Ends in an error in state: 301. ## -## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## BREAK @@ -1267,9 +1268,9 @@ program: TRANSFORMEDDATABLOCK LBRACE CONTINUE WHILE ## ## Concrete syntax: transformed data { continue while ## -## Ends in an error in state: 298. +## Ends in an error in state: 299. ## -## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## CONTINUE @@ -1281,9 +1282,9 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL COLON ## ## Concrete syntax: transformed data { for ( foo in 3.1415 : foo ) void ## -## Ends in an error in state: 384. +## Ends in an error in state: 385. ## -## nested_statement -> FOR LPAREN identifier IN expression COLON expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression COLON expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression COLON expression RPAREN @@ -1297,9 +1298,9 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL COLON ## ## Concrete syntax: transformed data { for ( foo in 3.1415 : while ## -## Ends in an error in state: 382. +## Ends in an error in state: 383. ## -## nested_statement -> FOR LPAREN identifier IN expression COLON . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression COLON . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression COLON @@ -1311,9 +1312,9 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN REALNUMERAL RPAREN ## ## Concrete syntax: transformed data { for ( foo in 3.1415 ) void ## -## Ends in an error in state: 292. +## Ends in an error in state: 293. ## -## nested_statement -> FOR LPAREN identifier IN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression RPAREN @@ -1327,7 +1328,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN DOTNUMERAL TILDE ## ## Concrete syntax: transformed data { for ( foo in .2 ~ ## -## Ends in an error in state: 291. +## Ends in an error in state: 292. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] @@ -1350,8 +1351,8 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN DOTNUMERAL TILDE ## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## expression -> expression . GEQ expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] -## nested_statement -> FOR LPAREN identifier IN expression . COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression . COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN expression @@ -1360,7 +1361,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER IN DOTNUMERAL TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 126, spurious reduction of production expression -> common_expression +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed expression. Expected expression followed by ")" or ":" after "for (" identifier "in". @@ -1369,10 +1370,10 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN IDENTIFIER WHILE ## ## Concrete syntax: transformed data { for ( foo while ## -## Ends in an error in state: 289. +## Ends in an error in state: 290. ## -## nested_statement -> FOR LPAREN identifier . IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier @@ -1384,10 +1385,10 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN WHILE ## ## Concrete syntax: transformed data { for ( while ## -## Ends in an error in state: 288. +## Ends in an error in state: 289. ## -## nested_statement -> FOR LPAREN . identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN @@ -1399,10 +1400,10 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR WHILE ## ## Concrete syntax: transformed data { for while ## -## Ends in an error in state: 287. +## Ends in an error in state: 288. ## -## nested_statement -> FOR . LPAREN identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN expression COLON expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR @@ -1416,10 +1417,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER RPAREN SEMICOLON UNREA ## ## Concrete syntax: transformed data { if ( foo ) ; <<<>> ## -## Ends in an error in state: 386. +## Ends in an error in state: 387. ## -## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement . [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression RPAREN vardecl_or_statement @@ -1431,10 +1432,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN VOID ## ## Concrete syntax: transformed data { if ( 3.1415 ) void ## -## Ends in an error in state: 286. +## Ends in an error in state: 287. ## -## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression RPAREN @@ -1446,9 +1447,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER RPAREN SEMICOLON ELSE ## ## Concrete syntax: transformed data { if ( foo ) ; else void ## -## Ends in an error in state: 387. +## Ends in an error in state: 388. ## -## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement ELSE . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression RPAREN vardecl_or_statement ELSE . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression RPAREN vardecl_or_statement ELSE @@ -1460,7 +1461,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { if ( foo ~ ## -## Ends in an error in state: 285. +## Ends in an error in state: 286. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1483,8 +1484,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER TILDE ## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . GEQ expression [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN expression . RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN expression @@ -1493,8 +1494,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed expression. Expression expected after "(", for test of conditional control flow construct. @@ -1503,10 +1504,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN WHILE ## ## Concrete syntax: transformed data { if ( while ## -## Ends in an error in state: 284. +## Ends in an error in state: 285. ## -## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN @@ -1518,10 +1519,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IF WHILE ## ## Concrete syntax: transformed data { if while ## -## Ends in an error in state: 283. +## Ends in an error in state: 284. ## -## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement ELSE vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF @@ -1533,10 +1534,10 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACE VOID ## ## Concrete syntax: transformed data { { void ## -## Ends in an error in state: 282. +## Ends in an error in state: 283. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] -## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## LBRACE @@ -1548,7 +1549,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK IDENTIFIER COMMA WHILE ## ## Concrete syntax: transformed data { [ foo , while ## -## Ends in an error in state: 172. +## Ends in an error in state: 173. ## ## separated_nonempty_list(COMMA,expression) -> expression COMMA . separated_nonempty_list(COMMA,expression) [ RPAREN RBRACK RBRACE ] ## @@ -1566,7 +1567,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK IDENTIFIER RPAREN ## ## Concrete syntax: transformed data { [ foo ) ## -## Ends in an error in state: 181. +## Ends in an error in state: 182. ## ## common_expression -> LBRACK loption(separated_nonempty_list(COMMA,expression)) . RBRACK [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -1577,10 +1578,10 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK IDENTIFIER RPAREN ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression -## In state 174, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 113, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression +## In state 175, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 114, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed expression. We expect a comma separated list of expressions, followed by "]". @@ -1590,7 +1591,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK WHILE ## ## Concrete syntax: transformed data { [ while ## -## Ends in an error in state: 105. +## Ends in an error in state: 106. ## ## common_expression -> LBRACK . loption(separated_nonempty_list(COMMA,expression)) RBRACK [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -1606,7 +1607,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { ( foo ~ ## -## Ends in an error in state: 183. +## Ends in an error in state: 184. ## ## common_expression -> LPAREN expression . COMMA separated_nonempty_list(COMMA,expression) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## common_expression -> LPAREN expression . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] @@ -1639,8 +1640,8 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed phrase. Found "(" followed by expression. Expect a "[", "," or ")" or an infix or postfix operator. @@ -1649,7 +1650,7 @@ program: TRANSFORMEDDATABLOCK LBRACE MINUS WHILE ## ## Concrete syntax: transformed data { - while ## -## Ends in an error in state: 103. +## Ends in an error in state: 104. ## ## expression -> MINUS . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1663,7 +1664,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PLUS WHILE ## ## Concrete syntax: transformed data { + while ## -## Ends in an error in state: 102. +## Ends in an error in state: 103. ## ## expression -> PLUS . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1677,9 +1678,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN STRINGLITERAL WHILE ## ## Concrete syntax: transformed data { print ( "hello world" while ## -## Ends in an error in state: 279. +## Ends in an error in state: 280. ## -## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## ## The known suffix of the stack is as follows: @@ -1692,9 +1693,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN IDENTIFIER RPAREN WHILE ## ## Concrete syntax: transformed data { print ( foo ) while ## -## Ends in an error in state: 280. +## Ends in an error in state: 281. ## -## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN printables RPAREN @@ -1706,9 +1707,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN WHILE ## ## Concrete syntax: transformed data { print ( while ## -## Ends in an error in state: 278. +## Ends in an error in state: 279. ## -## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN @@ -1720,9 +1721,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT WHILE ## ## Concrete syntax: transformed data { print while ## -## Ends in an error in state: 277. +## Ends in an error in state: 278. ## -## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT @@ -1734,7 +1735,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: transformed data { } .*= ## -## Ends in an error in state: 660. +## Ends in an error in state: 667. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) . option(parameters_block) option(transformed_parameters_block) option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -1798,9 +1799,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER WHILE ## ## Concrete syntax: transformed data { foo while ## -## Ends in an error in state: 333. +## Ends in an error in state: 334. ## -## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier . [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## common_expression -> identifier . LPAREN expression BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] @@ -1858,7 +1859,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW WHILE ## ## Concrete syntax: transformed data { 3.1415 .^ while ## -## Ends in an error in state: 124. +## Ends in an error in state: 125. ## ## expression -> expression ELTPOW . expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1876,7 +1877,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER QMARK WHILE ## ## Concrete syntax: transformed data { foo ? while ## -## Ends in an error in state: 146. +## Ends in an error in state: 147. ## ## expression -> expression QMARK . expression COLON expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## @@ -1893,7 +1894,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON IDENTIFIER TILDE ## ## Concrete syntax: transformed data { 3.1415 [ : foo ~ ## -## Ends in an error in state: 129. +## Ends in an error in state: 130. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -1925,8 +1926,8 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed phrase. Found ":" expression. We expect either an infix or postfix operator, or "," or or "[" or "]" next. @@ -1937,7 +1938,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PLUS IDENTIFIER TRANSPOSE WHILE ## ## Concrete syntax: transformed data { + foo ' while ## -## Ends in an error in state: 189. +## Ends in an error in state: 190. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON BAR AND ] @@ -1972,7 +1973,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON WHILE ## ## Concrete syntax: transformed data { 3.1415 [ : while ## -## Ends in an error in state: 128. +## Ends in an error in state: 129. ## ## indexes -> COLON . [ RBRACK COMMA ] ## indexes -> COLON . expression [ RBRACK COMMA ] @@ -1987,7 +1988,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COMMA WHILE ## ## Concrete syntax: transformed data { 3.1415 [ , while ## -## Ends in an error in state: 166. +## Ends in an error in state: 167. ## ## indexes -> indexes COMMA . indexes [ RBRACK COMMA ] ## @@ -2003,7 +2004,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LBRACK REALNUMERAL COLON WHILE ## ## Concrete syntax: transformed data { foo [ 3.1415 : while ## -## Ends in an error in state: 169. +## Ends in an error in state: 170. ## ## indexes -> expression COLON . [ RBRACK COMMA ] ## indexes -> expression COLON . expression [ RBRACK COMMA ] @@ -2018,9 +2019,9 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( ) T [ , ] multiplier ## -## Ends in an error in state: 352. +## Ends in an error in state: 353. ## -## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) @@ -2042,7 +2043,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( ) T [ while ## -## Ends in an error in state: 345. +## Ends in an error in state: 346. ## ## truncation -> TRUNCATE LBRACK . option(expression) COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -2056,9 +2057,9 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN RPAREN ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( ) while ## -## Ends in an error in state: 343. +## Ends in an error in state: 344. ## -## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN @@ -2070,9 +2071,9 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN IDENTIF ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( foo ] ## -## Ends in an error in state: 342. +## Ends in an error in state: 343. ## -## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) @@ -2081,10 +2082,10 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN IDENTIF ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression -## In state 174, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 113, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression +## In state 175, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 114, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed "~"-statement. Expect a comma separated list of expressions for arguments to the distribution, followed by ")". @@ -2093,9 +2094,9 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER LPAREN WHILE ## ## Concrete syntax: transformed data { 3.1415 ~ foo ( while ## -## Ends in an error in state: 341. +## Ends in an error in state: 342. ## -## atomic_statement -> expression TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier LPAREN @@ -2107,9 +2108,9 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE IDENTIFIER WHILE ## ## Concrete syntax: transformed data { 3.1415 ~ foo while ## -## Ends in an error in state: 340. +## Ends in an error in state: 341. ## -## atomic_statement -> expression TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE identifier @@ -2121,9 +2122,9 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE WHILE ## ## Concrete syntax: transformed data { 3.1415 ~ while ## -## Ends in an error in state: 339. +## Ends in an error in state: 340. ## -## atomic_statement -> expression TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## expression TILDE @@ -2135,7 +2136,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN IDENTIFIER COMMA STRINGLITERA ## ## Concrete syntax: transformed data { reject ( foo , "hello world" while ## -## Ends in an error in state: 270. +## Ends in an error in state: 271. ## ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## printables -> printables COMMA printables . [ RPAREN COMMA ] @@ -2150,7 +2151,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN IDENTIFIER COMMA WHILE ## ## Concrete syntax: transformed data { reject ( foo , while ## -## Ends in an error in state: 269. +## Ends in an error in state: 270. ## ## printables -> printables COMMA . printables [ RPAREN COMMA ] ## @@ -2172,9 +2173,9 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN WHILE ## ## Concrete syntax: transformed data { reject ( while ## -## Ends in an error in state: 263. +## Ends in an error in state: 264. ## -## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT LPAREN @@ -2186,7 +2187,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE WHILE ## ## Concrete syntax: transformed data { return { while ## -## Ends in an error in state: 106. +## Ends in an error in state: 107. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## @@ -2200,7 +2201,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN TARGET WHILE ## ## Concrete syntax: transformed data { return target while ## -## Ends in an error in state: 98. +## Ends in an error in state: 99. ## ## common_expression -> TARGET . LPAREN RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## @@ -2214,7 +2215,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER LPAREN IDENTIFIER COMMA I ## ## Concrete syntax: transformed data { return foo ( foo , foo ] ## -## Ends in an error in state: 114. +## Ends in an error in state: 115. ## ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## @@ -2225,11 +2226,11 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER LPAREN IDENTIFIER COMMA I ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression -## In state 174, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 173, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) -## In state 113, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression +## In state 175, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 174, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) +## In state 114, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed expression. In function application, expect comma-separated list of expressions followed by ")", after "(". @@ -2238,7 +2239,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER LPAREN WHILE ## ## Concrete syntax: transformed data { return foo ( while ## -## Ends in an error in state: 112. +## Ends in an error in state: 113. ## ## common_expression -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] ## common_expression -> identifier LPAREN . expression BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DOTNUMERAL DIVIDE COMMA COLON BAR AND ] @@ -2255,9 +2256,9 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { return foo ~ ## -## Ends in an error in state: 260. +## Ends in an error in state: 261. ## -## atomic_statement -> RETURN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2287,8 +2288,8 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed return statement. ";" or expression followed by ";" expected after "return". @@ -2297,7 +2298,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET LPAREN WHILE ## ## Concrete syntax: transformed data { target ( while ## -## Ends in an error in state: 99. +## Ends in an error in state: 100. ## ## common_expression -> TARGET LPAREN . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -2313,9 +2314,9 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { target += foo ~ ## -## Ends in an error in state: 255. +## Ends in an error in state: 256. ## -## atomic_statement -> TARGET PLUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2345,8 +2346,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed statement. Expression followed by ";" expected after "target +=". @@ -2355,9 +2356,9 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET WHILE ## ## Concrete syntax: transformed data { target while ## -## Ends in an error in state: 253. +## Ends in an error in state: 254. ## -## atomic_statement -> TARGET . PLUSASSIGN expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET . PLUSASSIGN expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> TARGET . LPAREN RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## ## The known suffix of the stack is as follows: @@ -2370,7 +2371,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN REALNUMERAL BAR IDENTIFIE ## ## Concrete syntax: transformed data { foo ( 3.1415 | foo ] ## -## Ends in an error in state: 176. +## Ends in an error in state: 177. ## ## common_expression -> identifier LPAREN expression BAR loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -2381,10 +2382,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN REALNUMERAL BAR IDENTIFIE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression -## In state 174, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 113, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression +## In state 175, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 114, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed conditional distribution evaluation. Expect comma-separated list of expressions followed by ")" after "|". @@ -2393,7 +2394,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN REALNUMERAL BAR WHILE ## ## Concrete syntax: transformed data { foo ( 3.1415 | while ## -## Ends in an error in state: 175. +## Ends in an error in state: 176. ## ## common_expression -> identifier LPAREN expression BAR . loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -2407,9 +2408,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN RPAREN WHILE ## ## Concrete syntax: transformed data { foo ( ) while ## -## Ends in an error in state: 336. +## Ends in an error in state: 337. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## ## The known suffix of the stack is as follows: @@ -2426,9 +2427,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN IDENTIFIER COMMA IDENTIFI ## ## Concrete syntax: transformed data { foo ( foo , foo ] ## -## Ends in an error in state: 335. +## Ends in an error in state: 336. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA ASSIGN AND ] ## ## The known suffix of the stack is as follows: @@ -2438,11 +2439,11 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER LPAREN IDENTIFIER COMMA IDENTIFI ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression -## In state 174, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression -## In state 173, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) -## In state 113, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression +## In state 175, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression +## In state 174, spurious reduction of production separated_nonempty_list(COMMA,expression) -> expression COMMA separated_nonempty_list(COMMA,expression) +## In state 114, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed function application. Expect comma-separated list of expressions followed by ")" after "(". @@ -2453,9 +2454,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER RBRACE ## ## Concrete syntax: transformed data { foo } ## -## Ends in an error in state: 338. +## Ends in an error in state: 339. ## -## atomic_statement -> expression . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> expression . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2485,8 +2486,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER RBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 333, spurious reduction of production common_expression -> identifier -## In state 355, spurious reduction of production expression -> common_expression +## In state 334, spurious reduction of production common_expression -> identifier +## In state 356, spurious reduction of production expression -> common_expression ## Ill-formed phrase. Found an expression where we expected a statement. @@ -2505,9 +2506,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { foo *= foo ~ ## -## Ends in an error in state: 357. +## Ends in an error in state: 358. ## -## atomic_statement -> common_expression TIMESASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression TIMESASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2537,8 +2538,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed compound assignment statement. Expected a ";" after the value being assigned. @@ -2555,9 +2556,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER TIMESASSIGN WHILE ## ## Concrete syntax: transformed data { foo *= while ## -## Ends in an error in state: 356. +## Ends in an error in state: 357. ## -## atomic_statement -> common_expression TIMESASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression TIMESASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression TIMESASSIGN @@ -2569,9 +2570,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN IDENTIFIER TILDE ## ## Concrete syntax: transformed data { foo = foo ~ ## -## Ends in an error in state: 375. +## Ends in an error in state: 376. ## -## atomic_statement -> common_expression ASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ASSIGN expression . SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . MINUS expression [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2601,8 +2602,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN IDENTIFIER TILDE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Ill-formed assignment statement. Expected a ";" after the value being assigned. @@ -2611,9 +2612,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IDENTIFIER ASSIGN WHILE ## ## Concrete syntax: transformed data { foo = while ## -## Ends in an error in state: 374. +## Ends in an error in state: 375. ## -## atomic_statement -> common_expression ASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> common_expression ASSIGN . expression SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## common_expression ASSIGN @@ -2625,10 +2626,10 @@ program: TRANSFORMEDDATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## ## Concrete syntax: transformed data { vector [ 24 ] ^ ## -## Ends in an error in state: 641. +## Ends in an error in state: 648. ## -## decl(top_var_type,expression) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . decl_identifier LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -2640,7 +2641,7 @@ program: TRANSFORMEDDATABLOCK LBRACE VOID ## ## Concrete syntax: transformed data { void ## -## Ends in an error in state: 635. +## Ends in an error in state: 642. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2654,9 +2655,9 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN IDENTIFIER RPAREN VOID ## ## Concrete syntax: transformed data { while ( foo ) void ## -## Ends in an error in state: 191. +## Ends in an error in state: 192. ## -## nested_statement -> WHILE LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN expression RPAREN . vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN expression RPAREN @@ -2670,9 +2671,9 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN WHILE ## ## Concrete syntax: transformed data { while ( while ## -## Ends in an error in state: 97. +## Ends in an error in state: 98. ## -## nested_statement -> WHILE LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN . expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN @@ -2684,9 +2685,9 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE WHILE ## ## Concrete syntax: transformed data { while while ## -## Ends in an error in state: 96. +## Ends in an error in state: 97. ## -## nested_statement -> WHILE . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE . LPAREN expression RPAREN vardecl_or_statement [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE @@ -2698,7 +2699,7 @@ program: TRANSFORMEDDATABLOCK WHILE ## ## Concrete syntax: transformed data while ## -## Ends in an error in state: 634. +## Ends in an error in state: 641. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2712,7 +2713,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## ## Concrete syntax: transformed parameters { } .*= ## -## Ends in an error in state: 672. +## Ends in an error in state: 679. ## ## program -> option(function_block) option(data_block) option(transformed_data_block) option(parameters_block) option(transformed_parameters_block) . option(model_block) option(generated_quantities_block) EOF [ # ] ## @@ -2726,7 +2727,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE VOID ## ## Concrete syntax: transformed parameters { void ## -## Ends in an error in state: 668. +## Ends in an error in state: 675. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2740,7 +2741,7 @@ program: TRANSFORMEDPARAMETERSBLOCK WHILE ## ## Concrete syntax: transformed parameters while ## -## Ends in an error in state: 667. +## Ends in an error in state: 674. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2754,7 +2755,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA WHILE ## ## Concrete syntax: data { vector < upper = foo , while ## -## Ends in an error in state: 450. +## Ends in an error in state: 451. ## ## range -> UPPER ASSIGN constr_expression COMMA . LOWER ASSIGN constr_expression [ RABRACK ] ## @@ -2768,7 +2769,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER WHI ## ## Concrete syntax: data { vector < upper = foo , lower while ## -## Ends in an error in state: 451. +## Ends in an error in state: 452. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER . ASSIGN constr_expression [ RABRACK ] ## @@ -2782,7 +2783,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER ASS ## ## Concrete syntax: data { vector < upper = foo , lower = while ## -## Ends in an error in state: 452. +## Ends in an error in state: 453. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER ASSIGN . constr_expression [ RABRACK ] ## @@ -2796,7 +2797,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER ASS ## ## Concrete syntax: data { vector < upper = foo , lower = foo , ## -## Ends in an error in state: 453. +## Ends in an error in state: 454. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2819,8 +2820,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN IDENTIFIER COMMA LOWER ASS ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 428, spurious reduction of production constr_expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 429, spurious reduction of production constr_expression -> common_expression ## Expected '>' after lower expression. @@ -2831,7 +2832,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA WHIL ## ## Concrete syntax: data { vector < multiplier = foo , while ## -## Ends in an error in state: 464. +## Ends in an error in state: 465. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA . OFFSET ASSIGN constr_expression [ RABRACK ] ## @@ -2845,7 +2846,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## ## Concrete syntax: data { vector < multiplier = foo , offset while ## -## Ends in an error in state: 465. +## Ends in an error in state: 466. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET . ASSIGN constr_expression [ RABRACK ] ## @@ -2859,7 +2860,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## ## Concrete syntax: data { vector < multiplier = foo , offset = while ## -## Ends in an error in state: 466. +## Ends in an error in state: 467. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET ASSIGN . constr_expression [ RABRACK ] ## @@ -2873,7 +2874,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## ## Concrete syntax: data { vector < multiplier = foo , offset = foo , ## -## Ends in an error in state: 467. +## Ends in an error in state: 468. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2896,8 +2897,8 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER COMMA OFFS ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 428, spurious reduction of production constr_expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 429, spurious reduction of production constr_expression -> common_expression ## Expected '>' after multiplier expression. @@ -2914,9 +2915,9 @@ program: DATABLOCK LBRACE REAL IDENTIFIER ASSIGN UNREACHABLE WHILE ## ## Concrete syntax: data { real foo = <<<>> while ## -## Ends in an error in state: 617. +## Ends in an error in state: 624. ## -## decl(top_var_type,no_assign) -> top_var_type id_and_optional_assignment(no_assign,decl_identifier) . option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type id_and_optional_assignment(no_assign,decl_identifier) . option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type id_and_optional_assignment(no_assign,decl_identifier) @@ -2935,7 +2936,7 @@ program: MODELBLOCK LBRACE REAL IDENTIFIER COMMA UNREACHABLE ## ## Concrete syntax: model { real foo , <<<>> ## -## Ends in an error in state: 306. +## Ends in an error in state: 307. ## ## remaining_declarations(expression) -> COMMA . separated_nonempty_list(COMMA,id_and_optional_assignment(expression,decl_identifier_after_comma)) [ SEMICOLON ] ## @@ -2950,9 +2951,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE WHILE ## ## Concrete syntax: transformed data { profile while ## -## Ends in an error in state: 272. +## Ends in an error in state: 273. ## -## nested_statement -> PROFILE . LPAREN string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE . LPAREN string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE @@ -2964,9 +2965,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN WHILE ## ## Concrete syntax: transformed data { profile ( while ## -## Ends in an error in state: 273. +## Ends in an error in state: 274. ## -## nested_statement -> PROFILE LPAREN . string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN . string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN @@ -2978,9 +2979,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL WHILE ## ## Concrete syntax: transformed data { profile ( "hello world" while ## -## Ends in an error in state: 274. +## Ends in an error in state: 275. ## -## nested_statement -> PROFILE LPAREN string_literal . RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal . RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal @@ -2992,9 +2993,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN WHILE ## ## Concrete syntax: transformed data { profile ( "hello world" ) while ## -## Ends in an error in state: 275. +## Ends in an error in state: 276. ## -## nested_statement -> PROFILE LPAREN string_literal RPAREN . LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal RPAREN . LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal RPAREN @@ -3006,9 +3007,9 @@ program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN LBRACE ## ## Concrete syntax: transformed data { profile ( "hello world" ) { void ## -## Ends in an error in state: 276. +## Ends in an error in state: 277. ## -## nested_statement -> PROFILE LPAREN string_literal RPAREN LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal RPAREN LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal RPAREN LBRACE @@ -3020,9 +3021,9 @@ program: DATABLOCK LBRACE COMPLEX UNREACHABLE ## ## Concrete syntax: data { complex <<<>> ## -## Ends in an error in state: 560. +## Ends in an error in state: 567. ## -## top_var_type -> COMPLEX . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COMPLEX . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## COMPLEX @@ -3048,7 +3049,7 @@ functions_only: VOID ARRAY LPAREN RPAREN SEMICOLON RBRACE ## ## Concrete syntax: void array ( ) ; } ## -## Ends in an error in state: 401. +## Ends in an error in state: 402. ## ## functions_only -> list(function_def) . EOF [ # ] ## @@ -3059,8 +3060,8 @@ functions_only: VOID ARRAY LPAREN RPAREN SEMICOLON RBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 404, spurious reduction of production list(function_def) -> -## In state 405, spurious reduction of production list(function_def) -> function_def list(function_def) +## In state 405, spurious reduction of production list(function_def) -> +## In state 406, spurious reduction of production list(function_def) -> function_def list(function_def) ## Only function definitions/declarations are expected in '.stanfunctions' file @@ -3073,9 +3074,9 @@ program: TRANSFORMEDDATABLOCK LBRACE ARRAY IDENTIFIER ## ## Concrete syntax: transformed data { array foo ## -## Ends in an error in state: 225. +## Ends in an error in state: 226. ## -## arr_dims -> ARRAY . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] +## arr_dims -> ARRAY . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] ## ## The known suffix of the stack is as follows: ## ARRAY @@ -3091,9 +3092,9 @@ program: DATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK VECTOR LBRACK INTNUMERA ## ## Concrete syntax: data { array [ foo ] vector [ 24 ] && ## -## Ends in an error in state: 627. +## Ends in an error in state: 634. ## -## decl(top_var_type,no_assign) -> array_type(top_var_type) . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> array_type(top_var_type) . id_and_optional_assignment(no_assign,decl_identifier) option(remaining_declarations(no_assign)) SEMICOLON [ VECTOR UNITVECTOR TUPLE SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## ## The known suffix of the stack is as follows: ## array_type(top_var_type) @@ -3127,9 +3128,9 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL COMMA WHILE ## ## Concrete syntax: data { tuple ( real , while ## -## Ends in an error in state: 590. +## Ends in an error in state: 597. ## -## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type COMMA . separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type COMMA . separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## TUPLE LPAREN top_var_type COMMA @@ -3151,9 +3152,9 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL WHILE ## ## Concrete syntax: data { tuple ( real while ## -## Ends in an error in state: 589. +## Ends in an error in state: 596. ## -## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type . COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE LPAREN top_var_type . COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## TUPLE LPAREN top_var_type @@ -3162,9 +3163,9 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL WHILE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 515, spurious reduction of production range_constraint -> -## In state 483, spurious reduction of production type_constraint -> range_constraint -## In state 516, spurious reduction of production top_var_type -> REAL type_constraint +## In state 522, spurious reduction of production range_constraint -> +## In state 484, spurious reduction of production type_constraint -> range_constraint +## In state 523, spurious reduction of production top_var_type -> REAL type_constraint ## Invalid type specification, unmatched "(". @@ -3184,7 +3185,7 @@ program: DATABLOCK LBRACE TUPLE LPAREN REAL COMMA TUPLE LPAREN COMPLEX COMMA COM ## ## Concrete syntax: data { tuple ( real , tuple ( complex , complex ) while ## -## Ends in an error in state: 575. +## Ends in an error in state: 582. ## ## separated_nonempty_list(COMMA,higher_type(top_var_type)) -> tuple_type(top_var_type) . [ RPAREN ] ## separated_nonempty_list(COMMA,higher_type(top_var_type)) -> tuple_type(top_var_type) . COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) [ RPAREN ] @@ -3202,11 +3203,11 @@ program: DATABLOCK LBRACE TUPLE LPAREN WHILE ## ## Concrete syntax: data { tuple ( while ## -## Ends in an error in state: 489. +## Ends in an error in state: 490. ## -## tuple_type(top_var_type) -> TUPLE LPAREN . array_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## tuple_type(top_var_type) -> TUPLE LPAREN . tuple_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## tuple_type(top_var_type) -> TUPLE LPAREN . top_var_type COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE LPAREN . array_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE LPAREN . tuple_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE LPAREN . top_var_type COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## TUPLE LPAREN @@ -3221,7 +3222,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN IDENTIFIER COMMA WHILE ## ## Concrete syntax: transformed data { ( foo , while ## -## Ends in an error in state: 185. +## Ends in an error in state: 186. ## ## common_expression -> LPAREN expression COMMA . separated_nonempty_list(COMMA,expression) RPAREN [ TRANSPOSE TIMESASSIGN TIMES TILDE SEMICOLON RPAREN RBRACK RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DOTNUMERAL DIVIDEASSIGN DIVIDE COMMA COLON BAR ASSIGN AND ] ## @@ -3251,7 +3252,7 @@ functions_only: ARRAY LBRACK RBRACK TUPLE LPAREN WHILE ## ## Ends in an error in state: 21. ## -## unsized_type -> ARRAY unsized_dims TUPLE LPAREN . unsized_type COMMA separated_nonempty_list(COMMA,unsized_type) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_type -> ARRAY unsized_dims TUPLE LPAREN . unsized_type COMMA separated_nonempty_list(COMMA,unsized_type) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ARRAY unsized_dims TUPLE LPAREN @@ -3267,10 +3268,10 @@ program: DATABLOCK LBRACE ARRAY LBRACK INTNUMERAL RBRACK IDENTIFIER ## ## Concrete syntax: data { array [ 24 ] foo ## -## Ends in an error in state: 583. +## Ends in an error in state: 590. ## -## array_type(top_var_type) -> arr_dims . top_var_type [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## array_type(top_var_type) -> arr_dims . tuple_type(top_var_type) [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## array_type(top_var_type) -> arr_dims . top_var_type [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## array_type(top_var_type) -> arr_dims . tuple_type(top_var_type) [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## arr_dims @@ -3282,9 +3283,9 @@ program: DATABLOCK LBRACE ARRAY LBRACK WHILE ## ## Concrete syntax: data { array [ while ## -## Ends in an error in state: 226. +## Ends in an error in state: 227. ## -## arr_dims -> ARRAY LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] +## arr_dims -> ARRAY LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] ## ## The known suffix of the stack is as follows: ## ARRAY LBRACK @@ -3296,7 +3297,7 @@ program: DATABLOCK LBRACE ROWVECTOR LABRACK LOWER ASSIGN IDENTIFIER TRANSPOSE WH ## ## Concrete syntax: data { row_vector < lower = foo ' while ## -## Ends in an error in state: 470. +## Ends in an error in state: 471. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -3329,9 +3330,9 @@ program: MODELBLOCK LBRACE TUPLE LPAREN COMPLEX COMMA COMPLEX RPAREN UNREACHABLE ## ## Concrete syntax: model { tuple ( complex , complex ) <<<>> ## -## Ends in an error in state: 304. +## Ends in an error in state: 305. ## -## decl(sized_basic_type,expression) -> tuple_type(sized_basic_type) . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> tuple_type(sized_basic_type) . id_and_optional_assignment(expression,decl_identifier) option(remaining_declarations(expression)) SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## tuple_type(sized_basic_type) @@ -3349,11 +3350,11 @@ program: DATABLOCK LBRACE TUPLE WHILE ## ## Concrete syntax: data { tuple while ## -## Ends in an error in state: 488. +## Ends in an error in state: 489. ## -## tuple_type(top_var_type) -> TUPLE . LPAREN array_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## tuple_type(top_var_type) -> TUPLE . LPAREN tuple_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## tuple_type(top_var_type) -> TUPLE . LPAREN top_var_type COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE . LPAREN array_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE . LPAREN tuple_type(top_var_type) COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## tuple_type(top_var_type) -> TUPLE . LPAREN top_var_type COMMA separated_nonempty_list(COMMA,higher_type(top_var_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## TUPLE @@ -3372,9 +3373,9 @@ program: MODELBLOCK LBRACE REAL IDENTIFIER IDENTIFIER ## ## Concrete syntax: model { real foo foo ## -## Ends in an error in state: 328. +## Ends in an error in state: 329. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## id_and_optional_assignment(expression,decl_identifier) -> decl_identifier . optional_assignment(expression) [ SEMICOLON COMMA ] ## ## The known suffix of the stack is as follows: @@ -3389,9 +3390,9 @@ program: DATABLOCK LBRACE REAL WHILE IDENTIFIER ## ## Concrete syntax: data { real while foo ## -## Ends in an error in state: 620. +## Ends in an error in state: 627. ## -## decl(top_var_type,no_assign) -> top_var_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## decl(top_var_type,no_assign) -> top_var_type decl_identifier . LBRACK separated_nonempty_list(COMMA,expression) RBRACK [ VECTOR UNITVECTOR TUPLE SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED MATRIX INT COVMATRIX CORRMATRIX COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## id_and_optional_assignment(no_assign,decl_identifier) -> decl_identifier . optional_assignment(no_assign) [ SEMICOLON COMMA ] ## ## The known suffix of the stack is as follows: @@ -3409,7 +3410,7 @@ functions_only: ARRAY LBRACK WHILE ## ## Ends in an error in state: 14. ## -## unsized_dims -> LBRACK . list(COMMA) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_dims -> LBRACK . list(COMMA) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## LBRACK @@ -3427,9 +3428,9 @@ program: TRANSFORMEDDATABLOCK LBRACE FATAL_ERROR WHILE ## ## Concrete syntax: transformed data { fatal_error while ## -## Ends in an error in state: 293. +## Ends in an error in state: 294. ## -## atomic_statement -> FATAL_ERROR . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> FATAL_ERROR . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FATAL_ERROR @@ -3451,9 +3452,9 @@ program: MODELBLOCK LBRACE COMPLEX JACOBIAN LBRACK WHILE ## ## Concrete syntax: model { complex jacobian [ while ## -## Ends in an error in state: 329. +## Ends in an error in state: 330. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ WHILE VOID VECTOR UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED MINUS MATRIX LPAREN LBRACK LBRACE JACOBIAN INTNUMERAL INT IMAGNUMERAL IF IDENTIFIER FOR FATAL_ERROR EOF ELSE DOTNUMERAL COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type decl_identifier LBRACK @@ -3477,7 +3478,7 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER ## ## Concrete syntax: data { row_stochastic_matrix [ foo , foo ~ ## -## Ends in an error in state: 498. +## Ends in an error in state: 505. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3500,7 +3501,7 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER ## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . GEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> STOCHASTICROWMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> STOCHASTICROWMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## STOCHASTICROWMATRIX LBRACK expression COMMA expression @@ -3509,8 +3510,8 @@ program: DATABLOCK LBRACE STOCHASTICROWMATRIX LBRACK IDENTIFIER COMMA IDENTIFIER ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Expected "[" expression "," expression "]" for size of row_stochastic_matrix. @@ -3527,7 +3528,7 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIF ## ## Concrete syntax: data { column_stochastic_matrix [ foo , foo ~ ## -## Ends in an error in state: 504. +## Ends in an error in state: 511. ## ## expression -> expression . QMARK expression COLON expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . PLUS expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3550,7 +3551,7 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIF ## expression -> expression . RABRACK expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . GEQ expression [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## expression -> expression . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> STOCHASTICCOLUMNMATRIX LBRACK expression COMMA expression . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## STOCHASTICCOLUMNMATRIX LBRACK expression COMMA expression @@ -3559,26 +3560,48 @@ program: DATABLOCK LBRACE STOCHASTICCOLUMNMATRIX LBRACK IDENTIFIER COMMA IDENTIF ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 111, spurious reduction of production common_expression -> identifier -## In state 126, spurious reduction of production expression -> common_expression +## In state 112, spurious reduction of production common_expression -> identifier +## In state 127, spurious reduction of production expression -> common_expression ## Expected "[" expression "," expression "]" for size of column_stochastic_matrix. -program: DATABLOCK LBRACE SUMTOZERO LBRACK IDENTIFIER TILDE +program: DATABLOCK LBRACE SUMTOZEROVEC LBRACK IDENTIFIER TILDE ## Concrete syntax: data { sum_to_zero_vector [ foo ~ -program: DATABLOCK LBRACE SUMTOZERO LBRACK WHILE +program: DATABLOCK LBRACE SUMTOZEROVEC LBRACK WHILE ## Concrete syntax: data { sum_to_zero_vector [ while -program: DATABLOCK LBRACE SUMTOZERO WHILE +program: DATABLOCK LBRACE SUMTOZEROVEC WHILE ## ## Concrete syntax: data { sum_to_zero_vector while ## -## Ends in an error in state: 490. +## Ends in an error in state: 491. +## +## top_var_type -> SUMTOZEROVEC . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## SUMTOZEROVEC +## + +Expected "[" expression "]" for size of sum_to_zero_vector. + +program: DATABLOCK LBRACE SUMTOZEROMAT LBRACK WHILE +## Concrete syntax: data { sum_to_zero_matrix [ while +program: DATABLOCK LBRACE SUMTOZEROMAT WHILE +## Concrete syntax: data { sum_to_zero_matrix while +program: DATABLOCK LBRACE SUMTOZEROMAT LBRACK IDENTIFIER TILDE +## Concrete syntax: data { sum_to_zero_matrix [ foo ~ +program: DATABLOCK LBRACE SUMTOZEROMAT LBRACK IDENTIFIER COMMA IDENTIFIER TILDE +## Concrete syntax: data { sum_to_zero_matrix [ foo , foo ~ +program: DATABLOCK LBRACE SUMTOZEROMAT LBRACK IDENTIFIER COMMA WHILE +## +## Concrete syntax: data { sum_to_zero_matrix [ foo , while +## +## Ends in an error in state: 498. ## -## top_var_type -> SUMTOZERO . LBRACK expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZERO STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SUMTOZEROMAT LBRACK expression COMMA . expression RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TUPLE TRUNCATE TARGET SUMTOZEROVEC SUMTOZEROMAT STOCHASTICROWMATRIX STOCHASTICCOLUMNMATRIX SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER JACOBIAN INT IN IF IDENTIFIER FUNCTIONBLOCK FOR FATAL_ERROR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMPLEXVECTOR COMPLEXROWVECTOR COMPLEXMATRIX COMPLEX COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: -## SUMTOZERO +## SUMTOZEROMAT LBRACK expression COMMA ## -Expected "[" expression "]" for size of sum_to_zero_vector vector. +Expected "[" expression "," expression "]" for size of sum_to_zero_matrix. diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index a82aecb0d6..f7d27c889e 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -83,10 +83,10 @@ let nest_unsized_array basic_type n = ROWVECTOR "row_vector" ARRAY "array" TUPLE "tuple" MATRIX "matrix" ORDERED "ordered" COMPLEXVECTOR "complex_vector" COMPLEXROWVECTOR "complex_row_vector" POSITIVEORDERED "positive_ordered" SIMPLEX "simplex" UNITVECTOR "unit_vector" - SUMTOZERO "sum_to_zero_vector" CHOLESKYFACTORCORR "cholesky_factor_corr" + SUMTOZEROVEC "sum_to_zero_vector" CHOLESKYFACTORCORR "cholesky_factor_corr" CHOLESKYFACTORCOV "cholesky_factor_cov" CORRMATRIX "corr_matrix" COVMATRIX "cov_matrix" COMPLEXMATRIX "complex_matrix" STOCHASTICCOLUMNMATRIX "column_stochastic_matrix" - STOCHASTICROWMATRIX "row_stochastic_matrix" + STOCHASTICROWMATRIX "row_stochastic_matrix" SUMTOZEROMAT "sum_to_zero_matrix" %token LOWER "lower" UPPER "upper" OFFSET "offset" MULTIPLIER "multiplier" %token JACOBIAN "jacobian" %token INTNUMERAL "24" @@ -255,7 +255,8 @@ reserved_word: | POSITIVEORDERED { "positive_ordered", $loc, true } | SIMPLEX { "simplex", $loc, true } | UNITVECTOR { "unit_vector", $loc, true } - | SUMTOZERO { "sum_to_zero_vector", $loc, true } + | SUMTOZEROVEC { "sum_to_zero_vector", $loc, true } + | SUMTOZEROMAT { "sum_to_zero_matrix", $loc, true } | CHOLESKYFACTORCORR { "cholesky_factor_corr", $loc, true } | CHOLESKYFACTORCOV { "cholesky_factor_cov", $loc, true } | CORRMATRIX { "corr_matrix", $loc, true } @@ -522,8 +523,8 @@ top_var_type: { grammar_logger "SIMPLEX_top_var_type" ; (SVector (AoS, e), Simplex) } | UNITVECTOR LBRACK e=expression RBRACK { grammar_logger "UNITVECTOR_top_var_type" ; (SVector (AoS, e), UnitVector) } - | SUMTOZERO LBRACK e=expression RBRACK - { grammar_logger "SUMTOZERO_top_var_type" ; (SVector (AoS, e), SumToZero) } + | SUMTOZEROVEC LBRACK e=expression RBRACK + { grammar_logger "SUMTOZEROVEC_top_var_type" ; (SVector (AoS, e), SumToZero) } | CHOLESKYFACTORCORR LBRACK e=expression RBRACK { grammar_logger "CHOLESKYFACTORCORR_top_var_type" ; @@ -540,6 +541,8 @@ top_var_type: { grammar_logger "CORRMATRIX_top_var_type" ; (SMatrix (AoS, e, e), Correlation) } | COVMATRIX LBRACK e=expression RBRACK { grammar_logger "COVMATRIX_top_var_type" ; (SizedType.SMatrix (AoS, e, e), Transformation.Covariance) } + | SUMTOZEROMAT LBRACK e1=expression COMMA e2=expression RBRACK + { grammar_logger "SUMTOZEROMAT_top_var_type" ; (SizedType.SMatrix (AoS, e1, e2), Transformation.SumToZero) } | STOCHASTICCOLUMNMATRIX LBRACK e1=expression COMMA e2=expression RBRACK { grammar_logger "STOCHASTICCOLUMNMATRIX_top_var_type" ; (SizedType.SMatrix (AoS, e1, e2), Transformation.StochasticColumn) } | STOCHASTICROWMATRIX LBRACK e1=expression COMMA e2=expression RBRACK diff --git a/src/stan_math_signatures/Generate.ml b/src/stan_math_signatures/Generate.ml index ba9c85de74..ef041ad124 100644 --- a/src/stan_math_signatures/Generate.ml +++ b/src/stan_math_signatures/Generate.ml @@ -581,10 +581,10 @@ let add_first_arg_vector_ternary name supports_soa = (List.range 0 8) (** For functions that accept and return (arrays of...) vectors*) -let add_nested_vector_unary name supports_soa = +let add_nested_unary base name supports_soa = List.iter ~f:(fun i -> - let t = bare_array_type (UVector, i) in + let t = bare_array_type (base, i) in add_unqualified (name, ReturnType t, [t], supports_soa)) (List.range 0 8) @@ -1932,9 +1932,9 @@ let () = add_unqualified ("ones_array", ReturnType (UArray UReal), [UInt], SoA); add_unqualified ("ones_row_vector", ReturnType URowVector, [UInt], SoA); add_unqualified ("ones_vector", ReturnType UVector, [UInt], SoA); - add_nested_vector_unary "ordered_jacobian" SoA; - add_nested_vector_unary "ordered_constrain" SoA; - add_nested_vector_unary "ordered_unconstrain" AoS; + add_nested_unary UVector "ordered_jacobian" SoA; + add_nested_unary UVector "ordered_constrain" SoA; + add_nested_unary UVector "ordered_unconstrain" AoS; add_unqualified ( "ordered_logistic_glm_lpmf" , ReturnType UReal @@ -2005,9 +2005,9 @@ let () = , SoA ); add_unqualified ("polar", ReturnType UComplex, [UReal; UReal], AoS); add_nullary "positive_infinity"; - add_nested_vector_unary "positive_ordered_jacobian" SoA; - add_nested_vector_unary "positive_ordered_constrain" SoA; - add_nested_vector_unary "positive_ordered_unconstrain" AoS; + add_nested_unary UVector "positive_ordered_jacobian" SoA; + add_nested_unary UVector "positive_ordered_constrain" SoA; + add_nested_unary UVector "positive_ordered_unconstrain" AoS; add_binary_vec "pow" AoS; add_binary_vec_complex_complex "pow" AoS; add_unqualified ("prod", ReturnType UInt, [UArray UInt], AoS); @@ -2227,9 +2227,9 @@ let () = , SoA )) (List.range 1 4)) bare_types; - add_nested_vector_unary "simplex_jacobian" SoA; - add_nested_vector_unary "simplex_constrain" SoA; - add_nested_vector_unary "simplex_unconstrain" AoS; + add_nested_unary UVector "simplex_jacobian" SoA; + add_nested_unary UVector "simplex_constrain" SoA; + add_nested_unary UVector "simplex_unconstrain" AoS; add_unqualified ("sin", ReturnType UComplex, [UComplex], AoS); add_unqualified ("sinh", ReturnType UComplex, [UComplex], AoS); add_unqualified ("singular_values", ReturnType UVector, [UMatrix], SoA); @@ -2338,9 +2338,12 @@ let () = add_unqualified ("sum", ReturnType UComplex, [UComplexVector], SoA); add_unqualified ("sum", ReturnType UComplex, [UComplexRowVector], SoA); add_unqualified ("sum", ReturnType UComplex, [UComplexMatrix], SoA); - add_nested_vector_unary "sum_to_zero_jacobian" SoA; - add_nested_vector_unary "sum_to_zero_constrain" SoA; - add_nested_vector_unary "sum_to_zero_unconstrain" AoS; + add_nested_unary UVector "sum_to_zero_jacobian" SoA; + add_nested_unary UMatrix "sum_to_zero_jacobian" SoA; + add_nested_unary UVector "sum_to_zero_constrain" SoA; + add_nested_unary UMatrix "sum_to_zero_constrain" SoA; + add_nested_unary UVector "sum_to_zero_unconstrain" AoS; + add_nested_unary UMatrix "sum_to_zero_unconstrain" AoS; (* TODO (future): SoA inside of tuples, update following signatures *) add_unqualified ("svd", ReturnType (UTuple [UMatrix; UVector; UMatrix]), [UMatrix], AoS); @@ -2530,9 +2533,9 @@ let () = ("transpose", ReturnType UComplexVector, [UComplexRowVector], SoA); add_unqualified ("transpose", ReturnType UComplexMatrix, [UComplexMatrix], SoA); add_unqualified ("uniform_simplex", ReturnType UVector, [UInt], SoA); - add_nested_vector_unary "unit_vector_jacobian" SoA; - add_nested_vector_unary "unit_vector_constrain" SoA; - add_nested_vector_unary "unit_vector_unconstrain" AoS; + add_nested_unary UVector "unit_vector_jacobian" SoA; + add_nested_unary UVector "unit_vector_constrain" SoA; + add_nested_unary UVector "unit_vector_unconstrain" AoS; add_first_arg_vector_binary "upper_bound_jacobian" SoA; add_first_arg_vector_binary "upper_bound_constrain" SoA; add_first_arg_vector_binary "upper_bound_unconstrain" AoS; diff --git a/test/integration/bad/reserved/stanc.expected b/test/integration/bad/reserved/stanc.expected index b08c4e8eeb..3c4f26815b 100644 --- a/test/integration/bad/reserved/stanc.expected +++ b/test/integration/bad/reserved/stanc.expected @@ -380,8 +380,19 @@ Semantic error in 'struct.stan', line 2, column 7 to column 13: Identifier 'struct' clashes with reserved keyword. [exit 1] - $ ../../../../../install/default/bin/stanc sum_to_zero.stan -Syntax error in 'sum_to_zero.stan', line 2, column 7 to column 25, parsing error: + $ ../../../../../install/default/bin/stanc sum_to_zero_matrix.stan +Syntax error in 'sum_to_zero_matrix.stan', line 2, column 7 to column 25, parsing error: + ------------------------------------------------- + 1: data { + 2: real sum_to_zero_matrix; + ^ + 3: } + ------------------------------------------------- + +Expected a new identifier but found reserved keyword 'sum_to_zero_matrix'. +[exit 1] + $ ../../../../../install/default/bin/stanc sum_to_zero_vector.stan +Syntax error in 'sum_to_zero_vector.stan', line 2, column 7 to column 25, parsing error: ------------------------------------------------- 1: data { 2: real sum_to_zero_vector; diff --git a/test/integration/bad/reserved/sum_to_zero_matrix.stan b/test/integration/bad/reserved/sum_to_zero_matrix.stan new file mode 100644 index 0000000000..b5a4c7439f --- /dev/null +++ b/test/integration/bad/reserved/sum_to_zero_matrix.stan @@ -0,0 +1,3 @@ +data { + real sum_to_zero_matrix; +} diff --git a/test/integration/bad/reserved/sum_to_zero.stan b/test/integration/bad/reserved/sum_to_zero_vector.stan similarity index 100% rename from test/integration/bad/reserved/sum_to_zero.stan rename to test/integration/bad/reserved/sum_to_zero_vector.stan diff --git a/test/integration/bad/stanc.expected b/test/integration/bad/stanc.expected index a7c9809b0a..8919bdcd27 100644 --- a/test/integration/bad/stanc.expected +++ b/test/integration/bad/stanc.expected @@ -23,7 +23,8 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, sum_to_zero_vector, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - row_stochastic_matrix, column_stochastic_matrix, tuple(...) + sum_to_zero_matrix, row_stochastic_matrix, column_stochastic_matrix, + tuple(...) optionally preceded by a single array[...] [exit 1] $ ../../../../install/default/bin/stanc array-expr-decl-bad3.stan @@ -39,7 +40,8 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, sum_to_zero_vector, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - row_stochastic_matrix, column_stochastic_matrix, tuple(...) + sum_to_zero_matrix, row_stochastic_matrix, column_stochastic_matrix, + tuple(...) optionally preceded by a single array[...] [exit 1] $ ../../../../install/default/bin/stanc array-read-write-assign.stan @@ -843,7 +845,8 @@ Invalid type in declaration. Valid types: int, real, vector, row_vector, matrix, unit_vector, simplex, sum_to_zero_vector, ordered, positive_ordered, corr_matrix, cov_matrix, cholesky_factor_corr, cholesky_factor_cov, - row_stochastic_matrix, column_stochastic_matrix, tuple(...) + sum_to_zero_matrix, row_stochastic_matrix, column_stochastic_matrix, + tuple(...) optionally preceded by a single array[...] [exit 1] $ ../../../../install/default/bin/stanc err-decl-matrix-2.stan diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index e069621967..54577c1d93 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -45241,26 +45241,42 @@ namespace sum_to_zero_model_namespace { using stan::model::model_base_crtp; using namespace stan::math; stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = +static constexpr std::array locations_array__ = {" (found before start of program)", - " (in 'sum_to_zero.stan', line 11, column 3 to column 32)", - " (in 'sum_to_zero.stan', line 12, column 3 to column 45)", - " (in 'sum_to_zero.stan', line 16, column 3 to column 41)", - " (in 'sum_to_zero.stan', line 17, column 3 to column 55)", - " (in 'sum_to_zero.stan', line 21, column 3 to column 42)", - " (in 'sum_to_zero.stan', line 22, column 3 to column 56)", - " (in 'sum_to_zero.stan', line 2, column 3 to column 32)", - " (in 'sum_to_zero.stan', line 3, column 3 to column 45)", - " (in 'sum_to_zero.stan', line 7, column 3 to column 41)", - " (in 'sum_to_zero.stan', line 8, column 3 to column 46)"}; + " (in 'sum_to_zero.stan', line 15, column 3 to column 33)", + " (in 'sum_to_zero.stan', line 16, column 3 to column 46)", + " (in 'sum_to_zero.stan', line 17, column 3 to column 34)", + " (in 'sum_to_zero.stan', line 18, column 3 to column 47)", + " (in 'sum_to_zero.stan', line 22, column 3 to column 43)", + " (in 'sum_to_zero.stan', line 23, column 3 to column 57)", + " (in 'sum_to_zero.stan', line 24, column 3 to column 44)", + " (in 'sum_to_zero.stan', line 25, column 3 to column 58)", + " (in 'sum_to_zero.stan', line 29, column 3 to column 44)", + " (in 'sum_to_zero.stan', line 30, column 3 to column 58)", + " (in 'sum_to_zero.stan', line 31, column 3 to column 45)", + " (in 'sum_to_zero.stan', line 32, column 3 to column 59)", + " (in 'sum_to_zero.stan', line 2, column 3 to column 33)", + " (in 'sum_to_zero.stan', line 3, column 3 to column 46)", + " (in 'sum_to_zero.stan', line 4, column 3 to column 34)", + " (in 'sum_to_zero.stan', line 5, column 3 to column 47)", + " (in 'sum_to_zero.stan', line 9, column 3 to column 43)", + " (in 'sum_to_zero.stan', line 10, column 3 to column 47)", + " (in 'sum_to_zero.stan', line 11, column 3 to column 44)", + " (in 'sum_to_zero.stan', line 12, column 3 to column 48)"}; class sum_to_zero_model final : public model_base_crtp { private: - Eigen::Matrix d_stz_data__; - std::vector>> d_astz; - Eigen::Matrix td_stz_data__; - std::vector>> td_astz; - Eigen::Map> d_stz{nullptr, 0}; - Eigen::Map> td_stz{nullptr, 0}; + Eigen::Matrix d_stzv_data__; + std::vector>> d_astzv; + Eigen::Matrix d_stzm_data__; + std::vector>> d_astzm; + Eigen::Matrix td_stzv_data__; + std::vector>> td_astzv; + Eigen::Matrix td_stzm_data__; + std::vector>> td_astzm; + Eigen::Map> d_stzv{nullptr, 0}; + Eigen::Map> d_stzm{nullptr, 0, 0}; + Eigen::Map> td_stzv{nullptr, 0}; + Eigen::Map> td_stzm{nullptr, 0, 0}; public: ~sum_to_zero_model() {} sum_to_zero_model(stan::io::var_context& context__, unsigned int @@ -45283,44 +45299,44 @@ class sum_to_zero_model final : public model_base_crtp { try { int pos__ = std::numeric_limits::min(); pos__ = 1; - current_statement__ = 7; - context__.validate_dims("data initialization", "d_stz", "double", + current_statement__ = 13; + context__.validate_dims("data initialization", "d_stzv", "double", std::vector{static_cast(10)}); - d_stz_data__ = Eigen::Matrix::Constant(10, - std::numeric_limits::quiet_NaN()); - new (&d_stz) - Eigen::Map>(d_stz_data__.data(), 10); + d_stzv_data__ = Eigen::Matrix::Constant(10, + std::numeric_limits::quiet_NaN()); + new (&d_stzv) + Eigen::Map>(d_stzv_data__.data(), 10); { - std::vector d_stz_flat__; - current_statement__ = 7; - d_stz_flat__ = context__.vals_r("d_stz"); + std::vector d_stzv_flat__; + current_statement__ = 13; + d_stzv_flat__ = context__.vals_r("d_stzv"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { - stan::model::assign(d_stz, d_stz_flat__[(pos__ - 1)], - "assigning variable d_stz", stan::model::index_uni(sym1__)); + stan::model::assign(d_stzv, d_stzv_flat__[(pos__ - 1)], + "assigning variable d_stzv", stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); } } - current_statement__ = 7; - stan::math::check_sum_to_zero(function__, "d_stz", d_stz); - current_statement__ = 8; - context__.validate_dims("data initialization", "d_astz", "double", + current_statement__ = 13; + stan::math::check_sum_to_zero(function__, "d_stzv", d_stzv); + current_statement__ = 14; + context__.validate_dims("data initialization", "d_astzv", "double", std::vector{static_cast(2), static_cast(3), static_cast(10)}); - d_astz = std::vector>>(2, - std::vector>(3, - Eigen::Matrix::Constant(10, - std::numeric_limits::quiet_NaN()))); + d_astzv = std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(10, + std::numeric_limits::quiet_NaN()))); { - std::vector d_astz_flat__; - current_statement__ = 8; - d_astz_flat__ = context__.vals_r("d_astz"); + std::vector d_astzv_flat__; + current_statement__ = 14; + d_astzv_flat__ = context__.vals_r("d_astzv"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - stan::model::assign(d_astz, d_astz_flat__[(pos__ - 1)], - "assigning variable d_astz", stan::model::index_uni(sym3__), + stan::model::assign(d_astzv, d_astzv_flat__[(pos__ - 1)], + "assigning variable d_astzv", stan::model::index_uni(sym3__), stan::model::index_uni(sym2__), stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); @@ -45328,28 +45344,99 @@ class sum_to_zero_model final : public model_base_crtp { } } } - current_statement__ = 8; - stan::math::check_sum_to_zero(function__, "d_astz", d_astz); - current_statement__ = 9; - td_stz_data__ = Eigen::Matrix::Constant(10, + current_statement__ = 14; + stan::math::check_sum_to_zero(function__, "d_astzv", d_astzv); + current_statement__ = 15; + context__.validate_dims("data initialization", "d_stzm", "double", + std::vector{static_cast(4), static_cast(5)}); + d_stzm_data__ = Eigen::Matrix::Constant(4, 5, std::numeric_limits::quiet_NaN()); - new (&td_stz) - Eigen::Map>(td_stz_data__.data(), 10); - current_statement__ = 9; - stan::model::assign(td_stz, d_stz, "assigning variable td_stz"); - current_statement__ = 10; - td_astz = std::vector>>(2, - std::vector>(3, - Eigen::Matrix::Constant(10, + new (&d_stzm) + Eigen::Map>(d_stzm_data__.data(), 4, 5); + { + std::vector d_stzm_flat__; + current_statement__ = 15; + d_stzm_flat__ = context__.vals_r("d_stzm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + stan::model::assign(d_stzm, d_stzm_flat__[(pos__ - 1)], + "assigning variable d_stzm", stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 15; + stan::math::check_sum_to_zero(function__, "d_stzm", d_stzm); + current_statement__ = 16; + context__.validate_dims("data initialization", "d_astzm", "double", + std::vector{static_cast(2), static_cast(3), + static_cast(4), static_cast(5)}); + d_astzm = std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, std::numeric_limits::quiet_NaN()))); - current_statement__ = 9; - stan::math::check_sum_to_zero(function__, "td_stz", td_stz); - current_statement__ = 10; - stan::math::check_sum_to_zero(function__, "td_astz", td_astz); + { + std::vector d_astzm_flat__; + current_statement__ = 16; + d_astzm_flat__ = context__.vals_r("d_astzm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + stan::model::assign(d_astzm, d_astzm_flat__[(pos__ - 1)], + "assigning variable d_astzm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 16; + stan::math::check_sum_to_zero(function__, "d_astzm", d_astzm); + current_statement__ = 17; + td_stzv_data__ = Eigen::Matrix::Constant(10, + std::numeric_limits::quiet_NaN()); + new (&td_stzv) + Eigen::Map>(td_stzv_data__.data(), 10); + current_statement__ = 17; + stan::model::assign(td_stzv, d_stzv, "assigning variable td_stzv"); + current_statement__ = 18; + td_astzv = std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(10, + std::numeric_limits::quiet_NaN()))); + current_statement__ = 19; + td_stzm_data__ = Eigen::Matrix::Constant(4, 5, + std::numeric_limits::quiet_NaN()); + new (&td_stzm) + Eigen::Map>(td_stzm_data__.data(), 4, 5); + current_statement__ = 19; + stan::model::assign(td_stzm, d_stzm, "assigning variable td_stzm"); + current_statement__ = 20; + td_astzm = std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, + std::numeric_limits::quiet_NaN()))); + current_statement__ = 17; + stan::math::check_sum_to_zero(function__, "td_stzv", td_stzv); + current_statement__ = 18; + stan::math::check_sum_to_zero(function__, "td_astzv", td_astzv); + current_statement__ = 19; + stan::math::check_sum_to_zero(function__, "td_stzm", td_stzm); + current_statement__ = 20; + stan::math::check_sum_to_zero(function__, "td_astzm", td_astzm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } - num_params_r__ = (10 - 1) + (2 * (3 * (10 - 1))); + num_params_r__ = (10 - 1) + (2 * (3 * (10 - 1))) + ((4 - 1) * (5 - 1)) + + (2 * (3 * ((4 - 1) * (5 - 1)))); } inline std::string model_name() const final { return "sum_to_zero_model"; @@ -45383,29 +45470,54 @@ class sum_to_zero_model final : public model_base_crtp { (void) function__; try { current_statement__ = 1; - auto p_stz = + auto p_stzv = in__.template read_constrain_sum_to_zero< Eigen::Matrix, jacobian__>(lp__, 10); current_statement__ = 2; - auto p_astz = + auto p_astzv = in__.template read_constrain_sum_to_zero< std::vector>>, jacobian__>(lp__, 2, 3, 10); - Eigen::Matrix tp_stz = - Eigen::Matrix::Constant(10, DUMMY_VAR__); current_statement__ = 3; - stan::model::assign(tp_stz, p_stz, "assigning variable tp_stz"); + auto p_stzm = + in__.template read_constrain_sum_to_zero< + Eigen::Matrix, jacobian__>(lp__, 4, 5); + current_statement__ = 4; + auto p_astzm = + in__.template read_constrain_sum_to_zero< + std::vector>>, + jacobian__>(lp__, 2, 3, 4, 5); + Eigen::Matrix tp_stzv = + Eigen::Matrix::Constant(10, DUMMY_VAR__); + current_statement__ = 5; + stan::model::assign(tp_stzv, p_stzv, "assigning variable tp_stzv"); std::vector>> - tp_astz = + tp_astzv = std::vector>>(2, std::vector>(3, Eigen::Matrix::Constant(10, DUMMY_VAR__))); - current_statement__ = 4; - stan::model::assign(tp_astz, p_astz, "assigning variable tp_astz"); - current_statement__ = 3; - stan::math::check_sum_to_zero(function__, "tp_stz", tp_stz); - current_statement__ = 4; - stan::math::check_sum_to_zero(function__, "tp_astz", tp_astz); + current_statement__ = 6; + stan::model::assign(tp_astzv, p_astzv, "assigning variable tp_astzv"); + Eigen::Matrix tp_stzm = + Eigen::Matrix::Constant(4, 5, DUMMY_VAR__); + current_statement__ = 7; + stan::model::assign(tp_stzm, p_stzm, "assigning variable tp_stzm"); + std::vector>> + tp_astzm = + std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, + DUMMY_VAR__))); + current_statement__ = 8; + stan::model::assign(tp_astzm, p_astzm, "assigning variable tp_astzm"); + current_statement__ = 5; + stan::math::check_sum_to_zero(function__, "tp_stzv", tp_stzv); + current_statement__ = 6; + stan::math::check_sum_to_zero(function__, "tp_astzv", tp_astzv); + current_statement__ = 7; + stan::math::check_sum_to_zero(function__, "tp_stzm", tp_stzm); + current_statement__ = 8; + stan::math::check_sum_to_zero(function__, "tp_astzm", tp_astzm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -45437,29 +45549,54 @@ class sum_to_zero_model final : public model_base_crtp { (void) function__; try { current_statement__ = 1; - auto p_stz = + auto p_stzv = in__.template read_constrain_sum_to_zero< Eigen::Matrix, jacobian__>(lp__, 10); current_statement__ = 2; - auto p_astz = + auto p_astzv = in__.template read_constrain_sum_to_zero< std::vector>>, jacobian__>(lp__, 2, 3, 10); - Eigen::Matrix tp_stz = - Eigen::Matrix::Constant(10, DUMMY_VAR__); current_statement__ = 3; - stan::model::assign(tp_stz, p_stz, "assigning variable tp_stz"); + auto p_stzm = + in__.template read_constrain_sum_to_zero< + Eigen::Matrix, jacobian__>(lp__, 4, 5); + current_statement__ = 4; + auto p_astzm = + in__.template read_constrain_sum_to_zero< + std::vector>>, + jacobian__>(lp__, 2, 3, 4, 5); + Eigen::Matrix tp_stzv = + Eigen::Matrix::Constant(10, DUMMY_VAR__); + current_statement__ = 5; + stan::model::assign(tp_stzv, p_stzv, "assigning variable tp_stzv"); std::vector>> - tp_astz = + tp_astzv = std::vector>>(2, std::vector>(3, Eigen::Matrix::Constant(10, DUMMY_VAR__))); - current_statement__ = 4; - stan::model::assign(tp_astz, p_astz, "assigning variable tp_astz"); - current_statement__ = 3; - stan::math::check_sum_to_zero(function__, "tp_stz", tp_stz); - current_statement__ = 4; - stan::math::check_sum_to_zero(function__, "tp_astz", tp_astz); + current_statement__ = 6; + stan::model::assign(tp_astzv, p_astzv, "assigning variable tp_astzv"); + Eigen::Matrix tp_stzm = + Eigen::Matrix::Constant(4, 5, DUMMY_VAR__); + current_statement__ = 7; + stan::model::assign(tp_stzm, p_stzm, "assigning variable tp_stzm"); + std::vector>> + tp_astzm = + std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, + DUMMY_VAR__))); + current_statement__ = 8; + stan::model::assign(tp_astzm, p_astzm, "assigning variable tp_astzm"); + current_statement__ = 5; + stan::math::check_sum_to_zero(function__, "tp_stzv", tp_stzv); + current_statement__ = 6; + stan::math::check_sum_to_zero(function__, "tp_astzv", tp_astzv); + current_statement__ = 7; + stan::math::check_sum_to_zero(function__, "tp_stzm", tp_stzm); + current_statement__ = 8; + stan::math::check_sum_to_zero(function__, "tp_astzm", tp_astzm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -45502,28 +45639,60 @@ class sum_to_zero_model final : public model_base_crtp { (void) function__; try { current_statement__ = 1; - auto p_stz = + auto p_stzv = in__.template read_constrain_sum_to_zero< Eigen::Matrix, jacobian__>(lp__, 10); current_statement__ = 2; - auto p_astz = + auto p_astzv = in__.template read_constrain_sum_to_zero< std::vector>>, jacobian__>(lp__, 2, 3, 10); - Eigen::Matrix tp_stz = + current_statement__ = 3; + auto p_stzm = + in__.template read_constrain_sum_to_zero< + Eigen::Matrix, jacobian__>(lp__, 4, 5); + current_statement__ = 4; + auto p_astzm = + in__.template read_constrain_sum_to_zero< + std::vector>>, + jacobian__>(lp__, 2, 3, 4, 5); + Eigen::Matrix tp_stzv = Eigen::Matrix::Constant(10, std::numeric_limits::quiet_NaN()); - std::vector>> tp_astz = + std::vector>> tp_astzv = std::vector>>(2, std::vector>(3, Eigen::Matrix::Constant(10, std::numeric_limits::quiet_NaN()))); - out__.write(p_stz); + Eigen::Matrix tp_stzm = + Eigen::Matrix::Constant(4, 5, + std::numeric_limits::quiet_NaN()); + std::vector>> tp_astzm = + std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, + std::numeric_limits::quiet_NaN()))); + out__.write(p_stzv); current_statement__ = 2; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - out__.write(p_astz[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + out__.write(p_astzv[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + out__.write(p_stzm); + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + out__.write(stan::model::rvalue(p_astzm, "p_astzm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__))); + } } } } @@ -45532,21 +45701,44 @@ class sum_to_zero_model final : public model_base_crtp { stan::math::primitive_value(emit_generated_quantities__)))) { return ; } - current_statement__ = 3; - stan::model::assign(tp_stz, p_stz, "assigning variable tp_stz"); - current_statement__ = 4; - stan::model::assign(tp_astz, p_astz, "assigning variable tp_astz"); - current_statement__ = 3; - stan::math::check_sum_to_zero(function__, "tp_stz", tp_stz); - current_statement__ = 4; - stan::math::check_sum_to_zero(function__, "tp_astz", tp_astz); + current_statement__ = 5; + stan::model::assign(tp_stzv, p_stzv, "assigning variable tp_stzv"); + current_statement__ = 6; + stan::model::assign(tp_astzv, p_astzv, "assigning variable tp_astzv"); + current_statement__ = 7; + stan::model::assign(tp_stzm, p_stzm, "assigning variable tp_stzm"); + current_statement__ = 8; + stan::model::assign(tp_astzm, p_astzm, "assigning variable tp_astzm"); + current_statement__ = 5; + stan::math::check_sum_to_zero(function__, "tp_stzv", tp_stzv); + current_statement__ = 6; + stan::math::check_sum_to_zero(function__, "tp_astzv", tp_astzv); + current_statement__ = 7; + stan::math::check_sum_to_zero(function__, "tp_stzm", tp_stzm); + current_statement__ = 8; + stan::math::check_sum_to_zero(function__, "tp_astzm", tp_astzm); if (emit_transformed_parameters__) { - out__.write(tp_stz); - current_statement__ = 4; + out__.write(tp_stzv); + current_statement__ = 6; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - out__.write(tp_astz[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + out__.write(tp_astzv[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + out__.write(tp_stzm); + current_statement__ = 8; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + out__.write(stan::model::rvalue(tp_astzm, "tp_astzm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__))); + } } } } @@ -45554,28 +45746,59 @@ class sum_to_zero_model final : public model_base_crtp { if (stan::math::logical_negation(emit_generated_quantities__)) { return ; } - Eigen::Matrix gq_stz = + Eigen::Matrix gq_stzv = Eigen::Matrix::Constant(10, std::numeric_limits::quiet_NaN()); - current_statement__ = 5; - stan::model::assign(gq_stz, tp_stz, "assigning variable gq_stz"); - std::vector>> gq_astz = + current_statement__ = 9; + stan::model::assign(gq_stzv, tp_stzv, "assigning variable gq_stzv"); + std::vector>> gq_astzv = std::vector>>(2, std::vector>(3, Eigen::Matrix::Constant(10, std::numeric_limits::quiet_NaN()))); - current_statement__ = 6; - stan::model::assign(gq_astz, tp_astz, "assigning variable gq_astz"); - current_statement__ = 5; - stan::math::check_sum_to_zero(function__, "gq_stz", gq_stz); - current_statement__ = 6; - stan::math::check_sum_to_zero(function__, "gq_astz", gq_astz); - out__.write(gq_stz); - current_statement__ = 6; + current_statement__ = 10; + stan::model::assign(gq_astzv, tp_astzv, "assigning variable gq_astzv"); + Eigen::Matrix gq_stzm = + Eigen::Matrix::Constant(4, 5, + std::numeric_limits::quiet_NaN()); + current_statement__ = 11; + stan::model::assign(gq_stzm, tp_stzm, "assigning variable gq_stzm"); + std::vector>> gq_astzm = + std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, + std::numeric_limits::quiet_NaN()))); + current_statement__ = 12; + stan::model::assign(gq_astzm, tp_astzm, "assigning variable gq_astzm"); + current_statement__ = 9; + stan::math::check_sum_to_zero(function__, "gq_stzv", gq_stzv); + current_statement__ = 10; + stan::math::check_sum_to_zero(function__, "gq_astzv", gq_astzv); + current_statement__ = 11; + stan::math::check_sum_to_zero(function__, "gq_stzm", gq_stzm); + current_statement__ = 12; + stan::math::check_sum_to_zero(function__, "gq_astzm", gq_astzm); + out__.write(gq_stzv); + current_statement__ = 10; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - out__.write(gq_astz[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + out__.write(gq_astzv[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + out__.write(gq_stzm); + current_statement__ = 12; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + out__.write(stan::model::rvalue(gq_astzm, "gq_astzm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__))); + } } } } @@ -45599,14 +45822,15 @@ class sum_to_zero_model final : public model_base_crtp { // suppress unused var warning (void) DUMMY_VAR__; try { - Eigen::Matrix p_stz = + Eigen::Matrix p_stzv = Eigen::Matrix::Constant(10, DUMMY_VAR__); current_statement__ = 1; - stan::model::assign(p_stz, + stan::model::assign(p_stzv, in__.read>(10), - "assigning variable p_stz"); - out__.write_free_sum_to_zero(p_stz); - std::vector>> p_astz = + "assigning variable p_stzv"); + out__.write_free_sum_to_zero(p_stzv); + std::vector>> + p_astzv = std::vector>>(2, std::vector>(3, Eigen::Matrix::Constant(10, DUMMY_VAR__))); @@ -45615,13 +45839,42 @@ class sum_to_zero_model final : public model_base_crtp { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { current_statement__ = 2; - stan::model::assign(p_astz, in__.read(), - "assigning variable p_astz", stan::model::index_uni(sym3__), + stan::model::assign(p_astzv, in__.read(), + "assigning variable p_astzv", stan::model::index_uni(sym3__), stan::model::index_uni(sym2__), stan::model::index_uni(sym1__)); } } } - out__.write_free_sum_to_zero(p_astz); + out__.write_free_sum_to_zero(p_astzv); + Eigen::Matrix p_stzm = + Eigen::Matrix::Constant(4, 5, DUMMY_VAR__); + current_statement__ = 3; + stan::model::assign(p_stzm, + in__.read>(4, 5), + "assigning variable p_stzm"); + out__.write_free_sum_to_zero(p_stzm); + std::vector>> + p_astzm = + std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, + DUMMY_VAR__))); + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + current_statement__ = 4; + stan::model::assign(p_astzm, in__.read(), + "assigning variable p_astzm", stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + } + } + } + } + out__.write_free_sum_to_zero(p_astzm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -45640,42 +45893,52 @@ class sum_to_zero_model final : public model_base_crtp { (void) DUMMY_VAR__; try { current_statement__ = 1; - context__.validate_dims("parameter initialization", "p_stz", "double", + context__.validate_dims("parameter initialization", "p_stzv", "double", std::vector{static_cast(10)}); current_statement__ = 2; - context__.validate_dims("parameter initialization", "p_astz", "double", + context__.validate_dims("parameter initialization", "p_astzv", + "double", std::vector{static_cast(2), static_cast(3), static_cast(10)}); + current_statement__ = 3; + context__.validate_dims("parameter initialization", "p_stzm", "double", + std::vector{static_cast(4), static_cast(5)}); + current_statement__ = 4; + context__.validate_dims("parameter initialization", "p_astzm", + "double", + std::vector{static_cast(2), static_cast(3), + static_cast(4), static_cast(5)}); int pos__ = std::numeric_limits::min(); pos__ = 1; - Eigen::Matrix p_stz = + Eigen::Matrix p_stzv = Eigen::Matrix::Constant(10, DUMMY_VAR__); { - std::vector p_stz_flat__; + std::vector p_stzv_flat__; current_statement__ = 1; - p_stz_flat__ = context__.vals_r("p_stz"); + p_stzv_flat__ = context__.vals_r("p_stzv"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { - stan::model::assign(p_stz, p_stz_flat__[(pos__ - 1)], - "assigning variable p_stz", stan::model::index_uni(sym1__)); + stan::model::assign(p_stzv, p_stzv_flat__[(pos__ - 1)], + "assigning variable p_stzv", stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); } } - out__.write_free_sum_to_zero(p_stz); - std::vector>> p_astz = + out__.write_free_sum_to_zero(p_stzv); + std::vector>> + p_astzv = std::vector>>(2, std::vector>(3, Eigen::Matrix::Constant(10, DUMMY_VAR__))); { - std::vector p_astz_flat__; + std::vector p_astzv_flat__; current_statement__ = 2; - p_astz_flat__ = context__.vals_r("p_astz"); + p_astzv_flat__ = context__.vals_r("p_astzv"); pos__ = 1; for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - stan::model::assign(p_astz, p_astz_flat__[(pos__ - 1)], - "assigning variable p_astz", stan::model::index_uni(sym3__), + stan::model::assign(p_astzv, p_astzv_flat__[(pos__ - 1)], + "assigning variable p_astzv", stan::model::index_uni(sym3__), stan::model::index_uni(sym2__), stan::model::index_uni(sym1__)); pos__ = (pos__ + 1); @@ -45683,7 +45946,52 @@ class sum_to_zero_model final : public model_base_crtp { } } } - out__.write_free_sum_to_zero(p_astz); + out__.write_free_sum_to_zero(p_astzv); + Eigen::Matrix p_stzm = + Eigen::Matrix::Constant(4, 5, DUMMY_VAR__); + { + std::vector p_stzm_flat__; + current_statement__ = 3; + p_stzm_flat__ = context__.vals_r("p_stzm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + stan::model::assign(p_stzm, p_stzm_flat__[(pos__ - 1)], + "assigning variable p_stzm", stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + out__.write_free_sum_to_zero(p_stzm); + std::vector>> + p_astzm = + std::vector>>(2, + std::vector>(3, + Eigen::Matrix::Constant(4, 5, + DUMMY_VAR__))); + { + std::vector p_astzm_flat__; + current_statement__ = 4; + p_astzm_flat__ = context__.vals_r("p_astzm"); + pos__ = 1; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + stan::model::assign(p_astzm, p_astzm_flat__[(pos__ - 1)], + "assigning variable p_astzm", + stan::model::index_uni(sym4__), + stan::model::index_uni(sym3__), + stan::model::index_uni(sym2__), + stan::model::index_uni(sym1__)); + pos__ = (pos__ + 1); + } + } + } + } + } + out__.write_free_sum_to_zero(p_astzm); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); } @@ -45692,14 +46000,17 @@ class sum_to_zero_model final : public model_base_crtp { get_param_names(std::vector& names__, const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true) const { - names__ = std::vector{"p_stz", "p_astz"}; + names__ = std::vector{"p_stzv", "p_astzv", "p_stzm", + "p_astzm"}; if (emit_transformed_parameters__) { - std::vector temp{"tp_stz", "tp_astz"}; + std::vector + temp{"tp_stzv", "tp_astzv", "tp_stzm", "tp_astzm"}; names__.reserve(names__.size() + temp.size()); names__.insert(names__.end(), temp.begin(), temp.end()); } if (emit_generated_quantities__) { - std::vector temp{"gq_stz", "gq_astz"}; + std::vector + temp{"gq_stzv", "gq_astzv", "gq_stzm", "gq_astzm"}; names__.reserve(names__.size() + temp.size()); names__.insert(names__.end(), temp.begin(), temp.end()); } @@ -45712,12 +46023,22 @@ class sum_to_zero_model final : public model_base_crtp { size_t>( 10)}, std::vector{static_cast(2), - static_cast(3), static_cast(10)}}; + static_cast(3), static_cast(10)}, + std::vector{static_cast(4), + static_cast(5)}, + std::vector{static_cast(2), + static_cast(3), static_cast(4), + static_cast(5)}}; if (emit_transformed_parameters__) { std::vector> temp{std::vector{static_cast(10)}, std::vector{static_cast(2), - static_cast(3), static_cast(10)}}; + static_cast(3), static_cast(10)}, + std::vector{static_cast(4), + static_cast(5)}, + std::vector{static_cast(2), + static_cast(3), static_cast(4), + static_cast(5)}}; dimss__.reserve(dimss__.size() + temp.size()); dimss__.insert(dimss__.end(), temp.begin(), temp.end()); } @@ -45725,7 +46046,12 @@ class sum_to_zero_model final : public model_base_crtp { std::vector> temp{std::vector{static_cast(10)}, std::vector{static_cast(2), - static_cast(3), static_cast(10)}}; + static_cast(3), static_cast(10)}, + std::vector{static_cast(4), + static_cast(5)}, + std::vector{static_cast(2), + static_cast(3), static_cast(4), + static_cast(5)}}; dimss__.reserve(dimss__.size() + temp.size()); dimss__.insert(dimss__.end(), temp.begin(), temp.end()); } @@ -45735,47 +46061,98 @@ class sum_to_zero_model final : public model_base_crtp { emit_transformed_parameters__ = true, bool emit_generated_quantities__ = true) const final { for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { - param_names__.emplace_back(std::string() + "p_stz" + '.' + + param_names__.emplace_back(std::string() + "p_stzv" + '.' + std::to_string(sym1__)); } for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - param_names__.emplace_back(std::string() + "p_astz" + '.' + + param_names__.emplace_back(std::string() + "p_astzv" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + param_names__.emplace_back(std::string() + "p_stzm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + param_names__.emplace_back(std::string() + "p_astzm" + '.' + + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } if (emit_transformed_parameters__) { for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { - param_names__.emplace_back(std::string() + "tp_stz" + '.' + + param_names__.emplace_back(std::string() + "tp_stzv" + '.' + std::to_string(sym1__)); } for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - param_names__.emplace_back(std::string() + "tp_astz" + '.' + + param_names__.emplace_back(std::string() + "tp_astzv" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + param_names__.emplace_back(std::string() + "tp_stzm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + param_names__.emplace_back(std::string() + "tp_astzm" + '.' + + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } if (emit_generated_quantities__) { for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { - param_names__.emplace_back(std::string() + "gq_stz" + '.' + + param_names__.emplace_back(std::string() + "gq_stzv" + '.' + std::to_string(sym1__)); } for (int sym1__ = 1; sym1__ <= 10; ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - param_names__.emplace_back(std::string() + "gq_astz" + '.' + + param_names__.emplace_back(std::string() + "gq_astzv" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + param_names__.emplace_back(std::string() + "gq_stzm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 4; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + param_names__.emplace_back(std::string() + "gq_astzm" + '.' + + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } } inline void @@ -45783,54 +46160,105 @@ class sum_to_zero_model final : public model_base_crtp { emit_transformed_parameters__ = true, bool emit_generated_quantities__ = true) const final { for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { - param_names__.emplace_back(std::string() + "p_stz" + '.' + + param_names__.emplace_back(std::string() + "p_stzv" + '.' + std::to_string(sym1__)); } for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - param_names__.emplace_back(std::string() + "p_astz" + '.' + + param_names__.emplace_back(std::string() + "p_astzv" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } + for (int sym1__ = 1; sym1__ <= (5 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= (4 - 1); ++sym2__) { + param_names__.emplace_back(std::string() + "p_stzm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (5 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= (4 - 1); ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + param_names__.emplace_back(std::string() + "p_astzm" + '.' + + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } if (emit_transformed_parameters__) { for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { - param_names__.emplace_back(std::string() + "tp_stz" + '.' + + param_names__.emplace_back(std::string() + "tp_stzv" + '.' + std::to_string(sym1__)); } for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - param_names__.emplace_back(std::string() + "tp_astz" + '.' + + param_names__.emplace_back(std::string() + "tp_astzv" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } + for (int sym1__ = 1; sym1__ <= (5 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= (4 - 1); ++sym2__) { + param_names__.emplace_back(std::string() + "tp_stzm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (5 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= (4 - 1); ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + param_names__.emplace_back(std::string() + "tp_astzm" + '.' + + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } if (emit_generated_quantities__) { for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { - param_names__.emplace_back(std::string() + "gq_stz" + '.' + + param_names__.emplace_back(std::string() + "gq_stzv" + '.' + std::to_string(sym1__)); } for (int sym1__ = 1; sym1__ <= (10 - 1); ++sym1__) { for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - param_names__.emplace_back(std::string() + "gq_astz" + '.' + + param_names__.emplace_back(std::string() + "gq_astzv" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } + for (int sym1__ = 1; sym1__ <= (5 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= (4 - 1); ++sym2__) { + param_names__.emplace_back(std::string() + "gq_stzm" + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (5 - 1); ++sym1__) { + for (int sym2__ = 1; sym2__ <= (4 - 1); ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + param_names__.emplace_back(std::string() + "gq_astzm" + '.' + + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } } inline std::string get_constrained_sizedtypes() const { - return std::string("[{\"name\":\"p_stz\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "},\"block\":\"parameters\"},{\"name\":\"p_astz\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "}}},\"block\":\"parameters\"},{\"name\":\"tp_stz\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_astz\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"gq_stz\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_astz\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "}}},\"block\":\"generated_quantities\"}]"); + return std::string("[{\"name\":\"p_stzv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "},\"block\":\"parameters\"},{\"name\":\"p_astzv\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "}}},\"block\":\"parameters\"},{\"name\":\"p_stzm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(4) + ",\"cols\":" + std::to_string(5) + "},\"block\":\"parameters\"},{\"name\":\"p_astzm\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(4) + ",\"cols\":" + std::to_string(5) + "}}},\"block\":\"parameters\"},{\"name\":\"tp_stzv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_astzv\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_stzm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(4) + ",\"cols\":" + std::to_string(5) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_astzm\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(4) + ",\"cols\":" + std::to_string(5) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"gq_stzv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_astzv\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(10) + "}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_stzm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(4) + ",\"cols\":" + std::to_string(5) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_astzm\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(4) + ",\"cols\":" + std::to_string(5) + "}}},\"block\":\"generated_quantities\"}]"); } inline std::string get_unconstrained_sizedtypes() const { - return std::string("[{\"name\":\"p_stz\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "},\"block\":\"parameters\"},{\"name\":\"p_astz\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "}}},\"block\":\"parameters\"},{\"name\":\"tp_stz\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_astz\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"gq_stz\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_astz\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "}}},\"block\":\"generated_quantities\"}]"); + return std::string("[{\"name\":\"p_stzv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "},\"block\":\"parameters\"},{\"name\":\"p_astzv\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "}}},\"block\":\"parameters\"},{\"name\":\"p_stzm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((4 -1)) + ",\"cols\":" + std::to_string((5 -1)) + "},\"block\":\"parameters\"},{\"name\":\"p_astzm\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((4 -1)) + ",\"cols\":" + std::to_string((5 -1)) + "}}},\"block\":\"parameters\"},{\"name\":\"tp_stzv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_astzv\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_stzm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((4 -1)) + ",\"cols\":" + std::to_string((5 -1)) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_astzm\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((4 -1)) + ",\"cols\":" + std::to_string((5 -1)) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"gq_stzv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_astzv\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((10 -1)) + "}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_stzm\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((4 -1)) + ",\"cols\":" + std::to_string((5 -1)) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_astzm\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string((4 -1)) + ",\"cols\":" + std::to_string((5 -1)) + "}}},\"block\":\"generated_quantities\"}]"); } // Begin method overload boilerplate template inline void @@ -45839,11 +46267,12 @@ class sum_to_zero_model final : public model_base_crtp { emit_transformed_parameters = true, const bool emit_generated_quantities = true, std::ostream* pstream = nullptr) const { - const size_t num_params__ = (10 + (2 * (3 * 10))); - const size_t num_transformed = emit_transformed_parameters * ((10 + (2 * - (3 * 10)))); - const size_t num_gen_quantities = emit_generated_quantities * ((10 + (2 * - (3 * 10)))); + const size_t num_params__ = (((10 + (2 * (3 * 10))) + (4 * 5)) + (2 * (3 + * (4 * 5)))); + const size_t num_transformed = emit_transformed_parameters * ((((10 + (2 + * (3 * 10))) + (4 * 5)) + (2 * (3 * (4 * 5))))); + const size_t num_gen_quantities = emit_generated_quantities * ((((10 + (2 + * (3 * 10))) + (4 * 5)) + (2 * (3 * (4 * 5))))); const size_t num_to_write = num_params__ + num_transformed + num_gen_quantities; std::vector params_i; @@ -45858,11 +46287,12 @@ class sum_to_zero_model final : public model_base_crtp { emit_transformed_parameters = true, bool emit_generated_quantities = true, std::ostream* pstream = nullptr) const { - const size_t num_params__ = (10 + (2 * (3 * 10))); - const size_t num_transformed = emit_transformed_parameters * ((10 + (2 * - (3 * 10)))); - const size_t num_gen_quantities = emit_generated_quantities * ((10 + (2 * - (3 * 10)))); + const size_t num_params__ = (((10 + (2 * (3 * 10))) + (4 * 5)) + (2 * (3 + * (4 * 5)))); + const size_t num_transformed = emit_transformed_parameters * ((((10 + (2 + * (3 * 10))) + (4 * 5)) + (2 * (3 * (4 * 5))))); + const size_t num_gen_quantities = emit_generated_quantities * ((((10 + (2 + * (3 * 10))) + (4 * 5)) + (2 * (3 * (4 * 5))))); const size_t num_to_write = num_params__ + num_transformed + num_gen_quantities; vars = std::vector(num_to_write, diff --git a/test/integration/good/code-gen/sum_to_zero.stan b/test/integration/good/code-gen/sum_to_zero.stan index 347983e3e7..bc49a83000 100644 --- a/test/integration/good/code-gen/sum_to_zero.stan +++ b/test/integration/good/code-gen/sum_to_zero.stan @@ -1,23 +1,33 @@ data { - sum_to_zero_vector[10] d_stz; - array[2, 3] sum_to_zero_vector[10] d_astz; + sum_to_zero_vector[10] d_stzv; + array[2, 3] sum_to_zero_vector[10] d_astzv; + sum_to_zero_matrix[4,5] d_stzm; + array[2, 3] sum_to_zero_matrix[4,5] d_astzm; } transformed data { - sum_to_zero_vector[10] td_stz = d_stz; - array[2, 3] sum_to_zero_vector[10] td_astz; + sum_to_zero_vector[10] td_stzv = d_stzv; + array[2, 3] sum_to_zero_vector[10] td_astzv; + sum_to_zero_matrix[4,5] td_stzm = d_stzm; + array[2, 3] sum_to_zero_matrix[4,5] td_astzm; } parameters { - sum_to_zero_vector[10] p_stz; - array[2, 3] sum_to_zero_vector[10] p_astz; + sum_to_zero_vector[10] p_stzv; + array[2, 3] sum_to_zero_vector[10] p_astzv; + sum_to_zero_matrix[4,5] p_stzm; + array[2, 3] sum_to_zero_matrix[4,5] p_astzm; } transformed parameters { - sum_to_zero_vector[10] tp_stz = p_stz; - array[2, 3] sum_to_zero_vector[10] tp_astz = p_astz; + sum_to_zero_vector[10] tp_stzv = p_stzv; + array[2, 3] sum_to_zero_vector[10] tp_astzv = p_astzv; + sum_to_zero_matrix[4,5] tp_stzm = p_stzm; + array[2, 3] sum_to_zero_matrix[4,5] tp_astzm = p_astzm; } generated quantities { - sum_to_zero_vector[10] gq_stz = tp_stz; - array[2, 3] sum_to_zero_vector[10] gq_astz = tp_astz; + sum_to_zero_vector[10] gq_stzv = tp_stzv; + array[2, 3] sum_to_zero_vector[10] gq_astzv = tp_astzv; + sum_to_zero_matrix[4,5] gq_stzm = tp_stzm; + array[2, 3] sum_to_zero_matrix[4,5] gq_astzm = tp_astzm; } diff --git a/test/integration/good/function-signatures/math/transforms/sum_to_zero_constrain.stan b/test/integration/good/function-signatures/math/transforms/sum_to_zero_constrain.stan index 15dacdb922..c0debde30e 100644 --- a/test/integration/good/function-signatures/math/transforms/sum_to_zero_constrain.stan +++ b/test/integration/good/function-signatures/math/transforms/sum_to_zero_constrain.stan @@ -1,9 +1,13 @@ data { int d_int; vector[d_int] d_vector; + matrix[d_int, d_int] d_matrix; array[d_int] vector[d_int] d_vector_array_1d; array[d_int, 2] vector[d_int] d_vector_array_2d; array[d_int, 2, 3] vector[d_int] d_vector_array_3d; + array[d_int] matrix[d_int, d_int] d_matrix_array_1d; + array[d_int, 2] matrix[d_int, d_int] d_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int, d_int] d_matrix_array_3d; } @@ -11,10 +15,18 @@ data { transformed data { int td_int; vector[d_int+1] td_vector; + matrix[d_int+1, d_int+1] td_matrix; array[d_int] vector[d_int+1] td_vector_array_1d; array[d_int, 2] vector[d_int+1] td_vector_array_2d; array[d_int, 2, 3] vector[d_int+1] td_vector_array_3d; + array[d_int] matrix[d_int+1, d_int+1] td_matrix_array_1d; + array[d_int, 2] matrix[d_int+1, d_int+1] td_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int+1, d_int+1] td_matrix_array_3d; + td_matrix = sum_to_zero_constrain(d_matrix); + td_matrix_array_1d = sum_to_zero_constrain(d_matrix_array_1d); + td_matrix_array_2d = sum_to_zero_constrain(d_matrix_array_2d); + td_matrix_array_3d = sum_to_zero_constrain(d_matrix_array_3d); td_vector = sum_to_zero_constrain(d_vector); td_vector_array_1d = sum_to_zero_constrain(d_vector_array_1d); td_vector_array_2d = sum_to_zero_constrain(d_vector_array_2d); @@ -23,19 +35,35 @@ transformed data { parameters { vector[d_int] p_vector; + matrix[d_int, d_int] p_matrix; array[d_int] vector[d_int] p_vector_array_1d; array[d_int, 2] vector[d_int] p_vector_array_2d; array[d_int, 2, 3] vector[d_int] p_vector_array_3d; + array[d_int] matrix[d_int, d_int] p_matrix_array_1d; + array[d_int, 2] matrix[d_int, d_int] p_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int, d_int] p_matrix_array_3d; } transformed parameters { vector[d_int+1] transformed_param_vector; + matrix[d_int+1, d_int+1] transformed_param_matrix; array[d_int] vector[d_int+1] transformed_param_vector_array_1d; array[d_int, 2] vector[d_int+1] transformed_param_vector_array_2d; array[d_int, 2, 3] vector[d_int+1] transformed_param_vector_array_3d; + array[d_int] matrix[d_int+1, d_int+1] transformed_param_matrix_array_1d; + array[d_int, 2] matrix[d_int+1, d_int+1] transformed_param_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int+1, d_int+1] transformed_param_matrix_array_3d; + transformed_param_matrix = sum_to_zero_constrain(d_matrix); + transformed_param_matrix = sum_to_zero_constrain(p_matrix); + transformed_param_matrix_array_1d = sum_to_zero_constrain(d_matrix_array_1d); + transformed_param_matrix_array_1d = sum_to_zero_constrain(p_matrix_array_1d); + transformed_param_matrix_array_2d = sum_to_zero_constrain(d_matrix_array_2d); + transformed_param_matrix_array_2d = sum_to_zero_constrain(p_matrix_array_2d); + transformed_param_matrix_array_3d = sum_to_zero_constrain(d_matrix_array_3d); + transformed_param_matrix_array_3d = sum_to_zero_constrain(p_matrix_array_3d); transformed_param_vector = sum_to_zero_constrain(d_vector); transformed_param_vector = sum_to_zero_constrain(p_vector); transformed_param_vector_array_1d = sum_to_zero_constrain(d_vector_array_1d); diff --git a/test/integration/good/function-signatures/math/transforms/sum_to_zero_jacobian.stan b/test/integration/good/function-signatures/math/transforms/sum_to_zero_jacobian.stan index f0c233bbf0..90d7928660 100644 --- a/test/integration/good/function-signatures/math/transforms/sum_to_zero_jacobian.stan +++ b/test/integration/good/function-signatures/math/transforms/sum_to_zero_jacobian.stan @@ -1,28 +1,48 @@ data { int d_int; vector[d_int] d_vector; + matrix[d_int, d_int] d_matrix; array[d_int] vector[d_int] d_vector_array_1d; array[d_int, 2] vector[d_int] d_vector_array_2d; array[d_int, 2, 3] vector[d_int] d_vector_array_3d; + array[d_int] matrix[d_int, d_int] d_matrix_array_1d; + array[d_int, 2] matrix[d_int, d_int] d_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int, d_int] d_matrix_array_3d; } parameters { vector[d_int] p_vector; + matrix[d_int, d_int] p_matrix; array[d_int] vector[d_int] p_vector_array_1d; array[d_int, 2] vector[d_int] p_vector_array_2d; array[d_int, 2, 3] vector[d_int] p_vector_array_3d; + array[d_int] matrix[d_int, d_int] p_matrix_array_1d; + array[d_int, 2] matrix[d_int, d_int] p_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int, d_int] p_matrix_array_3d; } transformed parameters { vector[d_int+1] transformed_param_vector; + matrix[d_int+1, d_int+1] transformed_param_matrix; array[d_int] vector[d_int+1] transformed_param_vector_array_1d; array[d_int, 2] vector[d_int+1] transformed_param_vector_array_2d; array[d_int, 2, 3] vector[d_int+1] transformed_param_vector_array_3d; - + array[d_int] matrix[d_int+1, d_int+1] transformed_param_matrix_array_1d; + array[d_int, 2] matrix[d_int+1, d_int+1] transformed_param_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int+1, d_int+1] transformed_param_matrix_array_3d; + + transformed_param_matrix = sum_to_zero_jacobian(d_matrix); + transformed_param_matrix = sum_to_zero_jacobian(p_matrix); + transformed_param_matrix_array_1d = sum_to_zero_jacobian(d_matrix_array_1d); + transformed_param_matrix_array_1d = sum_to_zero_jacobian(p_matrix_array_1d); + transformed_param_matrix_array_2d = sum_to_zero_jacobian(d_matrix_array_2d); + transformed_param_matrix_array_2d = sum_to_zero_jacobian(p_matrix_array_2d); + transformed_param_matrix_array_3d = sum_to_zero_jacobian(d_matrix_array_3d); + transformed_param_matrix_array_3d = sum_to_zero_jacobian(p_matrix_array_3d); transformed_param_vector = sum_to_zero_jacobian(d_vector); transformed_param_vector = sum_to_zero_jacobian(p_vector); transformed_param_vector_array_1d = sum_to_zero_jacobian(d_vector_array_1d); diff --git a/test/integration/good/function-signatures/math/transforms/sum_to_zero_unconstrain.stan b/test/integration/good/function-signatures/math/transforms/sum_to_zero_unconstrain.stan index 71dc65dd77..ca8acfc2f9 100644 --- a/test/integration/good/function-signatures/math/transforms/sum_to_zero_unconstrain.stan +++ b/test/integration/good/function-signatures/math/transforms/sum_to_zero_unconstrain.stan @@ -1,9 +1,13 @@ data { int d_int; vector[d_int+1] d_vector; + matrix[d_int+1, d_int+1] d_matrix; array[d_int] vector[d_int+1] d_vector_array_1d; array[d_int, 2] vector[d_int+1] d_vector_array_2d; array[d_int, 2, 3] vector[d_int+1] d_vector_array_3d; + array[d_int] matrix[d_int+1, d_int+1] d_matrix_array_1d; + array[d_int, 2] matrix[d_int+1, d_int+1] d_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int+1, d_int+1] d_matrix_array_3d; } @@ -11,10 +15,18 @@ data { transformed data { int td_int; vector[d_int] td_vector; + matrix[d_int, d_int] td_matrix; array[d_int] vector[d_int] td_vector_array_1d; array[d_int, 2] vector[d_int] td_vector_array_2d; array[d_int, 2, 3] vector[d_int] td_vector_array_3d; + array[d_int] matrix[d_int, d_int] td_matrix_array_1d; + array[d_int, 2] matrix[d_int, d_int] td_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int, d_int] td_matrix_array_3d; + td_matrix = sum_to_zero_unconstrain(d_matrix); + td_matrix_array_1d = sum_to_zero_unconstrain(d_matrix_array_1d); + td_matrix_array_2d = sum_to_zero_unconstrain(d_matrix_array_2d); + td_matrix_array_3d = sum_to_zero_unconstrain(d_matrix_array_3d); td_vector = sum_to_zero_unconstrain(d_vector); td_vector_array_1d = sum_to_zero_unconstrain(d_vector_array_1d); td_vector_array_2d = sum_to_zero_unconstrain(d_vector_array_2d); @@ -23,19 +35,35 @@ transformed data { parameters { vector[d_int+1] p_vector; + matrix[d_int+1, d_int+1] p_matrix; array[d_int] vector[d_int+1] p_vector_array_1d; array[d_int, 2] vector[d_int+1] p_vector_array_2d; array[d_int, 2, 3] vector[d_int+1] p_vector_array_3d; + array[d_int] matrix[d_int+1, d_int+1] p_matrix_array_1d; + array[d_int, 2] matrix[d_int+1, d_int+1] p_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int+1, d_int+1] p_matrix_array_3d; } transformed parameters { vector[d_int] transformed_param_vector; + matrix[d_int, d_int] transformed_param_matrix; array[d_int] vector[d_int] transformed_param_vector_array_1d; array[d_int, 2] vector[d_int] transformed_param_vector_array_2d; array[d_int, 2, 3] vector[d_int] transformed_param_vector_array_3d; + array[d_int] matrix[d_int, d_int] transformed_param_matrix_array_1d; + array[d_int, 2] matrix[d_int, d_int] transformed_param_matrix_array_2d; + array[d_int, 2, 3] matrix[d_int, d_int] transformed_param_matrix_array_3d; + transformed_param_matrix = sum_to_zero_unconstrain(d_matrix); + transformed_param_matrix = sum_to_zero_unconstrain(p_matrix); + transformed_param_matrix_array_1d = sum_to_zero_unconstrain(d_matrix_array_1d); + transformed_param_matrix_array_1d = sum_to_zero_unconstrain(p_matrix_array_1d); + transformed_param_matrix_array_2d = sum_to_zero_unconstrain(d_matrix_array_2d); + transformed_param_matrix_array_2d = sum_to_zero_unconstrain(p_matrix_array_2d); + transformed_param_matrix_array_3d = sum_to_zero_unconstrain(d_matrix_array_3d); + transformed_param_matrix_array_3d = sum_to_zero_unconstrain(p_matrix_array_3d); transformed_param_vector = sum_to_zero_unconstrain(d_vector); transformed_param_vector = sum_to_zero_unconstrain(p_vector); transformed_param_vector_array_1d = sum_to_zero_unconstrain(d_vector_array_1d); diff --git a/test/integration/good/pretty.expected b/test/integration/good/pretty.expected index 19cd4f95ce..fa8ef68544 100644 --- a/test/integration/good/pretty.expected +++ b/test/integration/good/pretty.expected @@ -5239,6 +5239,7 @@ data { simplex[5] sv; unit_vector[7] uv; sum_to_zero_vector[8] stzv; + sum_to_zero_matrix[2, 4] stzm; ordered[3] ov; matrix[4, 5] m; cov_matrix[3] covm; @@ -5256,6 +5257,7 @@ transformed data { simplex[5] sv_td; unit_vector[7] uv_td; sum_to_zero_vector[8] stzv_td; + sum_to_zero_matrix[2, 4] stzm_td; ordered[3] ov_td; matrix[4, 5] m_td; cov_matrix[3] covm_td; @@ -5271,6 +5273,7 @@ parameters { simplex[5] sv_p; unit_vector[7] uv_p; sum_to_zero_vector[8] stzv_p; + sum_to_zero_matrix[2, 4] stzm_p; ordered[3] ov_p; matrix[4, 5] m_p; cov_matrix[3] covm_p; @@ -5286,6 +5289,7 @@ transformed parameters { simplex[5] sv_tp; unit_vector[7] uv_tp; sum_to_zero_vector[8] stzv_tp; + sum_to_zero_matrix[2, 4] stzm_tp; ordered[3] ov_tp; matrix[4, 5] m_tp; cov_matrix[3] covm_tp; @@ -5314,6 +5318,7 @@ generated quantities { simplex[5] sv_gq; unit_vector[7] uv_gq; sum_to_zero_vector[8] stzv_gq; + sum_to_zero_matrix[2, 4] stzm_gq; ordered[3] ov_gq; matrix[4, 5] m_gq; cov_matrix[3] covm_gq; diff --git a/test/integration/good/validate_add_var_good.stan b/test/integration/good/validate_add_var_good.stan index 5570300ae4..bad06f1b0c 100644 --- a/test/integration/good/validate_add_var_good.stan +++ b/test/integration/good/validate_add_var_good.stan @@ -8,6 +8,7 @@ data { simplex[5] sv; unit_vector[7] uv; sum_to_zero_vector[8] stzv; + sum_to_zero_matrix[2,4] stzm; ordered[3] ov; matrix[4, 5] m; cov_matrix[3] covm; @@ -25,6 +26,7 @@ transformed data { simplex[5] sv_td; unit_vector[7] uv_td; sum_to_zero_vector[8] stzv_td; + sum_to_zero_matrix[2,4] stzm_td; ordered[3] ov_td; matrix[4, 5] m_td; cov_matrix[3] covm_td; @@ -40,6 +42,7 @@ parameters { simplex[5] sv_p; unit_vector[7] uv_p; sum_to_zero_vector[8] stzv_p; + sum_to_zero_matrix[2,4] stzm_p; ordered[3] ov_p; matrix[4, 5] m_p; cov_matrix[3] covm_p; @@ -55,6 +58,7 @@ transformed parameters { simplex[5] sv_tp; unit_vector[7] uv_tp; sum_to_zero_vector[8] stzv_tp; + sum_to_zero_matrix[2,4] stzm_tp; ordered[3] ov_tp; matrix[4, 5] m_tp; cov_matrix[3] covm_tp; @@ -83,6 +87,7 @@ generated quantities { simplex[5] sv_gq; unit_vector[7] uv_gq; sum_to_zero_vector[8] stzv_gq; + sum_to_zero_matrix[2,4] stzm_gq; ordered[3] ov_gq; matrix[4, 5] m_gq; cov_matrix[3] covm_gq; diff --git a/test/integration/signatures/stan_math_signatures.t b/test/integration/signatures/stan_math_signatures.t index 62170aa00f..1c01feb4e2 100644 --- a/test/integration/signatures/stan_math_signatures.t +++ b/test/integration/signatures/stan_math_signatures.t @@ -21107,29 +21107,53 @@ Display all Stan math signatures exposed in the language sum(array[] real) => real sum(array[] complex) => complex sum_to_zero_constrain(vector) => vector + sum_to_zero_constrain(matrix) => matrix sum_to_zero_constrain(array[] vector) => array[] vector + sum_to_zero_constrain(array[] matrix) => array[] matrix sum_to_zero_constrain(array[,] vector) => array[,] vector + sum_to_zero_constrain(array[,] matrix) => array[,] matrix sum_to_zero_constrain(array[,,] vector) => array[,,] vector + sum_to_zero_constrain(array[,,] matrix) => array[,,] matrix sum_to_zero_constrain(array[,,,] vector) => array[,,,] vector + sum_to_zero_constrain(array[,,,] matrix) => array[,,,] matrix sum_to_zero_constrain(array[,,,,] vector) => array[,,,,] vector + sum_to_zero_constrain(array[,,,,] matrix) => array[,,,,] matrix sum_to_zero_constrain(array[,,,,,] vector) => array[,,,,,] vector + sum_to_zero_constrain(array[,,,,,] matrix) => array[,,,,,] matrix sum_to_zero_constrain(array[,,,,,,] vector) => array[,,,,,,] vector + sum_to_zero_constrain(array[,,,,,,] matrix) => array[,,,,,,] matrix sum_to_zero_jacobian(vector) => vector + sum_to_zero_jacobian(matrix) => matrix sum_to_zero_jacobian(array[] vector) => array[] vector + sum_to_zero_jacobian(array[] matrix) => array[] matrix sum_to_zero_jacobian(array[,] vector) => array[,] vector + sum_to_zero_jacobian(array[,] matrix) => array[,] matrix sum_to_zero_jacobian(array[,,] vector) => array[,,] vector + sum_to_zero_jacobian(array[,,] matrix) => array[,,] matrix sum_to_zero_jacobian(array[,,,] vector) => array[,,,] vector + sum_to_zero_jacobian(array[,,,] matrix) => array[,,,] matrix sum_to_zero_jacobian(array[,,,,] vector) => array[,,,,] vector + sum_to_zero_jacobian(array[,,,,] matrix) => array[,,,,] matrix sum_to_zero_jacobian(array[,,,,,] vector) => array[,,,,,] vector + sum_to_zero_jacobian(array[,,,,,] matrix) => array[,,,,,] matrix sum_to_zero_jacobian(array[,,,,,,] vector) => array[,,,,,,] vector + sum_to_zero_jacobian(array[,,,,,,] matrix) => array[,,,,,,] matrix sum_to_zero_unconstrain(vector) => vector + sum_to_zero_unconstrain(matrix) => matrix sum_to_zero_unconstrain(array[] vector) => array[] vector + sum_to_zero_unconstrain(array[] matrix) => array[] matrix sum_to_zero_unconstrain(array[,] vector) => array[,] vector + sum_to_zero_unconstrain(array[,] matrix) => array[,] matrix sum_to_zero_unconstrain(array[,,] vector) => array[,,] vector + sum_to_zero_unconstrain(array[,,] matrix) => array[,,] matrix sum_to_zero_unconstrain(array[,,,] vector) => array[,,,] vector + sum_to_zero_unconstrain(array[,,,] matrix) => array[,,,] matrix sum_to_zero_unconstrain(array[,,,,] vector) => array[,,,,] vector + sum_to_zero_unconstrain(array[,,,,] matrix) => array[,,,,] matrix sum_to_zero_unconstrain(array[,,,,,] vector) => array[,,,,,] vector + sum_to_zero_unconstrain(array[,,,,,] matrix) => array[,,,,,] matrix sum_to_zero_unconstrain(array[,,,,,,] vector) => array[,,,,,,] vector + sum_to_zero_unconstrain(array[,,,,,,] matrix) => array[,,,,,,] matrix svd(matrix) => tuple(matrix, vector, matrix) svd(complex_matrix) => tuple(complex_matrix, vector, complex_matrix) svd_U(matrix) => matrix