From b1fc74e7ec5f826087df8fa32301a95b28255b6c Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sun, 15 Nov 2020 13:33:05 +0200 Subject: [PATCH 01/24] add closure type --- src/frontend/Ast.ml | 3 +- src/frontend/Ast_to_Mir.ml | 1 + src/frontend/Pretty_printing.ml | 2 +- src/frontend/Semantic_check.ml | 41 +- src/frontend/Semantic_error.ml | 9 +- src/middle/Fun_kind.ml | 2 +- src/middle/Stan_math_signatures.ml | 44 +- src/middle/UnsizedType.ml | 39 +- src/stan_math_backend/Expression_gen.ml | 86 +- src/stan_math_backend/Stan_math_code_gen.ml | 66 +- src/stan_math_backend/Statement_gen.ml | 1 + src/tfp_backend/Code_gen.ml | 2 +- test/integration/good/code-gen/cpp.expected | 2233 +++++++++---------- test/integration/good/code-gen/mir.expected | 30 +- test/unit/Stan_math_code_gen_tests.ml | 2 +- 15 files changed, 1274 insertions(+), 1287 deletions(-) diff --git a/src/frontend/Ast.ml b/src/frontend/Ast.ml index 80f5e1fd34..c25962d352 100644 --- a/src/frontend/Ast.ml +++ b/src/frontend/Ast.ml @@ -18,7 +18,8 @@ type 'e index = [@@deriving sexp, hash, compare, map] (** Front-end function kinds *) -type fun_kind = StanLib | UserDefined [@@deriving compare, sexp, hash] +type fun_kind = StanLib | UserDefined | Closure +[@@deriving compare, sexp, hash] (** Expression shapes (used for both typed and untyped expressions, where we substitute untyped_expression or typed_expression for 'e *) diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index 3e4a45e807..a18403e0d4 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -12,6 +12,7 @@ let unwrap_return_exn = function let trans_fn_kind = function | Ast.StanLib -> Fun_kind.StanLib | UserDefined -> UserDefined + | Closure -> Closure let without_underscores = String.filter ~f:(( <> ) '_') diff --git a/src/frontend/Pretty_printing.ml b/src/frontend/Pretty_printing.ml index 06ad2a0005..440d76b8d8 100644 --- a/src/frontend/Pretty_printing.ml +++ b/src/frontend/Pretty_printing.ml @@ -66,7 +66,7 @@ and pp_unsizedtype ppf = function let ut2, d = unwind_array_type ut in let array_str = "[" ^ String.make d ',' ^ "]" in Fmt.pf ppf "array%s %a" array_str pp_unsizedtype ut2 - | UFun (argtypes, rt) -> + | UFun (argtypes, rt, _) -> Fmt.pf ppf "{|@[(%a) => %a@]|}" Fmt.(list ~sep:comma_no_break pp_argtype) argtypes pp_returntype rt diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 5b2ceee672..b68866b865 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -152,7 +152,7 @@ let semantic_check_autodifftype at = Validate.ok at (* Probably nothing to do here *) let rec semantic_check_unsizedtype : UnsizedType.t -> unit Validate.t = function - | UFun (l, rt) -> + | UFun (l, rt, _) -> (* fold over argument types accumulating errors with initial state given by validating the return type *) List.fold @@ -272,10 +272,10 @@ let mk_fun_app ~is_cond_dist (x, y, z) = let semantic_check_fn_normal ~is_cond_dist ~loc id es = Validate.( match Symbol_table.look vm (Utils.normalized_name id.name) with - | Some (_, UnsizedType.UFun (_, Void)) -> + | Some (_, UnsizedType.UFun (_, Void, _)) -> Semantic_error.returning_fn_expected_nonreturning_found loc id.name |> error - | Some (_, UFun (listedtypes, rt)) + | Some (_, UFun (listedtypes, rt, _)) when not (UnsizedType.check_compatible_arguments_mod_conv id.name listedtypes (get_arg_types es)) -> @@ -284,7 +284,7 @@ let semantic_check_fn_normal ~is_cond_dist ~loc id es = |> Semantic_error.illtyped_userdefined_fn_app loc id.name listedtypes rt |> error - | Some (_, UFun (_, ReturnType ut)) -> + | Some (_, UFun (_, ReturnType ut, _)) -> mk_typed_expression ~expr:(mk_fun_app ~is_cond_dist (UserDefined, id, es)) ~ad_level:(expr_ad_lub es) ~type_:ut ~loc @@ -329,7 +329,8 @@ let semantic_check_reduce_sum ~is_cond_dist ~loc id es = UnsizedType.UFun ( ((_, sliced_arg_fun_type) as sliced_arg_fun) :: (_, UInt) :: (_, UInt) :: fun_args - , ReturnType UReal ); _ }; _ } + , ReturnType UReal + , false ); _ }; _ } :: sliced :: {emeta= {type_= UInt; _}; _} :: args when arg_match sliced_arg_fun sliced && List.mem Stan_math_signatures.reduce_sum_slice_types @@ -376,7 +377,8 @@ let semantic_check_variadic_ode ~is_cond_dist ~loc id es = List.length a = List.length b && List.for_all2_exn ~f:fun_arg_match a b in match es with - | {emeta= {type_= UnsizedType.UFun (fun_args, ReturnType return_type); _}; _} + | { emeta= {type_= UnsizedType.UFun (fun_args, ReturnType return_type, _); _}; _ + } :: args -> let num_of_mandatory_args = if Stan_math_signatures.is_variadic_ode_tol_fn id.name then 6 else 3 @@ -429,7 +431,7 @@ let semantic_check_fn ~is_cond_dist ~loc id es = | StanLib when Stan_math_signatures.is_variadic_ode_fn id.name -> semantic_check_variadic_ode ~is_cond_dist ~loc id es | StanLib -> semantic_check_fn_stan_math ~is_cond_dist ~loc id es - | UserDefined -> semantic_check_fn_normal ~is_cond_dist ~loc id es + | UserDefined | Closure -> semantic_check_fn_normal ~is_cond_dist ~loc id es (* -- Ternary If ------------------------------------------------------------ *) @@ -957,20 +959,20 @@ let semantic_check_nrfn_target ~loc ~cf id = let semantic_check_nrfn_normal ~loc id es = Validate.( match Symbol_table.look vm id.name with - | Some (_, UFun (listedtypes, Void)) + | Some (_, UFun (listedtypes, Void, _)) when UnsizedType.check_compatible_arguments_mod_conv id.name listedtypes (get_arg_types es) -> mk_typed_statement ~stmt:(NRFunApp (UserDefined, id, es)) ~return_type:NoReturnType ~loc |> ok - | Some (_, UFun (listedtypes, Void)) -> + | Some (_, UFun (listedtypes, Void, _)) -> es |> List.map ~f:type_of_expr_typed |> Semantic_error.illtyped_userdefined_fn_app loc id.name listedtypes Void |> error - | Some (_, UFun (_, ReturnType _)) -> + | Some (_, UFun (_, ReturnType _, _)) -> Semantic_error.nonreturning_fn_expected_returning_found loc id.name |> error | Some _ -> @@ -1003,7 +1005,7 @@ let semantic_check_nrfn_stan_math ~loc id es = let semantic_check_nr_fnkind ~loc id es = match fn_kind_from_application id es with | StanLib -> semantic_check_nrfn_stan_math ~loc id es - | UserDefined -> semantic_check_nrfn_normal ~loc id es + | UserDefined | Closure -> semantic_check_nrfn_normal ~loc id es let semantic_check_nr_fn_app ~loc ~cf id es = Validate.( @@ -1166,7 +1168,7 @@ let semantic_check_sampling_distribution ~loc id arguments = in let is_name_w_suffix_udf_sampling_dist suffix = match Symbol_table.look vm (name ^ suffix) with - | Some (Functions, UFun (listedtypes, ReturnType UReal)) -> + | Some (Functions, UFun (listedtypes, ReturnType UReal, false)) -> UnsizedType.check_compatible_arguments_mod_conv name listedtypes argumenttypes | _ -> false @@ -1191,7 +1193,7 @@ let cumulative_density_is_defined id arguments = |> Option.value_map ~default:false ~f:is_real_rt and valid_arg_types_for_suffix suffix = match Symbol_table.look vm (name ^ suffix) with - | Some (Functions, UFun (listedtypes, ReturnType UReal)) -> + | Some (Functions, UFun (listedtypes, ReturnType UReal, false)) -> UnsizedType.check_compatible_arguments_mod_conv name listedtypes argumenttypes | _ -> false @@ -1574,7 +1576,7 @@ and semantic_check_fundef_overloaded ~loc id arg_tys rt = (* User defined functions cannot be overloaded *) if Symbol_table.check_is_unassigned vm id.name then match Symbol_table.look vm id.name with - | Some (Functions, UFun (arg_tys', rt')) + | Some (Functions, UFun (arg_tys', rt', _)) when arg_tys' = arg_tys && rt' = rt -> ok () | _ -> @@ -1690,22 +1692,23 @@ and semantic_check_fundef ~loc ~cf return_ty id args body = let uarg_names = List.map ~f:(fun x -> x.name) uarg_identifiers in semantic_check_fundef_overloaded ~loc id uarg_types urt |> apply_const (semantic_check_fundef_decl ~loc id body) - >>= fun _ -> + >>= fun () -> (* WARNING: SIDE EFFECTING *) - Symbol_table.enter vm id.name (Functions, UFun (uarg_types, urt)) ; + Symbol_table.enter vm id.name (Functions, UFun (uarg_types, urt, false)) ; (* Check that function args and loop identifiers are not modified in function. (passed by const ref)*) List.iter ~f:(Symbol_table.set_read_only vm) uarg_names ; semantic_check_fundef_dist_rt ~loc id urt |> apply_const (semantic_check_pdf_fundef_first_arg_ty ~loc id uarg_types) |> apply_const (semantic_check_pmf_fundef_first_arg_ty ~loc id uarg_types) - >>= fun _ -> + >>= fun () -> (* WARNING: SIDE EFFECTING *) Symbol_table.begin_scope vm ; List.map ~f:(fun x -> check_fresh_variable x false) uarg_identifiers |> sequence |> apply_const (semantic_check_fundef_distinct_arg_ids ~loc uarg_names) - >>= fun _ -> + |> map ~f:(List.iter ~f:Fn.id) + >>= fun () -> (* TODO: Bob was suggesting that function arguments must be allowed to shadow user defined functions but not library functions. Should we allow for that? @@ -1738,7 +1741,7 @@ and semantic_check_fundef ~loc ~cf return_ty id args body = body' >>= fun ub -> semantic_check_fundef_return_tys ~loc id urt ub - |> map ~f:(fun _ -> + |> map ~f:(fun () -> (* WARNING: SIDE EFFECTING *) Symbol_table.end_scope vm ; let stmt = diff --git a/src/frontend/Semantic_error.ml b/src/frontend/Semantic_error.ml index 2ace0b4bbf..636af460fa 100644 --- a/src/frontend/Semantic_error.ml +++ b/src/frontend/Semantic_error.ml @@ -121,7 +121,8 @@ module TypeError = struct [ [ UnsizedType.UFun ( List.hd_exn args :: (AutoDiffable, UInt) :: (AutoDiffable, UInt) :: List.tl_exn args - , ReturnType UReal ) ] + , ReturnType UReal + , false ) ] ; first; [UInt]; rest ] in Fmt.pf ppf @@ -166,8 +167,8 @@ module TypeError = struct let generate_ode_sig = [ UnsizedType.UFun ( Stan_math_signatures.variadic_ode_mandatory_fun_args @ args - , ReturnType Stan_math_signatures.variadic_ode_fun_return_type ) - ] + , ReturnType Stan_math_signatures.variadic_ode_fun_return_type + , false ) ] @ types Stan_math_signatures.variadic_ode_mandatory_arg_types @ optional_tol_args @ types args in @@ -274,7 +275,7 @@ module TypeError = struct signatures:%a\n\ @[Instead supplied arguments of incompatible type: %a.@]" name UnsizedType.pp - (UFun (listed_tys, return_ty)) + (UFun (listed_tys, return_ty, false)) Fmt.(list UnsizedType.pp ~sep:comma) arg_tys | IllTypedBinaryOperator (op, lt, rt) -> diff --git a/src/middle/Fun_kind.ml b/src/middle/Fun_kind.ml index 7728311a6a..0a4d1cb8e8 100644 --- a/src/middle/Fun_kind.ml +++ b/src/middle/Fun_kind.ml @@ -1,2 +1,2 @@ -type t = StanLib | CompilerInternal | UserDefined +type t = StanLib | CompilerInternal | UserDefined | Closure [@@deriving compare, sexp, hash] diff --git a/src/middle/Stan_math_signatures.ml b/src/middle/Stan_math_signatures.ml index 59ebf9240c..8dd7d98863 100644 --- a/src/middle/Stan_math_signatures.ml +++ b/src/middle/Stan_math_signatures.ml @@ -360,7 +360,7 @@ let get_sigs name = let name = Utils.stdlib_distribution_name name in Hashtbl.find_multi stan_math_signatures name |> List.sort ~compare -let pp_math_sig ppf (rt, args) = UnsizedType.pp ppf (UFun (args, rt)) +let pp_math_sig ppf (rt, args) = UnsizedType.pp ppf (UFun (args, rt, false)) let pp_math_sigs ppf name = (Fmt.list ~sep:Fmt.cut pp_math_sig) ppf (get_sigs name) @@ -624,7 +624,8 @@ let () = , UFun ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType UVector ) ) + , ReturnType UVector + , false ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] ) ; add_qualified @@ -634,7 +635,8 @@ let () = , UFun ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType UVector ) ) + , ReturnType UVector + , false ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt); (DataOnly, UReal) ; (DataOnly, UReal); (DataOnly, UReal) ] ) ; @@ -645,7 +647,8 @@ let () = , UFun ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType UVector ) ) + , ReturnType UVector + , false ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] ) ; add_qualified @@ -655,7 +658,8 @@ let () = , UFun ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType UVector ) ) + , ReturnType UVector + , false ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt); (DataOnly, UReal) ; (DataOnly, UReal); (DataOnly, UReal) ] ) ; @@ -1075,7 +1079,8 @@ let () = ( [ (AutoDiffable, UReal); (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType UReal ) ) + , ReturnType UReal + , false ) ) ; (AutoDiffable, UReal); (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] ) ; @@ -1087,7 +1092,8 @@ let () = ( [ (AutoDiffable, UReal); (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType UReal ) ) + , ReturnType UReal + , false ) ) ; (AutoDiffable, UReal); (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt); (DataOnly, UReal) ] @@ -1101,7 +1107,8 @@ let () = ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType (UArray UReal) ) ) + , ReturnType (UArray UReal) + , true ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1116,7 +1123,8 @@ let () = ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType (UArray UReal) ) ) + , ReturnType (UArray UReal) + , true ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1131,7 +1139,8 @@ let () = ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType (UArray UReal) ) ) + , ReturnType (UArray UReal) + , true ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1147,7 +1156,8 @@ let () = ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType (UArray UReal) ) ) + , ReturnType (UArray UReal) + , true ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1162,7 +1172,8 @@ let () = ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType (UArray UReal) ) ) + , ReturnType (UArray UReal) + , true ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1178,7 +1189,8 @@ let () = ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType (UArray UReal) ) ) + , ReturnType (UArray UReal) + , true ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1193,7 +1205,8 @@ let () = ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType (UArray UReal) ) ) + , ReturnType (UArray UReal) + , true ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1279,7 +1292,8 @@ let () = , UFun ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] - , ReturnType UVector ) ) + , ReturnType UVector + , false ) ) ; (AutoDiffable, UVector) ; (AutoDiffable, UArray UVector) ; (DataOnly, UArray (UArray UReal)) diff --git a/src/middle/UnsizedType.ml b/src/middle/UnsizedType.ml index fae0b7284f..ff41edea24 100644 --- a/src/middle/UnsizedType.ml +++ b/src/middle/UnsizedType.ml @@ -8,7 +8,7 @@ type t = | URowVector | UMatrix | UArray of t - | UFun of (autodifftype * t) list * returntype + | UFun of (autodifftype * t) list * returntype * bool | UMathLibraryFunction and autodifftype = DataOnly | AutoDiffable @@ -36,7 +36,7 @@ let rec pp ppf = function let ty, depth = unsized_array_depth ut in let commas = String.make depth ',' in Fmt.pf ppf "%a[%s]" pp ty commas - | UFun (argtypes, rt) -> + | UFun (argtypes, rt, _) -> Fmt.pf ppf {|@[(%a) => %a@]|} Fmt.(list pp_fun_arg ~sep:comma) argtypes pp_returntype rt @@ -67,14 +67,18 @@ let check_of_same_type_mod_conv name t1 t2 = else match (t1, t2) with | UReal, UInt -> true - | UFun (l1, rt1), UFun (l2, rt2) -> + | UFun (_, _, false), UFun (_, _, true) -> false + | UFun (l1, rt1, _), UFun (l2, rt2, _) -> ( rt1 = rt2 - && List.for_all - ~f:(fun x -> x = true) - (List.map2_exn - ~f:(fun (at1, ut1) (at2, ut2) -> - ut1 = ut2 && autodifftype_can_convert at2 at1 ) - l1 l2) + && + match + List.for_all2 + ~f:(fun (ad1, ut1) (ad2, ut2) -> + ut1 = ut2 && autodifftype_can_convert ad2 ad1 ) + l1 l2 + with + | List.Or_unequal_lengths.Ok ok -> ok + | Unequal_lengths -> false ) | _ -> t1 = t2 let rec check_of_same_type_mod_array_conv name t1 t2 = @@ -84,14 +88,15 @@ let rec check_of_same_type_mod_array_conv name t1 t2 = | _ -> check_of_same_type_mod_conv name t1 t2 let check_compatible_arguments_mod_conv name args1 args2 = - List.length args1 = List.length args2 - && List.for_all - ~f:(fun y -> y = true) - (List.map2_exn - ~f:(fun sign1 sign2 -> - check_of_same_type_mod_conv name (snd sign1) (snd sign2) - && autodifftype_can_convert (fst sign1) (fst sign2) ) - args1 args2) + match + List.for_all2 + ~f:(fun (ad1, ut1) (ad2, ut2) -> + check_of_same_type_mod_conv name ut1 ut2 + && autodifftype_can_convert ad1 ad2 ) + args1 args2 + with + | List.Or_unequal_lengths.Ok ok -> ok + | Unequal_lengths -> false (** Given two types find the minimal type both can convert to *) let rec common_type = function diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 9272de8bf5..c55ec1242e 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -262,8 +262,7 @@ and read_data ut ppf es = match ut with | UnsizedType.UArray UInt -> "i" | UArray UReal -> "r" - | UInt | UReal | UVector | URowVector | UMatrix | UArray _ - |UFun (_, _) + | UInt | UReal | UVector | URowVector | UMatrix | UArray _ | UFun _ |UMathLibraryFunction -> raise_s [%message "Can't ReadData of " (ut : UnsizedType.t)] in @@ -273,18 +272,16 @@ and read_data ut ppf es = and gen_fun_app ppf fname es = let default ppf es = let to_var s = Expr.{Fixed.pattern= Var s; meta= Typed.Meta.empty} in - let convert_hof_vars = function - | {Expr.Fixed.pattern= Var name; meta= {Expr.Typed.Meta.type_= UFun _; _}} - as e -> - { e with - pattern= FunApp (StanLib, name ^ functor_suffix_select fname, []) - } - | e -> e - in - let converted_es = List.map ~f:convert_hof_vars es in let extra = suffix_args fname |> List.map ~f:to_var in - let is_hof_call = not (converted_es = es) in let msgs = "pstream__" |> to_var in + let wrap_ode f = + match Expr.(f.Fixed.meta.Typed.Meta.type_) with + | UFun (args, rt, false) -> + { Expr.Fixed.meta= {f.meta with type_= UFun (args, rt, true)} + ; pattern= FunApp (StanLib, "from_lambda", [f]) } + (* ODE solvers have unusual argument order. Convert to a closure to fix it. *) + | _ -> f + in (* Here, because these signatures are written in C++ such that they wanted to have optional arguments and piggyback on C++ default arguments and not write the necessary overloads, we have to @@ -294,56 +291,49 @@ and gen_fun_app ppf fname es = overloads. *) let fname, args = - match (is_hof_call, fname, converted_es @ extra) with - | true, "algebra_solver", f :: x :: y :: dat :: datint :: tl - |true, "algebra_solver_newton", f :: x :: y :: dat :: datint :: tl -> + match (fname, es @ extra) with + | "algebra_solver", f :: x :: y :: dat :: datint :: tl + |"algebra_solver_newton", f :: x :: y :: dat :: datint :: tl -> (fname, f :: x :: y :: dat :: datint :: msgs :: tl) - | true, "integrate_1d", f :: a :: b :: theta :: x_r :: x_i :: tl -> + | "integrate_1d", f :: a :: b :: theta :: x_r :: x_i :: tl -> (fname, f :: a :: b :: theta :: x_r :: x_i :: msgs :: tl) - | ( true - , "integrate_ode_bdf" - , f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl ) - |( true - , "integrate_ode_adams" - , f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl ) - |( true - , "integrate_ode_rk45" - , f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl ) -> + | "integrate_ode_bdf", f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl + |"integrate_ode_adams", f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl + |"integrate_ode_rk45", f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl + -> (fname, f :: y0 :: t0 :: ts :: theta :: x :: x_int :: msgs :: tl) - | true, x, {pattern= FunApp (_, f, _); _} :: grainsize :: container :: tl + | ( x + , {meta= {type_= UFun (_, _, false); _}; pattern= Var f} + :: grainsize :: container :: tl ) when Stan_math_signatures.is_reduce_sum_fn x -> - let chop_functor_suffix = - String.chop_suffix_exn ~suffix:reduce_sum_functor_suffix - in let propto_template = - if Utils.is_distribution_name (chop_functor_suffix f) then - if Utils.is_unnormalized_distribution (chop_functor_suffix f) - then "" + if Utils.is_distribution_name f then + if Utils.is_unnormalized_distribution f then "" else "" else "" in let normalized_dist_functor = - Utils.stdlib_distribution_name (chop_functor_suffix f) - ^ reduce_sum_functor_suffix + Utils.stdlib_distribution_name f ^ reduce_sum_functor_suffix in ( strf "%s<%s%s>" fname normalized_dist_functor propto_template , grainsize :: container :: msgs :: tl ) - | true, x, f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps :: tl + | x, f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps :: tl when Stan_math_signatures.is_variadic_ode_fn x && String.is_suffix fname ~suffix:Stan_math_signatures.ode_tolerances_suffix -> ( fname - , f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps :: msgs - :: tl ) - | true, x, f :: y0 :: t0 :: ts :: tl + , wrap_ode f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps + :: msgs :: tl ) + | x, f :: y0 :: t0 :: ts :: tl when Stan_math_signatures.is_variadic_ode_fn x -> - (fname, f :: y0 :: t0 :: ts :: msgs :: tl) - | true, "map_rect", {pattern= FunApp (_, f, _); _} :: tl -> + (fname, wrap_ode f :: y0 :: t0 :: ts :: msgs :: tl) + | ( "map_rect" + , {pattern= Var f; meta= {type_= UFun (_, _, false); _}} :: tl ) -> + let f = f ^ functor_suffix_select fname in let next_map_rect_id = Hashtbl.length map_rect_calls + 1 in Hashtbl.add_exn map_rect_calls ~key:next_map_rect_id ~data:f ; (strf "%s<%d, %s>" fname next_map_rect_id f, tl @ [msgs]) - | true, _, args -> (fname, args @ [msgs]) - | false, _, args -> (fname, args) + | _, args -> (fname, args) in let fname = stan_namespace_qualify fname |> demangle_unnormalized_name false @@ -371,6 +361,12 @@ and pp_user_defined_fun ppf (f, es) = (list ~sep:comma pp_expr) es (sep ^ String.concat ~sep:", " extra_args) +and pp_closure ppf (f, es) = + let sep = if List.is_empty es then "" else ", " in + pf ppf "@[%s(pstream__%s@,%a)@]" + (demangle_unnormalized_name true f) + sep (list ~sep:comma pp_expr) es + and pp_compiler_internal_fn ut f ppf es = let pp_array_literal ppf es = let pp_add_method ppf () = pf ppf ")@,.add(" in @@ -434,13 +430,17 @@ and pp_indexed_simple ppf (obj, idcs) = and pp_expr ppf Expr.Fixed.({pattern; meta} as e) = match pattern with - | Var s -> pf ppf "%s" s + | Var s -> ( + match meta.type_ with + | UFun (_, _, false) -> pf ppf "%s%s()" s functor_suffix + | _ -> pf ppf "%s" s ) | Lit (Str, s) -> pf ppf "%S" s | Lit (_, s) -> pf ppf "%s" s | FunApp (StanLib, f, es) -> gen_fun_app ppf f es | FunApp (CompilerInternal, f, es) -> pp_compiler_internal_fn meta.type_ (stan_namespace_qualify f) ppf es | FunApp (UserDefined, f, es) -> pp_user_defined_fun ppf (f, es) + | FunApp (Closure, f, es) -> pp_closure ppf (f, es) | EAnd (e1, e2) -> pp_logical_op ppf "&&" e1 e2 | EOr (e1, e2) -> pp_logical_op ppf "||" e1 e2 | TernaryIf (ec, et, ef) -> diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 8a54bd0562..a2eea4c71b 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -166,7 +166,7 @@ let mk_extra_args templates args = printing user defined distributions vs rngs vs regular functions. *) let pp_fun_def ppf Program.({fdrt; fdname; fdargs; fdbody; _}) - funs_used_in_reduce_sum funs_used_in_variadic_ode = + funs_used_in_reduce_sum = let is_lp = is_user_lp fdname in let is_dist = is_user_dist fdname in let is_rng = String.is_suffix fdname ~suffix:"_rng" in @@ -219,59 +219,34 @@ let pp_fun_def ppf Program.({fdrt; fdname; fdargs; fdbody; _}) in pf ppf "%s(@[%a@]) " name (list ~sep:comma string) arg_strs in - let pp_sig_variadic_ode ppf name = - if is_dist then pp_template_decorator ppf (List.tl_exn templates) - else pp_template_decorator ppf templates ; - pp_returntype ppf fdargs fdrt ; - let first_two, rest = List.split_n args 2 in - let arg_strs = - first_two - @ ["std::ostream* pstream__"] - @ rest - @ mk_extra_args extra_templates extra - in - pf ppf "%s(@[%a@]) " name (list ~sep:comma string) arg_strs - in pp_sig ppf fdname ; match fdbody with | None -> pf ppf ";@ " - | Some fdbody -> + | Some fdbody -> ( pp_block ppf (pp_body, fdbody) ; pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname functor_suffix pp_sig "operator()" pp_call_str ( (if is_dist || is_lp then fdname ^ "" else fdname) , List.map ~f:(fun (_, name, _) -> name) fdargs @ extra @ ["pstream__"] ) ; - if String.Set.mem funs_used_in_reduce_sum fdname then - (* Produces the reduce_sum functors that has the pstream argument - as the third and not last argument *) - match fdargs with - | (_, slice, _) :: (_, start, _) :: (_, end_, _) :: rest -> - let pp_template_propto ppf name = - if is_user_dist name then pf ppf "template @ " - else pf ppf "" - in - pf ppf "@,@,%astruct %s%s {@,%a const @,{@,return %a;@,}@,};@," - (* (if is_dist || is_lp then "template " else "") *) - pp_template_propto fdname fdname reduce_sum_functor_suffix - pp_sig_rs "operator()" pp_call_str - ( (if is_dist || is_lp then fdname ^ "" else fdname) - , slice :: (start ^ " + 1") :: (end_ ^ " + 1") - :: List.map ~f:(fun (_, name, _) -> name) rest - @ extra @ ["pstream__"] ) - | _ -> - raise_s - [%message - "Ill-formed reduce_sum call! This is bug in the compiler."] - else if String.Set.mem funs_used_in_variadic_ode fdname then - (* Produces the variadic ode functors that has the pstream argument - as the third and not last argument *) - pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname - variadic_ode_functor_suffix pp_sig_variadic_ode "operator()" - pp_call_str - ( fdname - , List.map ~f:(fun (_, name, _) -> name) fdargs - @ extra @ ["pstream__"] ) + match fdargs with + | (_, slice, _) :: (_, start, _) :: (_, end_, _) :: rest + when String.Set.mem funs_used_in_reduce_sum fdname -> + (* Produces the reduce_sum functors that has the pstream argument + as the third and not last argument *) + let pp_template_propto ppf name = + if is_user_dist name then pf ppf "template @ " + else pf ppf "" + in + pf ppf "@,@,%astruct %s%s {@,%a const @,{@,return %a;@,}@,};@," + (* (if is_dist || is_lp then "template " else "") *) + pp_template_propto fdname fdname reduce_sum_functor_suffix + pp_sig_rs "operator()" pp_call_str + ( (if is_dist || is_lp then fdname ^ "" else fdname) + , slice :: (start ^ " + 1") :: (end_ ^ " + 1") + :: List.map ~f:(fun (_, name, _) -> name) rest + @ extra @ ["pstream__"] ) + | _ -> () ) (* Creates functions outside the model namespaces which only call the ones inside the namespaces *) @@ -847,7 +822,6 @@ let pp_prog ppf (p : Program.Typed.t) = let pp_fun_def_with_variadic_fn_list ppf fblock = pp_fun_def ppf fblock (is_fun_used_with_variadic_fn Stan_math_signatures.is_reduce_sum_fn p) - (is_fun_used_with_variadic_fn Stan_math_signatures.is_variadic_ode_fn p) in let reduce_sum_struct_decls = String.Set.map diff --git a/src/stan_math_backend/Statement_gen.ml b/src/stan_math_backend/Statement_gen.ml index 9d70643af4..a2d47ddd87 100644 --- a/src/stan_math_backend/Statement_gen.ml +++ b/src/stan_math_backend/Statement_gen.ml @@ -175,6 +175,7 @@ let rec pp_statement (ppf : Format.formatter) pf ppf "%s(@[%a@]);" fname (list ~sep:comma pp_expr) args | NRFunApp (UserDefined, fname, args) -> pf ppf "%a;" pp_user_defined_fun (fname, args) + | NRFunApp (Closure, fname, args) -> pf ppf "%a;" pp_closure (fname, args) | Break -> string ppf "break;" | Continue -> string ppf "continue;" | Return e -> pf ppf "@[return %a;@]" (option pp_expr) e diff --git a/src/tfp_backend/Code_gen.ml b/src/tfp_backend/Code_gen.ml index 6a6903a471..45fda18d6e 100644 --- a/src/tfp_backend/Code_gen.ml +++ b/src/tfp_backend/Code_gen.ml @@ -68,7 +68,7 @@ let rec pp_stmt ppf s = | Assignment ((lhs, _, indices), rhs) -> pf ppf "%s%a = %a" lhs pp_indices indices pp_expr rhs | TargetPE rhs -> pf ppf "target += tf__.reduce_sum(%a)" pp_expr rhs - | NRFunApp (StanLib, f, args) | NRFunApp (UserDefined, f, args) -> + | NRFunApp ((StanLib | UserDefined | Closure), f, args) -> pp_call ppf (f, pp_expr, args) | Break -> pf ppf "break" | Continue -> pf ppf "continue" diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 6fbd370629..193eb4afef 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -13547,19 +13547,6 @@ return f(t, z, a, b, pstream__); } }; - -struct f_odefunctor__ { -template -Eigen::Matrix, -1, 1> -operator()(const T0__& t, const Eigen::Matrix& z, - std::ostream* pstream__, const T2__& a, - const Eigen::Matrix& b) const -{ -return f(t, z, a, b, pstream__); -} -}; - class new_integrate_interface_model final : public model_base_crtp { private: @@ -13664,51 +13651,51 @@ class new_integrate_interface_model final : public model_base_crtp(r, 0, 1)); @@ -15440,795 +15427,795 @@ class new_integrate_interface_model final : public model_base_crtp) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -9070,7 +9070,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -9098,7 +9098,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -9126,7 +9126,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -9148,7 +9148,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -9176,7 +9176,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -9198,7 +9198,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -10496,7 +10496,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (DataOnly (UArray UReal)) (DataOnly (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var tmp)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11833,7 +11833,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -11855,7 +11855,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -11883,7 +11883,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -11911,7 +11911,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11933,7 +11933,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11961,7 +11961,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11983,7 +11983,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector))) + (ReturnType UVector) false)) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 01f8052fd0..5a9fddc296 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -9,7 +9,7 @@ let%expect_test "udf" = Stmt.Fixed.{pattern= stmt; meta= Locations.no_span_num} in let w e = Expr.{Fixed.pattern= e; meta= Typed.Meta.empty} in - let pp_fun_def_w_rs a b = pp_fun_def a b String.Set.empty String.Set.empty in + let pp_fun_def_w_rs a b = pp_fun_def a b String.Set.empty in { fdrt= None ; fdname= "sars" ; fdargs= [(DataOnly, "x", UMatrix); (AutoDiffable, "y", URowVector)] From 3a1c30328157a719aebfb5a390fe8ea1d35f6916 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sun, 15 Nov 2020 17:45:31 +0200 Subject: [PATCH 02/24] add closure support to fun_defs --- src/frontend/Ast.ml | 25 ++++++++++----- src/frontend/Ast_to_Mir.ml | 34 +++++++++++++++++++-- src/frontend/Canonicalize.ml | 10 +++--- src/frontend/Pretty_printing.ml | 3 +- src/frontend/Semantic_check.ml | 9 ++++-- src/frontend/parser.mly | 2 +- src/middle/Internal_fun.ml | 1 + src/middle/Program.ml | 9 ++++-- src/stan_math_backend/Expression_gen.ml | 7 +++++ src/stan_math_backend/Stan_math_code_gen.ml | 4 ++- src/stan_math_backend/Statement_gen.ml | 9 ++++-- test/unit/Optimize.ml | 5 +-- test/unit/Stan_math_code_gen_tests.ml | 1 + 13 files changed, 93 insertions(+), 26 deletions(-) diff --git a/src/frontend/Ast.ml b/src/frontend/Ast.ml index c25962d352..59498a115f 100644 --- a/src/frontend/Ast.ml +++ b/src/frontend/Ast.ml @@ -21,6 +21,11 @@ type 'e index = type fun_kind = StanLib | UserDefined | Closure [@@deriving compare, sexp, hash] +type capture_info = + string + * (Middle.UnsizedType.autodifftype * Middle.UnsizedType.t * string) list +[@@deriving compare, sexp, hash] + (** Expression shapes (used for both typed and untyped expressions, where we substitute untyped_expression or typed_expression for 'e *) type ('e, 'f) expression = @@ -115,7 +120,7 @@ type typed_lval = (typed_expression, typed_expr_meta) lval_with (** Statement shapes, where we substitute untyped_expression and untyped_statement for 'e and 's respectively to get untyped_statement and typed_expression and typed_statement to get typed_statement *) -type ('e, 's, 'l, 'f) statement = +type ('e, 's, 'l, 'f, 'c) statement = | Assignment of { assign_lhs: 'l ; assign_op: assignmentoperator @@ -154,6 +159,7 @@ type ('e, 's, 'l, 'f) statement = | FunDef of { returntype: Middle.UnsizedType.returntype ; funname: identifier + ; captures: 'c option ; arguments: (Middle.UnsizedType.autodifftype * Middle.UnsizedType.t * identifier) list @@ -175,13 +181,14 @@ type statement_returntype = | AnyReturnType [@@deriving sexp, hash, compare] -type ('e, 'm, 'l, 'f) statement_with = - {stmt: ('e, ('e, 'm, 'l, 'f) statement_with, 'l, 'f) statement; smeta: 'm} +type ('e, 'm, 'l, 'f, 'c) statement_with = + { stmt: ('e, ('e, 'm, 'l, 'f, 'c) statement_with, 'l, 'f, 'c) statement + ; smeta: 'm } [@@deriving sexp, compare, map, hash] (** Untyped statements, which have location_spans as meta-data *) type untyped_statement = - (untyped_expression, located_meta, untyped_lval, unit) statement_with + (untyped_expression, located_meta, untyped_lval, unit, unit) statement_with [@@deriving sexp, compare, map, hash] let mk_untyped_statement ~stmt ~loc : untyped_statement = {stmt; smeta= {loc}} @@ -197,7 +204,8 @@ type typed_statement = ( typed_expression , stmt_typed_located_meta , typed_lval - , fun_kind ) + , fun_kind + , capture_info ) statement_with [@@deriving sexp, compare, map, hash] @@ -240,12 +248,13 @@ let rec untyped_lvalue_of_typed_lvalue ({lval; lmeta} : typed_lval) : ; lmeta= {loc= lmeta.loc} } (** Forgetful function from typed to untyped statements *) -let rec untyped_statement_of_typed_statement {stmt; smeta} = +let rec untyped_statement_of_typed_statement ({stmt; smeta} : typed_statement) + = { stmt= map_statement untyped_expression_of_typed_expression untyped_statement_of_typed_statement untyped_lvalue_of_typed_lvalue - (fun _ -> ()) - stmt + (function StanLib | UserDefined | Closure -> ()) + Fn.ignore stmt ; smeta= {loc= smeta.loc} } (** Forgetful function from typed to untyped programs *) diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index a18403e0d4..aa0e9a3153 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -659,7 +659,36 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = ; meta= smeta } in Stmt.Helpers.[ensure_var (for_each bodyfn) iteratee' smeta] - | Ast.FunDef _ -> + | Ast.FunDef + {returntype; funname; captures= Some (implname, captures); arguments; _} + -> + let arguments = List.map ~f:(fun (ad, ut, _) -> (ad, ut)) arguments in + let type_ = UnsizedType.UFun (arguments, returntype, true) in + let captures = + List.map + ~f:(fun (adlevel, type_, id) -> + Expr. + { Fixed.pattern= Var id + ; meta= Typed.Meta.{adlevel; type_; loc= mloc} } ) + captures + in + [ { pattern= + Decl + { decl_adtype= AutoDiffable + ; decl_id= funname.name + ; decl_type= Unsized type_ } + ; meta= smeta } + ; { pattern= + Assignment + ( (funname.name, type_, []) + , { pattern= + FunApp + ( CompilerInternal + , Internal_fun.to_string FnMakeClosure + , Expr.Helpers.str implname :: captures ) + ; meta= {type_; adlevel= AutoDiffable; loc= mloc} } ) + ; meta= smeta } ] + | Ast.FunDef {captures= None; _} -> raise_s [%message "Found function definition statement outside of function block"] @@ -677,11 +706,12 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = let trans_fun_def ud_dists (ts : Ast.typed_statement) = match ts.stmt with - | Ast.FunDef {returntype; funname; arguments; body} -> + | Ast.FunDef {returntype; funname; captures= None; arguments; body} -> [ Program. { fdrt= (match returntype with Void -> None | ReturnType ut -> Some ut) ; fdname= funname.name + ; fdcaptures= None ; fdargs= List.map ~f:trans_arg arguments ; fdbody= trans_stmt ud_dists diff --git a/src/frontend/Canonicalize.ml b/src/frontend/Canonicalize.ml index 7772b61e59..8d100f90d9 100644 --- a/src/frontend/Canonicalize.ml +++ b/src/frontend/Canonicalize.ml @@ -89,7 +89,7 @@ let rec repair_syntax_stmt user_dists {stmt; smeta} = { stmt= map_statement repair_syntax_expr (repair_syntax_stmt user_dists) - repair_syntax_lval ident stmt + repair_syntax_lval Fn.id Fn.id stmt ; smeta } let rec replace_deprecated_expr {expr; emeta} = @@ -140,7 +140,8 @@ let rec replace_deprecated_stmt {stmt; smeta} = { assign_lhs= replace_deprecated_lval l ; assign_op= Assign ; assign_rhs= replace_deprecated_expr e } - | FunDef {returntype; funname= {name; id_loc}; arguments; body} -> + | FunDef {returntype; funname= {name; id_loc}; captures; arguments; body} + -> FunDef { returntype ; funname= @@ -148,11 +149,12 @@ let rec replace_deprecated_stmt {stmt; smeta} = Option.value ~default:name (String.Table.find deprecated_userdefined name) ; id_loc } + ; captures ; arguments ; body= replace_deprecated_stmt body } | _ -> map_statement replace_deprecated_expr replace_deprecated_stmt - replace_deprecated_lval ident stmt + replace_deprecated_lval Fn.id Fn.id stmt in {stmt; smeta} @@ -209,7 +211,7 @@ let rec parens_stmt {stmt; smeta} = ; lower_bound= keep_parens lower_bound ; upper_bound= keep_parens upper_bound ; loop_body= parens_stmt loop_body } - | _ -> map_statement no_parens parens_stmt parens_lval ident stmt + | _ -> map_statement no_parens parens_stmt parens_lval Fn.id Fn.id stmt in {stmt; smeta} diff --git a/src/frontend/Pretty_printing.ml b/src/frontend/Pretty_printing.ml index 440d76b8d8..9ed7bd6755 100644 --- a/src/frontend/Pretty_printing.ml +++ b/src/frontend/Pretty_printing.ml @@ -356,7 +356,8 @@ and pp_statement ppf ({stmt= s_content; _} as ss) = with_hbox ppf (fun () -> Fmt.pf ppf "%a%a %a%a;" pp_array_dims es pp_transformed_type (pst, trans) pp_identifier id pp_init init ) - | FunDef {returntype= rt; funname= id; arguments= args; body= b} -> ( + | FunDef {returntype= rt; funname= id; captures; arguments= args; body= b} -> ( + if is_some captures then Fmt.pf ppf "functions" ; Fmt.pf ppf "%a %a(" pp_returntype rt pp_identifier id ; with_box ppf 0 (fun () -> Fmt.pf ppf "%a" (Fmt.list ~sep:Fmt.comma pp_args) args ) ; diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index b68866b865..0bf4de14fa 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -1745,7 +1745,12 @@ and semantic_check_fundef ~loc ~cf return_ty id args body = (* WARNING: SIDE EFFECTING *) Symbol_table.end_scope vm ; let stmt = - FunDef {returntype= urt; funname= id; arguments= uargs; body= ub} + FunDef + { returntype= urt + ; funname= id + ; captures= None + ; arguments= uargs + ; body= ub } in mk_typed_statement ~return_type:NoReturnType ~loc ~stmt )) @@ -1785,7 +1790,7 @@ and semantic_check_statement cf (s : Ast.untyped_statement) : ; is_global } -> semantic_check_var_decl ~loc ~cf st transformation identifier initial_value is_global - | FunDef {returntype; funname; arguments; body} -> + | FunDef {returntype; funname; captures= _; arguments; body} -> semantic_check_fundef ~loc ~cf returntype funname arguments body (* == Untyped programs ====================================================== *) diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index c72c09faa8..206cdf4e70 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -187,7 +187,7 @@ function_def: { grammar_logger "function_def" ; {stmt=FunDef {returntype = rt; funname = name; - arguments = args; body=b;}; + captures = None; arguments = args; body=b;}; smeta={loc=Location_span.of_positions_exn $loc} } } diff --git a/src/middle/Internal_fun.ml b/src/middle/Internal_fun.ml index e889bedf49..fac14976bb 100644 --- a/src/middle/Internal_fun.ml +++ b/src/middle/Internal_fun.ml @@ -2,6 +2,7 @@ open Core_kernel type t = | FnLength + | FnMakeClosure | FnMakeArray | FnMakeRowVec | FnNegInf diff --git a/src/middle/Program.ml b/src/middle/Program.ml index 47c4ea6a73..95d544c47b 100644 --- a/src/middle/Program.ml +++ b/src/middle/Program.ml @@ -8,10 +8,13 @@ type fun_arg_decl = (UnsizedType.autodifftype * string * UnsizedType.t) list type 'a fun_def = { fdrt: UnsizedType.t option ; fdname: string - ; fdargs: - (UnsizedType.autodifftype * string * UnsizedType.t) list + ; fdcaptures: + (UnsizedType.autodifftype * string * UnsizedType.t) list option + (* If fdcaptures is not None, this is a closure. *) + ; fdargs: (UnsizedType.autodifftype * string * UnsizedType.t) list + ; fdbody: + 'a option (* If fdbody is None, this is a function declaration without body. *) - ; fdbody: 'a option ; fdloc: Location_span.t sexp_opaque [@compare.ignore] } [@@deriving compare, hash, map, sexp, map, fold] diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index c55ec1242e..2fd9a7f04e 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -382,6 +382,13 @@ and pp_compiler_internal_fn ut f ppf es = es in match Internal_fun.of_string_opt f with + | Some FnMakeClosure -> ( + match es with + | {Expr.Fixed.pattern= Lit (Str, implname); _} :: args -> + gen_fun_app ppf (implname ^ "") args + | _ -> + raise_s + [%message "Missing closure constructor " (es : Expr.Typed.t list)] ) | Some FnMakeArray -> pp_array_literal ppf es | Some FnMakeRowVec -> ( match ut with diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index a2eea4c71b..2df6ba5206 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -843,7 +843,9 @@ let pp_prog ppf (p : Program.Typed.t) = if !standalone_functions then pf ppf "@[%a@ @]" (list ~sep:cut (pp_standalone_fun_def (namespace p))) - p.functions_block + (List.filter + ~f:(fun {fdcaptures; _} -> is_none fdcaptures) + p.functions_block) else ( pf ppf "@,using stan_model = %s_namespace::%s;@," p.prog_name p.prog_name ; pf ppf diff --git a/src/stan_math_backend/Statement_gen.ml b/src/stan_math_backend/Statement_gen.ml index a2d47ddd87..b6a0de202a 100644 --- a/src/stan_math_backend/Statement_gen.ml +++ b/src/stan_math_backend/Statement_gen.ml @@ -100,9 +100,13 @@ let rec pp_statement (ppf : Format.formatter) | _ -> Locations.pp_smeta ppf meta ) ; match pattern with | Assignment - ((vident, _, []), ({meta= Expr.Typed.Meta.({type_= UInt; _}); _} as rhs)) - |Assignment ((vident, _, []), ({meta= {type_= UReal; _}; _} as rhs)) -> + ( (vident, _, []) + , ({meta= Expr.Typed.Meta.({type_= UInt | UReal; _}); _} as rhs) ) -> pf ppf "@[%s = %a;@]" vident pp_expr rhs + | Assignment + ( (vident, UFun _, []) + , ({meta= Expr.Typed.Meta.({type_= UFun _; _}); _} as rhs) ) -> + pf ppf "@[auto %s = %a;@]" vident pp_expr rhs | Assignment ((assignee, UInt, idcs), rhs) |Assignment ((assignee, UReal, idcs), rhs) when List.for_all ~f:is_single_index idcs -> @@ -198,6 +202,7 @@ let rec pp_statement (ppf : Format.formatter) pp_for_loop ppf (loopvar, lower, upper, pp_statement, body) | Block ls -> pp_block ppf (pp_stmt_list, ls) | SList ls -> pp_stmt_list ppf ls + | Decl {decl_type= Unsized (UFun _); _} -> () | Decl {decl_adtype; decl_id; decl_type} -> pp_possibly_sized_decl ppf (decl_id, decl_type, decl_adtype) diff --git a/test/unit/Optimize.ml b/test/unit/Optimize.ml index 9d8fa9619c..ef03d5a791 100644 --- a/test/unit/Optimize.ml +++ b/test/unit/Optimize.ml @@ -264,7 +264,7 @@ let%expect_test "list collapsing" = [%expect {| ((functions_block - (((fdrt ()) (fdname f) + (((fdrt ()) (fdname f) (fdcaptures ()) (fdargs ((AutoDiffable x UInt) (AutoDiffable y UMatrix))) (fdbody (((pattern @@ -281,7 +281,8 @@ let%expect_test "list collapsing" = (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname g) (fdargs ((AutoDiffable z UInt))) + ((fdrt (UReal)) (fdname g) (fdcaptures ()) + (fdargs ((AutoDiffable z UInt))) (fdbody (((pattern (Block diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 5a9fddc296..2c9f39d47a 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -12,6 +12,7 @@ let%expect_test "udf" = let pp_fun_def_w_rs a b = pp_fun_def a b String.Set.empty in { fdrt= None ; fdname= "sars" + ; fdcaptures= None ; fdargs= [(DataOnly, "x", UMatrix); (AutoDiffable, "y", URowVector)] ; fdbody= Stmt.Fixed.Pattern.Return From 9e55fed484427e2057ad18fbbb3a62863691c78a Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Mon, 16 Nov 2020 20:26:33 +0200 Subject: [PATCH 03/24] refactor function codegen --- src/stan_math_backend/Stan_math_code_gen.ml | 267 +- test/integration/good/code-gen/cpp.expected | 9579 +++++++++-------- test/integration/good/code-gen/mir.expected | 95 +- .../standalone_functions/cpp.expected | 251 +- .../good/compiler-optimizations/cpp.expected | 591 +- test/unit/Stan_math_code_gen_tests.ml | 36 +- 6 files changed, 5686 insertions(+), 5133 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 2df6ba5206..0f07d88e77 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -77,7 +77,7 @@ let%expect_test "arg types templated correctly" = @param ppf A pretty printer @param args A pack of arguments to detect whether they need to use the promotion rules. *) -let pp_promoted_scalar ppf args = +let pp_promoted_scalar ppf (s, args) = match args with | [] -> pf ppf "double" | _ -> @@ -93,12 +93,13 @@ let pp_promoted_scalar ppf args = in promote_args_chunked ppf List.( - chunks_of ~length:5 (filter_opt (maybe_templated_arg_types args))) + chunks_of ~length:5 + (filter_opt (s :: maybe_templated_arg_types args))) (** Pretty-prints a function's return-type, taking into account templated argument promotion.*) -let pp_returntype ppf arg_types rt = - let scalar = strf "%a" pp_promoted_scalar arg_types in +let pp_returntype ppf arg_types (rt, s) = + let scalar = strf "%a" pp_promoted_scalar (s, arg_types) in match rt with | Some ut when UnsizedType.contains_int ut -> pf ppf "%a@," pp_unsizedtype_custom_scalar ("int", ut) @@ -160,13 +161,8 @@ let pp_template_decorator ppf = function let mk_extra_args templates args = List.map ~f:(fun (t, v) -> t ^ "& " ^ v) (List.zip_exn templates args) -(** Print the C++ function definition. - @param ppf A pretty printer - Refactor this please - one idea might be to have different functions for - printing user defined distributions vs rngs vs regular functions. -*) -let pp_fun_def ppf Program.({fdrt; fdname; fdargs; fdbody; _}) - funs_used_in_reduce_sum = +let pp_signature is_closure ppf (fdrt, fdname, fdargs) = + let scalar = if is_closure then Some "local_scalar_t__" else None in let is_lp = is_user_lp fdname in let is_dist = is_user_dist fdname in let is_rng = String.is_suffix fdname ~suffix:"_rng" in @@ -176,14 +172,170 @@ let pp_fun_def ppf Program.({fdrt; fdname; fdargs; fdbody; _}) else ([], []) in let argtypetemplates, args = get_templates_and_args fdargs in + let templates = + (if is_dist || is_lp then ["bool propto__"] else []) + @ List.(map ~f:typename (argtypetemplates @ extra_templates)) + in + pp_template_decorator ppf templates ; + pp_returntype ppf fdargs (fdrt, scalar) ; + let arg_strs = args @ mk_extra_args extra_templates extra in + let arg_strs = + if is_closure then "std::ostream* pstream__" :: arg_strs + else arg_strs @ ["std::ostream* pstream__"] + in + pf ppf "%s(@[%a@]) " fdname (list ~sep:comma string) arg_strs + +let pp_rs_functor ppf (fdrt, fdname, fdargs) = + match fdargs with + | (_, slice, _) :: (_, start, _) :: (_, end_, _) :: rest -> + (* Produces the reduce_sum functors that has the pstream argument + as the third and not last argument *) + let is_dist = is_user_dist fdname in + let argtypetemplates, args = get_templates_and_args fdargs in + let templates = List.map ~f:typename argtypetemplates in + let pp_template_propto ppf maybe = + if maybe then pf ppf "template @ " + in + let pp_sig_rs ppf name = + let first_three, rest = List.split_n args 3 in + let arg_strs = first_three @ ["std::ostream* pstream__"] @ rest in + pp_template_decorator ppf templates ; + pp_returntype ppf fdargs (fdrt, None) ; + pf ppf "%s(@[%a@])" name (list ~sep:comma string) arg_strs + in + pf ppf "@,@,%astruct %s%s {@,%a const @,{@,return %a;@,}@,};@," + pp_template_propto is_dist fdname reduce_sum_functor_suffix pp_sig_rs + "operator()" pp_call_str + ( (if is_dist then fdname ^ "" else fdname) + , slice :: (start ^ " + 1") :: (end_ ^ " + 1") + :: List.map ~f:(fun (_, name, _) -> name) rest + @ ["pstream__"] ) + | _ -> + raise_s + [%message "Ill-formed reduce_sum call! This is bug in the compiler."] + +let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = + let clsname = fdname ^ "_functor__" in + let pp_member ppf (adlevel, name, type_) = + pf ppf "%a %s;" pp_unsizedtype_local (adlevel, type_) name + in + let pp_ctor ppf name = + let scalar = function + | UnsizedType.DataOnly -> None + | AutoDiffable -> Some "local_scalar_t__" + in + let pp ppf = function + | (ad, _, _) as arg -> pf ppf "%a__" pp_arg (scalar ad, arg) + in + let pp_init ppf (_, id, _) = pf ppf "%s(%s__)" id id in + let pp_count ppf () = + if not (List.is_empty fdargs) then comma ppf () ; + pf ppf "vars_count__(count_vars(@[%a@]))" (list ~sep:comma string) + (List.map ~f:(fun (_, id, _) -> id ^ "__") fdcaptures) + in + pf ppf "explicit %s(@[%a@])@ : @[%a%a {}@]" name + (list ~sep:comma pp) fdcaptures (list ~sep:comma pp_init) fdcaptures + pp_count () + in + let pp_op ppf () = + pf ppf "%a const @,{@,return %a;@,}@," (pp_signature true) + (fdrt, "operator()", fdargs) + pp_call_str + ( fdname ^ "_impl__" + , List.map ~f:(fun (_, name, _) -> name) (fdcaptures @ fdargs) + @ ["pstream__"] ) + in + let pp_api ppf () = + let using_valueof ppf () = + pf ppf + "using ValueOf__ = \ + %s()))>;" + clsname + in + let pp f = list ~sep:comma (fun ppf (_, id, _) -> pf ppf "%s(%s)" f id) in + let valueof ppf () = + pf ppf "auto value_of__() const {@ return ValueOf__(@[%a@]);@ }" + (pp "value_of") fdcaptures + in + let deepcopy ppf () = + pf ppf + "auto deep_copy_vars__() const {@ return \ + %s(@[%a@]);@ }" + clsname (pp "deep_copy_vars") fdcaptures + in + let zeros ppf () = + pf ppf "void zero_adjoints__() const {@ %a@ }" + (list (fun ppf (_, id, _) -> pf ppf "zero_adjoints(%s);" id)) + fdcaptures + in + let pp = list ~sep:comma (fun ppf (_, id, _) -> string ppf id) in + let accumulate ppf () = + pf ppf + "double accumulate_adjoints__(double *dest) const {@ return \ + accumulate_adjoints(@[dest%a%a@]);@ }" + comma () pp fdcaptures + in + let save ppf () = + pf ppf + "stan::math::vari** save_varis__(stan::math::vari **dest) const {@ \ + return save_varis(@[dest%a%a@]);@ }" + comma () pp fdcaptures + in + pf ppf + "@%s@]@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ \ + @[%a@]@ @[%a@]@ " + "using captured_scalar_t__ = local_scalar_t__;" using_valueof () valueof + () deepcopy () zeros () accumulate () save () ; + () + in + pf ppf + "@,@,template@,class %s {@,%a@,public:@,const \ + size_t vars_count__;@ %a@ %a@ %a@ };@," + clsname (list pp_member) fdcaptures pp_ctor fdname pp_op () pp_api () ; + () + +let pp_forward_decl funs_used_in_reduce_sum ppf + Program.({fdrt; fdname; fdcaptures; fdargs; fdbody; _}) = + match fdcaptures with + | None -> + pf ppf "%a;" (pp_signature false) (fdrt, fdname, fdargs) ; + if fdbody <> None then ( + if Set.mem funs_used_in_reduce_sum fdname then + pp_rs_functor ppf (fdrt, fdname, fdargs) ; + if + not + ( is_user_lp fdname || is_user_dist fdname + || String.is_suffix fdname ~suffix:"_rng" ) + then + pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname + functor_suffix (pp_signature false) + (fdrt, "operator()", fdargs) + pp_call_str + ( fdname + , List.map ~f:(fun (_, name, _) -> name) fdargs @ ["pstream__"] ) ) + | Some captures -> + pf ppf "%a ;" (pp_signature false) + (fdrt, fdname ^ "_impl__", captures @ fdargs) ; + pp_closure ppf (fdrt, fdname, captures, fdargs) + +let get_impl = function + | {Program.fdbody= None; _} -> None + | {fdrt; fdname; fdcaptures= None; fdargs; fdbody= Some fdbody; _} -> + Some (fdrt, fdname, fdargs, fdbody) + | {fdrt; fdname; fdcaptures= Some fdcaptures; fdargs; fdbody= Some fdbody; _} + -> + Some (fdrt, fdname ^ "_impl__", fdcaptures @ fdargs, fdbody) + +let pp_function_body ppf (fdrt, fdname, fdargs, fdbody) = let pp_body ppf (Stmt.Fixed.({pattern; _}) as fdbody) = - let text = pf ppf "%s@;" in - pf ppf "@[using local_scalar_t__ = %a;@]@," pp_promoted_scalar fdargs ; - if not (is_dist || is_lp) then ( - text "const static bool propto__ = true;" ; - text "(void) propto__;" ) ; - text - "local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN());" ; + pf ppf "@[using local_scalar_t__ = %a;@]@," pp_promoted_scalar + (None, fdargs) ; + if not (is_user_lp fdname || is_user_dist fdname) then ( + pf ppf "const static bool propto__ = true;@;" ; + pf ppf "(void) propto__;@;" ) ; + pf ppf + "local_scalar_t__ \ + DUMMY_VAR__(std::numeric_limits::quiet_NaN());@;" ; pp_unused ppf "DUMMY_VAR__" ; let blocked_fdbody = match pattern with @@ -194,59 +346,8 @@ let pp_fun_def ppf Program.({fdrt; fdname; fdargs; fdbody; _}) pp_located_error ppf (pp_statement, blocked_fdbody) ; pf ppf "@ " in - let templates = - (if is_dist || is_lp then ["bool propto__"] else []) - @ List.(map ~f:typename (argtypetemplates @ extra_templates)) - in - let pp_sig ppf name = - pp_template_decorator ppf templates ; - pp_returntype ppf fdargs fdrt ; - let arg_strs = - args @ mk_extra_args extra_templates extra @ ["std::ostream* pstream__"] - in - pf ppf "%s(@[%a@]) " name (list ~sep:comma string) arg_strs - in - let pp_sig_rs ppf name = - if is_dist then pp_template_decorator ppf (List.tl_exn templates) - else pp_template_decorator ppf templates ; - pp_returntype ppf fdargs fdrt ; - let first_three, rest = List.split_n args 3 in - let arg_strs = - first_three - @ ["std::ostream* pstream__"] - @ rest - @ mk_extra_args extra_templates extra - in - pf ppf "%s(@[%a@]) " name (list ~sep:comma string) arg_strs - in - pp_sig ppf fdname ; - match fdbody with - | None -> pf ppf ";@ " - | Some fdbody -> ( - pp_block ppf (pp_body, fdbody) ; - pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname - functor_suffix pp_sig "operator()" pp_call_str - ( (if is_dist || is_lp then fdname ^ "" else fdname) - , List.map ~f:(fun (_, name, _) -> name) fdargs @ extra @ ["pstream__"] - ) ; - match fdargs with - | (_, slice, _) :: (_, start, _) :: (_, end_, _) :: rest - when String.Set.mem funs_used_in_reduce_sum fdname -> - (* Produces the reduce_sum functors that has the pstream argument - as the third and not last argument *) - let pp_template_propto ppf name = - if is_user_dist name then pf ppf "template @ " - else pf ppf "" - in - pf ppf "@,@,%astruct %s%s {@,%a const @,{@,return %a;@,}@,};@," - (* (if is_dist || is_lp then "template " else "") *) - pp_template_propto fdname fdname reduce_sum_functor_suffix - pp_sig_rs "operator()" pp_call_str - ( (if is_dist || is_lp then fdname ^ "" else fdname) - , slice :: (start ^ " + 1") :: (end_ ^ " + 1") - :: List.map ~f:(fun (_, name, _) -> name) rest - @ extra @ ["pstream__"] ) - | _ -> () ) + pp_signature false ppf (fdrt, fdname, fdargs) ; + pp_block ppf (pp_body, fdbody) (* Creates functions outside the model namespaces which only call the ones inside the namespaces *) @@ -819,25 +920,15 @@ let is_fun_used_with_variadic_fn variadic_fn_test p = let pp_prog ppf (p : Program.Typed.t) = (* First, do some transformations on the MIR itself before we begin printing it.*) let p, s = Locations.prepare_prog p in - let pp_fun_def_with_variadic_fn_list ppf fblock = - pp_fun_def ppf fblock - (is_fun_used_with_variadic_fn Stan_math_signatures.is_reduce_sum_fn p) - in - let reduce_sum_struct_decls = - String.Set.map - ~f:(fun x -> - if Utils.is_distribution_name x then - "template \nstruct " ^ x ^ reduce_sum_functor_suffix - ^ ";" - else "struct " ^ x ^ reduce_sum_functor_suffix ^ ";" ) - (is_fun_used_with_variadic_fn Stan_math_signatures.is_reduce_sum_fn p) - |> Set.elements |> String.concat ~sep:"\n" - in - pf ppf "@[@ %s@ %s@ namespace %s {@ %s@ %s@ %a@ %s@ %a@ %a@ }@ @]" version + let funs_used_in_reduce_sum = + is_fun_used_with_variadic_fn Stan_math_signatures.is_reduce_sum_fn p + in + pf ppf "@[@ %s@ %s@ namespace %s {@ %s@ %s@ %a@ %a@ %a@ %a@ }@ @]" version includes (namespace p) custom_functions usings Locations.pp_globals s - reduce_sum_struct_decls - (list ~sep:cut pp_fun_def_with_variadic_fn_list) + (list (pp_forward_decl funs_used_in_reduce_sum)) p.functions_block + (list ~sep:cut pp_function_body) + (List.filter_map ~f:get_impl p.functions_block) (if !standalone_functions then fun _ _ -> () else pp_model) p ; if !standalone_functions then diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 193eb4afef..8f0f3b9f3f 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -2211,33 +2211,10 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'mother.stan', line 312, column 4 to column 16)", " (in 'mother.stan', line 309, column 78 to line 313, column 3)"}; - int foo(const int& n, std::ostream* pstream__) ; - int -foo(const int& n, std::ostream* pstream__) { - using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 582; - if (logical_eq(n, 0)) { - current_statement__ = 581; - return 1; - } - current_statement__ = 583; - return (n * foo((n - 1), pstream__)); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +foo(const int& n, std::ostream* pstream__) ; struct foo_functor__ { int @@ -2253,39 +2230,12 @@ T2__>> sho(const T0__& t, const std::vector& y, const std::vector& theta, const std::vector& x, const std::vector& x_int, std::ostream* pstream__) ; - template std::vector> sho(const T0__& t, const std::vector& y, const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - std::vector dydt; - dydt = std::vector(2, DUMMY_VAR__); - - current_statement__ = 586; - assign(dydt, cons_list(index_uni(1), nil_index_list()), y[(2 - 1)], - "assigning variable dydt"); - current_statement__ = 587; - assign(dydt, cons_list(index_uni(2), nil_index_list()), - (-y[(1 - 1)] - (theta[(1 - 1)] * y[(2 - 1)])), - "assigning variable dydt"); - current_statement__ = 588; - return dydt; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + const std::vector& x_int, std::ostream* pstream__) ; struct sho_functor__ { template @@ -2300,23 +2250,7 @@ return sho(t, y, theta, x, x_int, pstream__); }; double -foo_bar0(std::ostream* pstream__) { - using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 590; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +foo_bar0(std::ostream* pstream__) ; struct foo_bar0_functor__ { double @@ -2328,23 +2262,7 @@ return foo_bar0(pstream__); template stan::promote_args_t -foo_bar1(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 592; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +foo_bar1(const T0__& x, std::ostream* pstream__) ; struct foo_bar1_functor__ { template @@ -2358,23 +2276,7 @@ return foo_bar1(x, pstream__); template stan::promote_args_t -foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 594; - return 2.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) ; struct foo_bar2_functor__ { template @@ -2388,50 +2290,10 @@ return foo_bar2(x, y, pstream__); template stan::promote_args_t -foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 596; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct foo_lpmf_functor__ { -template -stan::promote_args_t -operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const -{ -return foo_lpmf(y, lambda, pstream__); -} -}; - +foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) ; template stan::promote_args_t -foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 598; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) ; struct foo_lcdf_functor__ { template @@ -2444,23 +2306,7 @@ return foo_lcdf(y, lambda, pstream__); template stan::promote_args_t -foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 600; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) ; struct foo_lccdf_functor__ { template @@ -2475,551 +2321,100 @@ template stan::promote_args_t foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 602; - return normal_rng(mu, sigma, base_rng__); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - + std::ostream* pstream__) ; +template +void +unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; +int +foo_1(const int& a, std::ostream* pstream__) ; + +struct foo_1_functor__ { +int +operator()(const int& a, std::ostream* pstream__) const +{ +return foo_1(a, pstream__); } +}; -struct foo_rng_functor__ { -template -stan::promote_args_t -operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) const +int +foo_2(const int& a, std::ostream* pstream__) ; + +struct foo_2_functor__ { +int +operator()(const int& a, std::ostream* pstream__) const { -return foo_rng(mu, sigma, base_rng__, pstream__); +return foo_2(a, pstream__); } }; -template -void -unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 604; - lp_accum__.add(normal_log(u, 0, 1)); - current_statement__ = 605; - lp_accum__.add(uniform_lpdf(u, -100, 100)); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - +template +std::vector> +foo_3(const T0__& t, const int& n, std::ostream* pstream__) ; + +struct foo_3_functor__ { +template +std::vector> +operator()(const T0__& t, const int& n, std::ostream* pstream__) const +{ +return foo_3(t, n, pstream__); } +}; -struct unit_normal_lp_functor__ { template +stan::promote_args_t +foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; +template +void +foo_4(const T0__& x, std::ostream* pstream__) ; + +struct foo_4_functor__ { +template void -operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, +operator()(const T0__& x, std::ostream* pstream__) const +{ +return foo_4(x, pstream__); +} +}; + +template +stan::promote_args_t +relative_diff(const T0__& x, const T1__& y, const T2__& max_, + const T3__& min_, std::ostream* pstream__) ; + +struct relative_diff_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, const T1__& y, const T2__& max_, const T3__& min_, std::ostream* pstream__) const { -return unit_normal_lp(u, lp__, lp_accum__, pstream__); +return relative_diff(x, y, max_, min_, pstream__); } }; -int -foo_1(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 608; - while (1) { - break; - } - current_statement__ = 610; - while (0) { - continue; - } - current_statement__ = 612; - for (int i = 1; i <= 10; ++i) { break;} - current_statement__ = 614; - for (int i = 1; i <= 10; ++i) { continue;} - current_statement__ = 619; - while (1) { - int b; - b = std::numeric_limits::min(); - - current_statement__ = 616; - b = 5; - break; - } - current_statement__ = 626; - while (1) { - current_statement__ = 624; - if (0) { - break; - } else { - current_statement__ = 622; - if (1) { - break; - } else { - break; - } - } - } - current_statement__ = 629; - while (1) { - current_statement__ = 628; - while (0) { - break; - } - } - current_statement__ = 633; - while (1) { - current_statement__ = 631; - for (int i = 1; i <= 10; ++i) { break;} - } - current_statement__ = 648; - while (1) { - std::vector> vs; - vs = std::vector>(2, std::vector(3, std::numeric_limits::min())); - - int z; - z = std::numeric_limits::min(); - - current_statement__ = 636; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - std::vector v; - current_statement__ = 636; - assign(v, nil_index_list(), vs[(sym1__ - 1)], - "assigning variable v"); - current_statement__ = 637; - z = 0; - break; - }} - current_statement__ = 639; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - std::vector v; - current_statement__ = 639; - assign(v, nil_index_list(), vs[(sym1__ - 1)], - "assigning variable v"); - current_statement__ = 640; - z = 0; - continue; - }} - current_statement__ = 642; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - std::vector v; - current_statement__ = 642; - assign(v, nil_index_list(), vs[(sym1__ - 1)], - "assigning variable v"); - current_statement__ = 643; - for (int sym1__ = 1; sym1__ <= stan::math::size(v); ++sym1__) { - { - int vv; - current_statement__ = 643; - vv = v[(sym1__ - 1)]; - current_statement__ = 644; - z = 0; - break; - }} - current_statement__ = 646; - z = 1; - }} - } - current_statement__ = 658; - while (1) { - local_scalar_t__ z; - z = DUMMY_VAR__; - - Eigen::Matrix vs; - vs = Eigen::Matrix(2, 3); - stan::math::fill(vs, DUMMY_VAR__); - - current_statement__ = 651; - for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { - current_statement__ = 651; - for (int sym2__ = 1; - sym2__ <= stan::math::size( - rvalue(vs, - cons_list(index_uni(sym1__), nil_index_list()), - "vs")); ++sym2__) { - { - local_scalar_t__ v; - current_statement__ = 651; - v = rvalue(vs, - cons_list(index_uni(sym1__), - cons_list(index_uni(sym2__), nil_index_list())), "vs"); - current_statement__ = 652; - z = 0; - break; - }}} - current_statement__ = 654; - for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { - current_statement__ = 654; - for (int sym2__ = 1; - sym2__ <= stan::math::size( - rvalue(vs, - cons_list(index_uni(sym1__), nil_index_list()), - "vs")); ++sym2__) { - { - local_scalar_t__ v; - current_statement__ = 654; - v = rvalue(vs, - cons_list(index_uni(sym1__), - cons_list(index_uni(sym2__), nil_index_list())), "vs"); - current_statement__ = 655; - z = 3.1; - continue; - }}} - } - current_statement__ = 668; - while (1) { - local_scalar_t__ z; - z = DUMMY_VAR__; - - Eigen::Matrix vs; - vs = Eigen::Matrix(2); - stan::math::fill(vs, DUMMY_VAR__); - - current_statement__ = 661; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 661; - v = vs[(sym1__ - 1)]; - current_statement__ = 662; - z = 0; - break; - }} - current_statement__ = 664; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 664; - v = vs[(sym1__ - 1)]; - current_statement__ = 665; - z = 3.2; - continue; - }} - } - current_statement__ = 678; - while (1) { - local_scalar_t__ z; - z = DUMMY_VAR__; - - Eigen::Matrix vs; - vs = Eigen::Matrix(2); - stan::math::fill(vs, DUMMY_VAR__); - - current_statement__ = 671; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 671; - v = vs[(sym1__ - 1)]; - current_statement__ = 672; - z = 0; - break; - }} - current_statement__ = 674; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 674; - v = vs[(sym1__ - 1)]; - current_statement__ = 675; - z = 3.3; - continue; - }} - } - current_statement__ = 686; - while (1) { - int b; - b = std::numeric_limits::min(); - - current_statement__ = 680; - b = 5; - { - int c; - c = std::numeric_limits::min(); - - current_statement__ = 682; - c = 6; - break; - } - } - current_statement__ = 687; - return 0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +template +Eigen::Matrix, -1, 1> +foo_5(const Eigen::Matrix& shared_params, + const Eigen::Matrix& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) ; -struct foo_1_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const +struct foo_5_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const Eigen::Matrix& shared_params, + const Eigen::Matrix& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) const { -return foo_1(a, pstream__); -} -}; - -int -foo_2(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - std::vector vs; - vs = std::vector(2, std::numeric_limits::min()); - - int y; - y = std::numeric_limits::min(); - - current_statement__ = 691; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - int v; - current_statement__ = 691; - v = vs[(sym1__ - 1)]; - current_statement__ = 692; - y = v; - }} - current_statement__ = 693; - return 0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct foo_2_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const -{ -return foo_2(a, pstream__); -} -}; - -template -std::vector> -foo_3(const T0__& t, const int& n, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 695; - return rep_array(t, n); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct foo_3_functor__ { -template -std::vector> -operator()(const T0__& t, const int& n, std::ostream* pstream__) const -{ -return foo_3(t, n, pstream__); -} -}; - -template -stan::promote_args_t -foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 697; - return (x + get_lp(lp__, lp_accum__)); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct foo_lp_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return foo_lp(x, lp__, lp_accum__, pstream__); -} -}; - -template -void -foo_4(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 699; - std::stringstream errmsg_stream__; - errmsg_stream__ << "user-specified rejection"; - errmsg_stream__ << x; - throw std::domain_error(errmsg_stream__.str()); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct foo_4_functor__ { -template -void -operator()(const T0__& x, std::ostream* pstream__) const -{ -return foo_4(x, pstream__); -} -}; - -template -stan::promote_args_t -relative_diff(const T0__& x, const T1__& y, const T2__& max_, - const T3__& min_, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - local_scalar_t__ abs_diff; - abs_diff = DUMMY_VAR__; - - local_scalar_t__ avg_scale; - avg_scale = DUMMY_VAR__; - - current_statement__ = 703; - abs_diff = stan::math::fabs((x - y)); - current_statement__ = 704; - avg_scale = ((stan::math::fabs(x) + stan::math::fabs(y)) / 2); - current_statement__ = 706; - if (logical_gt((abs_diff / avg_scale), max_)) { - current_statement__ = 705; - std::stringstream errmsg_stream__; - errmsg_stream__ << "user-specified rejection, difference above "; - errmsg_stream__ << max_; - errmsg_stream__ << " x:"; - errmsg_stream__ << x; - errmsg_stream__ << " y:"; - errmsg_stream__ << y; - throw std::domain_error(errmsg_stream__.str()); - } - current_statement__ = 708; - if (logical_lt((abs_diff / avg_scale), min_)) { - current_statement__ = 707; - std::stringstream errmsg_stream__; - errmsg_stream__ << "user-specified rejection, difference below "; - errmsg_stream__ << min_; - errmsg_stream__ << " x:"; - errmsg_stream__ << x; - errmsg_stream__ << " y:"; - errmsg_stream__ << y; - throw std::domain_error(errmsg_stream__.str()); - } - current_statement__ = 709; - return (abs_diff / avg_scale); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct relative_diff_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, const T1__& y, const T2__& max_, const T3__& min_, - std::ostream* pstream__) const -{ -return relative_diff(x, y, max_, min_, pstream__); -} -}; - -template -Eigen::Matrix, -1, 1> -foo_5(const Eigen::Matrix& shared_params, - const Eigen::Matrix& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 711; - return transpose(stan::math::to_row_vector( - stan::math::array_builder().add(1).add(2).add(3).array())); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct foo_5_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const Eigen::Matrix& shared_params, - const Eigen::Matrix& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) const -{ -return foo_5(shared_params, job_params, data_r, data_i, pstream__); +return foo_5(shared_params, job_params, data_r, data_i, pstream__); } }; @@ -3028,27 +2423,7 @@ typename T4__> stan::promote_args_t foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, - const T4__& x5, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 713; - return x1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + const T4__& x5, std::ostream* pstream__) ; struct foo_five_args_functor__ { template > foo_five_args_lp(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, const T4__& x5, const T5__& x6, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 715; - return x1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct foo_five_args_lp_functor__ { -template -stan::promote_args_t> -operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, - const T4__& x5, const T5__& x6, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) const -{ -return foo_five_args_lp(x1, x2, x3, x4, x5, x6, lp__, lp_accum__, - pstream__); -} -}; - + std::ostream* pstream__) ; template Eigen::Matrix, -1, -1> covsqrt2corsqrt(const Eigen::Matrix& mat, const int& invert, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 717; - validate_non_negative_index("o", "rows(mat)", rows(mat)); - current_statement__ = 718; - validate_non_negative_index("o", "cols(mat)", cols(mat)); - Eigen::Matrix o; - o = Eigen::Matrix(rows(mat), cols(mat)); - stan::math::fill(o, DUMMY_VAR__); - - current_statement__ = 720; - assign(o, nil_index_list(), mat, "assigning variable o"); - current_statement__ = 721; - assign(o, cons_list(index_uni(1), nil_index_list()), - stan::model::deep_copy( - rvalue(o, cons_list(index_uni(2), nil_index_list()), "o")), - "assigning variable o"); - current_statement__ = 722; - assign(o, cons_list(index_min_max(3, 4), nil_index_list()), - stan::model::deep_copy( - rvalue(o, cons_list(index_min_max(1, 2), nil_index_list()), "o")), - "assigning variable o"); - current_statement__ = 723; - return o; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct covsqrt2corsqrt_functor__ { template @@ -3168,33 +2473,7 @@ f0(const int& a1, const std::vector& a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 725; - if (pstream__) { - stan_print(pstream__, "hi"); - stan_print(pstream__, "\n"); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f0_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 727; - return a1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f1_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 729; - return a2; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f2_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 731; - return a3; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f3_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 733; - return a4; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f4_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 735; - return a5; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f5_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 737; - return a6; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f6_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 739; - return a7; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f7_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 741; - return a8; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f8_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 743; - return a9; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f9_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 745; - return a10; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f10_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 747; - return a11; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f11_functor__ { template & a2, const Eigen::Matrix& a10, const std::vector>& a11, const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 749; - return a12; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct f12_functor__ { template ::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - int a; - a = std::numeric_limits::min(); - - local_scalar_t__ b; - b = DUMMY_VAR__; - - std::vector> c; - c = std::vector>(20, std::vector(30, DUMMY_VAR__)); - - std::vector>> ar_mat; - ar_mat = std::vector>>(60, std::vector>(70, Eigen::Matrix(40, 50))); - stan::math::fill(ar_mat, DUMMY_VAR__); - - current_statement__ = 755; - assign(ar_mat, - cons_list(index_uni(1), - cons_list(index_uni(1), - cons_list(index_uni(1), cons_list(index_uni(1), nil_index_list())))), - b, "assigning variable ar_mat"); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +foo_6(std::ostream* pstream__) ; struct foo_6_functor__ { void @@ -3981,32 +2951,7 @@ return foo_6(pstream__); }; Eigen::Matrix -matfoo(std::ostream* pstream__) { - using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 757; - return stan::math::to_matrix( - stan::math::array_builder>() - .add(stan::math::to_row_vector(stan::math::array_builder() - .add(1).add(2).add(3).add(4).add(5).add(6).add(7).add(8).add(9) - .add(10).array())).add(stan::math::to_row_vector( - stan::math::array_builder().add(1).add(2).add(3).add(4).add(5) - .add(6).add(7).add(8).add(9).add(10).array())) - .add(stan::math::to_row_vector(stan::math::array_builder() - .add(1).add(2).add(3).add(4).add(5).add(6).add(7).add(8).add(9) - .add(10).array())).array()); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +matfoo(std::ostream* pstream__) ; struct matfoo_functor__ { Eigen::Matrix @@ -4017,25 +2962,7 @@ return matfoo(pstream__); }; Eigen::Matrix -vecfoo(std::ostream* pstream__) { - using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 759; - return transpose(stan::math::to_row_vector( - stan::math::array_builder().add(1).add(2).add(3).add(4) - .add(5).add(6).add(7).add(8).add(9).add(10).array())); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +vecfoo(std::ostream* pstream__) ; struct vecfoo_functor__ { Eigen::Matrix @@ -4047,30 +2974,7 @@ return vecfoo(pstream__); template Eigen::Matrix, -1, 1> -vecmufoo(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - Eigen::Matrix l; - l = Eigen::Matrix(10); - stan::math::fill(l, DUMMY_VAR__); - - current_statement__ = 761; - assign(l, nil_index_list(), multiply(mu, vecfoo(pstream__)), - "assigning variable l"); - current_statement__ = 762; - return l; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +vecmufoo(const T0__& mu, std::ostream* pstream__) ; struct vecmufoo_functor__ { template @@ -4083,35 +2987,7 @@ return vecmufoo(mu, pstream__); template Eigen::Matrix, -1, 1> -vecmubar(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - Eigen::Matrix l; - l = Eigen::Matrix(10); - stan::math::fill(l, DUMMY_VAR__); - - current_statement__ = 764; - assign(l, nil_index_list(), - multiply(mu, - transpose(stan::math::to_row_vector(stan::math::array_builder() - .add(1).add(2).add(3).add(4).add(5).add(6).add(7).add(8).add(9) - .add(10).array()))), "assigning variable l"); - current_statement__ = 765; - return rvalue(l, - cons_list(index_multi(stan::math::array_builder().add(1) - .add(2).add(3).add(4).add(5).array()), nil_index_list()), "l"); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +vecmubar(const T0__& mu, std::ostream* pstream__) ; struct vecmubar_functor__ { template @@ -4128,33 +3004,7 @@ T2__>, -1, 1> algebra_system(const Eigen::Matrix& x, const Eigen::Matrix& y, const std::vector& dat, const std::vector& dat_int, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - Eigen::Matrix f_x; - f_x = Eigen::Matrix(2); - stan::math::fill(f_x, DUMMY_VAR__); - - current_statement__ = 768; - assign(f_x, cons_list(index_uni(1), nil_index_list()), - (x[(1 - 1)] - y[(1 - 1)]), "assigning variable f_x"); - current_statement__ = 769; - assign(f_x, cons_list(index_uni(2), nil_index_list()), - (x[(2 - 1)] - y[(2 - 1)]), "assigning variable f_x"); - current_statement__ = 770; - return f_x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct algebra_system_functor__ { template @@ -4174,30 +3024,7 @@ T1__>, -1, 1> binomialf(const Eigen::Matrix& phi, const Eigen::Matrix& theta, const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - Eigen::Matrix lpmf; - lpmf = Eigen::Matrix(1); - stan::math::fill(lpmf, DUMMY_VAR__); - - current_statement__ = 773; - assign(lpmf, cons_list(index_uni(1), nil_index_list()), 0.0, - "assigning variable lpmf"); - current_statement__ = 774; - return lpmf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} + std::ostream* pstream__) ; struct binomialf_functor__ { template @@ -4212,806 +3039,2209 @@ return binomialf(phi, theta, x_r, x_i, pstream__); } }; -class mother_model final : public model_base_crtp { - - private: - int N; - int M; - int K; - std::vector d_int_1d_ar; - std::vector>> d_int_3d_ar; - double J; - std::vector d_real_1d_ar; - std::vector>> d_real_3d_ar; - Eigen::Matrix d_vec; - std::vector> d_1d_vec; - std::vector>>> d_3d_vec; - Eigen::Matrix d_row_vec; - std::vector> d_1d_row_vec; - std::vector>>> d_3d_row_vec; - std::vector>> d_ar_mat; - Eigen::Matrix d_simplex; - std::vector> d_1d_simplex; - std::vector>>> d_3d_simplex; - Eigen::Matrix d_cfcov_54; - Eigen::Matrix d_cfcov_33; - std::vector> d_cfcov_33_ar; - int d_int; - std::vector d_int_array; - std::vector> d_int_array_2d; - std::vector>> d_int_array_3d; - double d_real; - std::vector d_real_array; - std::vector> d_real_array_2d; - std::vector>> d_real_array_3d; - Eigen::Matrix d_matrix; - std::vector> d_matrix_array; - std::vector>> d_matrix_array_2d; - std::vector>>> d_matrix_array_3d; - Eigen::Matrix d_vector; - std::vector> d_vector_array; - std::vector>> d_vector_array_2d; - std::vector>>> d_vector_array_3d; - Eigen::Matrix d_row_vector; - std::vector> d_row_vector_array; - std::vector>> d_row_vector_array_2d; - std::vector>>> d_row_vector_array_3d; - int td_int; - std::vector td_1d; - std::vector td_1dk; - int td_a; - double td_b; - double td_c; - std::vector>> td_ar_mat; - Eigen::Matrix td_simplex; - std::vector> td_1d_simplex; - std::vector>>> td_3d_simplex; - Eigen::Matrix td_cfcov_54; - Eigen::Matrix td_cfcov_33; - Eigen::Matrix x; - Eigen::Matrix y; - std::vector dat; - std::vector dat_int; - std::vector> x_r; - std::vector> x_i; - std::vector> arr_mul_ind; - std::vector x_mul_ind; - double transformed_data_real; - std::vector transformed_data_real_array; - std::vector> transformed_data_real_array_2d; - std::vector>> transformed_data_real_array_3d; - Eigen::Matrix transformed_data_matrix; - std::vector> transformed_data_matrix_array; - std::vector>> transformed_data_matrix_array_2d; - std::vector>>> transformed_data_matrix_array_3d; - Eigen::Matrix transformed_data_vector; - std::vector> transformed_data_vector_array; - std::vector>> transformed_data_vector_array_2d; - std::vector>>> transformed_data_vector_array_3d; - Eigen::Matrix transformed_data_row_vector; - std::vector> transformed_data_row_vector_array; - std::vector>> transformed_data_row_vector_array_2d; - std::vector>>> transformed_data_row_vector_array_3d; - - public: - ~mother_model() final { } +int +foo(const int& n, std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning - std::string model_name() const final { return "mother_model"; } - - std::vector model_compile_info() const { - std::vector stanc_info; - stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); - stanc_info.push_back("stancflags = --print-cpp"); - return stanc_info; + try { + current_statement__ = 582; + if (logical_eq(n, 0)) { + current_statement__ = 581; + return 1; + } + current_statement__ = 583; + return (n * foo((n - 1), pstream__)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } +} +template +std::vector> +sho(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning - mother_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static const char* function__ = "mother_model_namespace::mother_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning + try { + std::vector dydt; + dydt = std::vector(2, DUMMY_VAR__); - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 186; - context__.validate_dims("data initialization","N","int", - context__.to_vec()); - N = std::numeric_limits::min(); - - current_statement__ = 186; - N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 186; - current_statement__ = 186; - check_greater_or_equal(function__, "N", N, 0); - current_statement__ = 187; - context__.validate_dims("data initialization","M","int", - context__.to_vec()); - M = std::numeric_limits::min(); - - current_statement__ = 187; - M = context__.vals_i("M")[(1 - 1)]; - current_statement__ = 187; - current_statement__ = 187; - check_greater_or_equal(function__, "M", M, 0); - current_statement__ = 188; - context__.validate_dims("data initialization","K","int", - context__.to_vec()); - K = std::numeric_limits::min(); - - current_statement__ = 188; - K = context__.vals_i("K")[(1 - 1)]; - current_statement__ = 188; - current_statement__ = 188; - check_greater_or_equal(function__, "K", K, 0); - current_statement__ = 188; - current_statement__ = 188; - check_less_or_equal(function__, "K", K, (N * M)); - current_statement__ = 189; - validate_non_negative_index("d_int_1d_ar", "N", N); - current_statement__ = 190; - context__.validate_dims("data initialization","d_int_1d_ar","int", - context__.to_vec(N)); - d_int_1d_ar = std::vector(N, std::numeric_limits::min()); - - current_statement__ = 190; - assign(d_int_1d_ar, nil_index_list(), context__.vals_i("d_int_1d_ar"), - "assigning variable d_int_1d_ar"); - current_statement__ = 190; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 190; - current_statement__ = 190; - check_less_or_equal(function__, "d_int_1d_ar[sym1__]", - d_int_1d_ar[(sym1__ - 1)], N);} - current_statement__ = 191; - validate_non_negative_index("d_int_3d_ar", "N", N); - current_statement__ = 192; - validate_non_negative_index("d_int_3d_ar", "M", M); - current_statement__ = 193; - validate_non_negative_index("d_int_3d_ar", "K", K); - current_statement__ = 194; - context__.validate_dims("data initialization","d_int_3d_ar","int", - context__.to_vec(N, M, K)); - d_int_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::min()))); - - { - std::vector d_int_3d_ar_flat__; - current_statement__ = 194; - assign(d_int_3d_ar_flat__, nil_index_list(), - context__.vals_i("d_int_3d_ar"), - "assigning variable d_int_3d_ar_flat__"); - current_statement__ = 194; - pos__ = 1; - current_statement__ = 194; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 194; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 194; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 194; - assign(d_int_3d_ar, - cons_list(index_uni(sym3__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list()))), - d_int_3d_ar_flat__[(pos__ - 1)], - "assigning variable d_int_3d_ar"); - current_statement__ = 194; - pos__ = (pos__ + 1);}}} - } - current_statement__ = 194; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 194; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 194; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 194; - current_statement__ = 194; - check_less_or_equal(function__, - "d_int_3d_ar[sym1__, sym2__, sym3__]", - d_int_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ - (sym3__ - 1)], N);}}} - current_statement__ = 195; - context__.validate_dims("data initialization","J","double", - context__.to_vec()); - J = std::numeric_limits::quiet_NaN(); - - current_statement__ = 195; - J = context__.vals_r("J")[(1 - 1)]; - current_statement__ = 195; - current_statement__ = 195; - check_greater_or_equal(function__, "J", J, -2.0); - current_statement__ = 195; - current_statement__ = 195; - check_less_or_equal(function__, "J", J, 2.0); - current_statement__ = 196; - validate_non_negative_index("d_real_1d_ar", "N", N); - current_statement__ = 197; - context__.validate_dims("data initialization","d_real_1d_ar","double", - context__.to_vec(N)); - d_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); + current_statement__ = 586; + assign(dydt, cons_list(index_uni(1), nil_index_list()), y[(2 - 1)], + "assigning variable dydt"); + current_statement__ = 587; + assign(dydt, cons_list(index_uni(2), nil_index_list()), + (-y[(1 - 1)] - (theta[(1 - 1)] * y[(2 - 1)])), + "assigning variable dydt"); + current_statement__ = 588; + return dydt; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +double +foo_bar0(std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 590; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_bar1(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 592; + return 1.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 594; + return 2.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 596; + return 1.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 598; + return 1.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 600; + return 1.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 602; + return normal_rng(mu, sigma, base_rng__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +void +unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 604; + lp_accum__.add(normal_log(u, 0, 1)); + current_statement__ = 605; + lp_accum__.add(uniform_lpdf(u, -100, 100)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +int +foo_1(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 608; + while (1) { + break; + } + current_statement__ = 610; + while (0) { + continue; + } + current_statement__ = 612; + for (int i = 1; i <= 10; ++i) { break;} + current_statement__ = 614; + for (int i = 1; i <= 10; ++i) { continue;} + current_statement__ = 619; + while (1) { + int b; + b = std::numeric_limits::min(); - current_statement__ = 197; - assign(d_real_1d_ar, nil_index_list(), - context__.vals_r("d_real_1d_ar"), "assigning variable d_real_1d_ar"); - current_statement__ = 198; - validate_non_negative_index("d_real_3d_ar", "N", N); - current_statement__ = 199; - validate_non_negative_index("d_real_3d_ar", "M", M); - current_statement__ = 200; - validate_non_negative_index("d_real_3d_ar", "K", K); - current_statement__ = 201; - context__.validate_dims("data initialization","d_real_3d_ar","double", - context__.to_vec(N, M, K)); - d_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); - - { - std::vector d_real_3d_ar_flat__; - current_statement__ = 201; - assign(d_real_3d_ar_flat__, nil_index_list(), - context__.vals_r("d_real_3d_ar"), - "assigning variable d_real_3d_ar_flat__"); - current_statement__ = 201; - pos__ = 1; - current_statement__ = 201; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 201; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 201; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 201; - assign(d_real_3d_ar, - cons_list(index_uni(sym3__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list()))), - d_real_3d_ar_flat__[(pos__ - 1)], - "assigning variable d_real_3d_ar"); - current_statement__ = 201; - pos__ = (pos__ + 1);}}} + current_statement__ = 616; + b = 5; + break; + } + current_statement__ = 626; + while (1) { + current_statement__ = 624; + if (0) { + break; + } else { + current_statement__ = 622; + if (1) { + break; + } else { + break; + } } - current_statement__ = 202; - validate_non_negative_index("d_vec", "N", N); - current_statement__ = 203; - context__.validate_dims("data initialization","d_vec","double", - context__.to_vec(N)); - d_vec = Eigen::Matrix(N); - stan::math::fill(d_vec, std::numeric_limits::quiet_NaN()); - - { - std::vector d_vec_flat__; - current_statement__ = 203; - assign(d_vec_flat__, nil_index_list(), context__.vals_r("d_vec"), - "assigning variable d_vec_flat__"); - current_statement__ = 203; - pos__ = 1; - current_statement__ = 203; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 203; - assign(d_vec, cons_list(index_uni(sym1__), nil_index_list()), - d_vec_flat__[(pos__ - 1)], "assigning variable d_vec"); - current_statement__ = 203; - pos__ = (pos__ + 1);} + } + current_statement__ = 629; + while (1) { + current_statement__ = 628; + while (0) { + break; } - current_statement__ = 204; - validate_non_negative_index("d_1d_vec", "N", N); - current_statement__ = 205; - validate_non_negative_index("d_1d_vec", "N", N); - current_statement__ = 206; - context__.validate_dims("data initialization","d_1d_vec","double", - context__.to_vec(N, N)); - d_1d_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(d_1d_vec, std::numeric_limits::quiet_NaN()); + } + current_statement__ = 633; + while (1) { + current_statement__ = 631; + for (int i = 1; i <= 10; ++i) { break;} + } + current_statement__ = 648; + while (1) { + std::vector> vs; + vs = std::vector>(2, std::vector(3, std::numeric_limits::min())); - { - std::vector d_1d_vec_flat__; - current_statement__ = 206; - assign(d_1d_vec_flat__, nil_index_list(), - context__.vals_r("d_1d_vec"), "assigning variable d_1d_vec_flat__"); - current_statement__ = 206; - pos__ = 1; - current_statement__ = 206; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 206; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 206; - assign(d_1d_vec, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - d_1d_vec_flat__[(pos__ - 1)], "assigning variable d_1d_vec"); - current_statement__ = 206; - pos__ = (pos__ + 1);}} - } - current_statement__ = 207; - validate_non_negative_index("d_3d_vec", "N", N); - current_statement__ = 208; - validate_non_negative_index("d_3d_vec", "M", M); - current_statement__ = 209; - validate_non_negative_index("d_3d_vec", "K", K); - current_statement__ = 210; - validate_non_negative_index("d_3d_vec", "N", N); - current_statement__ = 211; - context__.validate_dims("data initialization","d_3d_vec","double", - context__.to_vec(N, M, K, N)); - d_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(d_3d_vec, std::numeric_limits::quiet_NaN()); + int z; + z = std::numeric_limits::min(); - { - std::vector d_3d_vec_flat__; - current_statement__ = 211; - assign(d_3d_vec_flat__, nil_index_list(), - context__.vals_r("d_3d_vec"), "assigning variable d_3d_vec_flat__"); - current_statement__ = 211; - pos__ = 1; - current_statement__ = 211; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 211; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 211; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 211; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 211; - assign(d_3d_vec, - cons_list(index_uni(sym4__), - cons_list(index_uni(sym3__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())))), - d_3d_vec_flat__[(pos__ - 1)], "assigning variable d_3d_vec"); - current_statement__ = 211; - pos__ = (pos__ + 1);}}}} - } - current_statement__ = 212; - validate_non_negative_index("d_row_vec", "N", N); - current_statement__ = 213; - context__.validate_dims("data initialization","d_row_vec","double", - context__.to_vec(N)); - d_row_vec = Eigen::Matrix(N); - stan::math::fill(d_row_vec, std::numeric_limits::quiet_NaN()); + current_statement__ = 636; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + std::vector v; + current_statement__ = 636; + assign(v, nil_index_list(), vs[(sym1__ - 1)], + "assigning variable v"); + current_statement__ = 637; + z = 0; + break; + }} + current_statement__ = 639; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + std::vector v; + current_statement__ = 639; + assign(v, nil_index_list(), vs[(sym1__ - 1)], + "assigning variable v"); + current_statement__ = 640; + z = 0; + continue; + }} + current_statement__ = 642; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + std::vector v; + current_statement__ = 642; + assign(v, nil_index_list(), vs[(sym1__ - 1)], + "assigning variable v"); + current_statement__ = 643; + for (int sym1__ = 1; sym1__ <= stan::math::size(v); ++sym1__) { + { + int vv; + current_statement__ = 643; + vv = v[(sym1__ - 1)]; + current_statement__ = 644; + z = 0; + break; + }} + current_statement__ = 646; + z = 1; + }} + } + current_statement__ = 658; + while (1) { + local_scalar_t__ z; + z = DUMMY_VAR__; - { - std::vector d_row_vec_flat__; - current_statement__ = 213; - assign(d_row_vec_flat__, nil_index_list(), - context__.vals_r("d_row_vec"), - "assigning variable d_row_vec_flat__"); - current_statement__ = 213; - pos__ = 1; - current_statement__ = 213; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 213; - assign(d_row_vec, cons_list(index_uni(sym1__), nil_index_list()), - d_row_vec_flat__[(pos__ - 1)], "assigning variable d_row_vec"); - current_statement__ = 213; - pos__ = (pos__ + 1);} - } - current_statement__ = 214; - validate_non_negative_index("d_1d_row_vec", "N", N); - current_statement__ = 215; - validate_non_negative_index("d_1d_row_vec", "N", N); - current_statement__ = 216; - context__.validate_dims("data initialization","d_1d_row_vec","double", - context__.to_vec(N, N)); - d_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(d_1d_row_vec, std::numeric_limits::quiet_NaN()); + Eigen::Matrix vs; + vs = Eigen::Matrix(2, 3); + stan::math::fill(vs, DUMMY_VAR__); - { - std::vector d_1d_row_vec_flat__; - current_statement__ = 216; - assign(d_1d_row_vec_flat__, nil_index_list(), - context__.vals_r("d_1d_row_vec"), - "assigning variable d_1d_row_vec_flat__"); - current_statement__ = 216; - pos__ = 1; - current_statement__ = 216; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 216; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 216; - assign(d_1d_row_vec, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - d_1d_row_vec_flat__[(pos__ - 1)], - "assigning variable d_1d_row_vec"); - current_statement__ = 216; - pos__ = (pos__ + 1);}} - } - current_statement__ = 217; - validate_non_negative_index("d_3d_row_vec", "N", N); - current_statement__ = 218; - validate_non_negative_index("d_3d_row_vec", "M", M); - current_statement__ = 219; - validate_non_negative_index("d_3d_row_vec", "K", K); - current_statement__ = 220; - validate_non_negative_index("d_3d_row_vec", "N", N); - current_statement__ = 221; - context__.validate_dims("data initialization","d_3d_row_vec","double", - context__.to_vec(N, M, K, N)); - d_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(d_3d_row_vec, std::numeric_limits::quiet_NaN()); + current_statement__ = 651; + for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { + current_statement__ = 651; + for (int sym2__ = 1; + sym2__ <= stan::math::size( + rvalue(vs, + cons_list(index_uni(sym1__), nil_index_list()), + "vs")); ++sym2__) { + { + local_scalar_t__ v; + current_statement__ = 651; + v = rvalue(vs, + cons_list(index_uni(sym1__), + cons_list(index_uni(sym2__), nil_index_list())), "vs"); + current_statement__ = 652; + z = 0; + break; + }}} + current_statement__ = 654; + for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { + current_statement__ = 654; + for (int sym2__ = 1; + sym2__ <= stan::math::size( + rvalue(vs, + cons_list(index_uni(sym1__), nil_index_list()), + "vs")); ++sym2__) { + { + local_scalar_t__ v; + current_statement__ = 654; + v = rvalue(vs, + cons_list(index_uni(sym1__), + cons_list(index_uni(sym2__), nil_index_list())), "vs"); + current_statement__ = 655; + z = 3.1; + continue; + }}} + } + current_statement__ = 668; + while (1) { + local_scalar_t__ z; + z = DUMMY_VAR__; - { - std::vector d_3d_row_vec_flat__; - current_statement__ = 221; - assign(d_3d_row_vec_flat__, nil_index_list(), - context__.vals_r("d_3d_row_vec"), - "assigning variable d_3d_row_vec_flat__"); - current_statement__ = 221; - pos__ = 1; - current_statement__ = 221; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 221; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 221; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 221; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 221; - assign(d_3d_row_vec, - cons_list(index_uni(sym4__), - cons_list(index_uni(sym3__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())))), - d_3d_row_vec_flat__[(pos__ - 1)], - "assigning variable d_3d_row_vec"); - current_statement__ = 221; - pos__ = (pos__ + 1);}}}} - } - current_statement__ = 222; - context__.validate_dims("data initialization","d_ar_mat","double", - context__.to_vec(4, 5, 2, 3)); - d_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(d_ar_mat, std::numeric_limits::quiet_NaN()); + Eigen::Matrix vs; + vs = Eigen::Matrix(2); + stan::math::fill(vs, DUMMY_VAR__); - { - std::vector d_ar_mat_flat__; - current_statement__ = 222; - assign(d_ar_mat_flat__, nil_index_list(), - context__.vals_r("d_ar_mat"), "assigning variable d_ar_mat_flat__"); - current_statement__ = 222; - pos__ = 1; - current_statement__ = 222; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 222; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 222; - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - current_statement__ = 222; - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - current_statement__ = 222; - assign(d_ar_mat, - cons_list(index_uni(sym4__), - cons_list(index_uni(sym3__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())))), - d_ar_mat_flat__[(pos__ - 1)], "assigning variable d_ar_mat"); - current_statement__ = 222; - pos__ = (pos__ + 1);}}}} - } - current_statement__ = 222; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 222; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 222; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 222; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 222; - current_statement__ = 222; - check_greater_or_equal(function__, - "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(d_ar_mat, - cons_list(index_uni(sym1__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym3__), - cons_list(index_uni(sym4__), - nil_index_list())))), - "d_ar_mat"), 0);}}}} - current_statement__ = 222; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 222; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 222; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 222; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 222; - current_statement__ = 222; - check_less_or_equal(function__, - "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(d_ar_mat, - cons_list(index_uni(sym1__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym3__), - cons_list(index_uni(sym4__), - nil_index_list())))), "d_ar_mat"), - 1);}}}} - current_statement__ = 223; - validate_non_negative_index("d_simplex", "N", N); - current_statement__ = 224; - context__.validate_dims("data initialization","d_simplex","double", - context__.to_vec(N)); - d_simplex = Eigen::Matrix(N); - stan::math::fill(d_simplex, std::numeric_limits::quiet_NaN()); + current_statement__ = 661; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 661; + v = vs[(sym1__ - 1)]; + current_statement__ = 662; + z = 0; + break; + }} + current_statement__ = 664; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 664; + v = vs[(sym1__ - 1)]; + current_statement__ = 665; + z = 3.2; + continue; + }} + } + current_statement__ = 678; + while (1) { + local_scalar_t__ z; + z = DUMMY_VAR__; - { - std::vector d_simplex_flat__; - current_statement__ = 224; - assign(d_simplex_flat__, nil_index_list(), - context__.vals_r("d_simplex"), - "assigning variable d_simplex_flat__"); - current_statement__ = 224; - pos__ = 1; - current_statement__ = 224; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 224; - assign(d_simplex, cons_list(index_uni(sym1__), nil_index_list()), - d_simplex_flat__[(pos__ - 1)], "assigning variable d_simplex"); - current_statement__ = 224; - pos__ = (pos__ + 1);} - } - current_statement__ = 224; - current_statement__ = 224; - check_simplex(function__, "d_simplex", d_simplex); - current_statement__ = 225; - validate_non_negative_index("d_1d_simplex", "N", N); - current_statement__ = 226; - validate_non_negative_index("d_1d_simplex", "N", N); - current_statement__ = 227; - context__.validate_dims("data initialization","d_1d_simplex","double", - context__.to_vec(N, N)); - d_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(d_1d_simplex, std::numeric_limits::quiet_NaN()); + Eigen::Matrix vs; + vs = Eigen::Matrix(2); + stan::math::fill(vs, DUMMY_VAR__); + + current_statement__ = 671; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 671; + v = vs[(sym1__ - 1)]; + current_statement__ = 672; + z = 0; + break; + }} + current_statement__ = 674; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 674; + v = vs[(sym1__ - 1)]; + current_statement__ = 675; + z = 3.3; + continue; + }} + } + current_statement__ = 686; + while (1) { + int b; + b = std::numeric_limits::min(); + current_statement__ = 680; + b = 5; { - std::vector d_1d_simplex_flat__; - current_statement__ = 227; - assign(d_1d_simplex_flat__, nil_index_list(), - context__.vals_r("d_1d_simplex"), - "assigning variable d_1d_simplex_flat__"); - current_statement__ = 227; - pos__ = 1; - current_statement__ = 227; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 227; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 227; - assign(d_1d_simplex, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - d_1d_simplex_flat__[(pos__ - 1)], - "assigning variable d_1d_simplex"); - current_statement__ = 227; - pos__ = (pos__ + 1);}} - } - current_statement__ = 227; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 227; - current_statement__ = 227; - check_simplex(function__, "d_1d_simplex[sym1__]", - d_1d_simplex[(sym1__ - 1)]);} - current_statement__ = 228; - validate_non_negative_index("d_3d_simplex", "N", N); - current_statement__ = 229; - validate_non_negative_index("d_3d_simplex", "M", M); - current_statement__ = 230; - validate_non_negative_index("d_3d_simplex", "K", K); - current_statement__ = 231; - validate_non_negative_index("d_3d_simplex", "N", N); - current_statement__ = 232; - context__.validate_dims("data initialization","d_3d_simplex","double", - context__.to_vec(N, M, K, N)); - d_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(d_3d_simplex, std::numeric_limits::quiet_NaN()); - - { - std::vector d_3d_simplex_flat__; - current_statement__ = 232; - assign(d_3d_simplex_flat__, nil_index_list(), - context__.vals_r("d_3d_simplex"), - "assigning variable d_3d_simplex_flat__"); - current_statement__ = 232; - pos__ = 1; - current_statement__ = 232; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 232; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 232; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 232; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 232; - assign(d_3d_simplex, - cons_list(index_uni(sym4__), - cons_list(index_uni(sym3__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())))), - d_3d_simplex_flat__[(pos__ - 1)], - "assigning variable d_3d_simplex"); - current_statement__ = 232; - pos__ = (pos__ + 1);}}}} - } - current_statement__ = 232; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 232; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 232; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 232; - current_statement__ = 232; - check_simplex(function__, "d_3d_simplex[sym1__, sym2__, sym3__]", - d_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - - 1)]);}}} - current_statement__ = 233; - context__.validate_dims("data initialization","d_cfcov_54","double", - context__.to_vec(5, 4)); - d_cfcov_54 = Eigen::Matrix(5, 4); - stan::math::fill(d_cfcov_54, std::numeric_limits::quiet_NaN()); - - { - std::vector d_cfcov_54_flat__; - current_statement__ = 233; - assign(d_cfcov_54_flat__, nil_index_list(), - context__.vals_r("d_cfcov_54"), - "assigning variable d_cfcov_54_flat__"); - current_statement__ = 233; - pos__ = 1; - current_statement__ = 233; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 233; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 233; - assign(d_cfcov_54, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - d_cfcov_54_flat__[(pos__ - 1)], "assigning variable d_cfcov_54"); - current_statement__ = 233; - pos__ = (pos__ + 1);}} - } - current_statement__ = 233; - current_statement__ = 233; - check_cholesky_factor(function__, "d_cfcov_54", d_cfcov_54); - current_statement__ = 234; - context__.validate_dims("data initialization","d_cfcov_33","double", - context__.to_vec(3, 3)); - d_cfcov_33 = Eigen::Matrix(3, 3); - stan::math::fill(d_cfcov_33, std::numeric_limits::quiet_NaN()); - - { - std::vector d_cfcov_33_flat__; - current_statement__ = 234; - assign(d_cfcov_33_flat__, nil_index_list(), - context__.vals_r("d_cfcov_33"), - "assigning variable d_cfcov_33_flat__"); - current_statement__ = 234; - pos__ = 1; - current_statement__ = 234; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 234; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 234; - assign(d_cfcov_33, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - d_cfcov_33_flat__[(pos__ - 1)], "assigning variable d_cfcov_33"); - current_statement__ = 234; - pos__ = (pos__ + 1);}} - } - current_statement__ = 234; - current_statement__ = 234; - check_cholesky_factor(function__, "d_cfcov_33", d_cfcov_33); - current_statement__ = 235; - validate_non_negative_index("d_cfcov_33_ar", "K", K); - current_statement__ = 236; - context__.validate_dims("data initialization","d_cfcov_33_ar","double", - context__.to_vec(K, 3, 3)); - d_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - stan::math::fill(d_cfcov_33_ar, std::numeric_limits::quiet_NaN()); - - { - std::vector d_cfcov_33_ar_flat__; - current_statement__ = 236; - assign(d_cfcov_33_ar_flat__, nil_index_list(), - context__.vals_r("d_cfcov_33_ar"), - "assigning variable d_cfcov_33_ar_flat__"); - current_statement__ = 236; - pos__ = 1; - current_statement__ = 236; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 236; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 236; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 236; - assign(d_cfcov_33_ar, - cons_list(index_uni(sym3__), - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list()))), - d_cfcov_33_ar_flat__[(pos__ - 1)], - "assigning variable d_cfcov_33_ar"); - current_statement__ = 236; - pos__ = (pos__ + 1);}}} - } - current_statement__ = 236; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 236; - current_statement__ = 236; - check_cholesky_factor(function__, "d_cfcov_33_ar[sym1__]", - d_cfcov_33_ar[(sym1__ - 1)]);} - current_statement__ = 237; - context__.validate_dims("data initialization","d_int","int", - context__.to_vec()); - d_int = std::numeric_limits::min(); - - current_statement__ = 237; - d_int = context__.vals_i("d_int")[(1 - 1)]; - current_statement__ = 238; - validate_non_negative_index("d_int_array", "d_int", d_int); - current_statement__ = 239; - context__.validate_dims("data initialization","d_int_array","int", - context__.to_vec(d_int)); - d_int_array = std::vector(d_int, std::numeric_limits::min()); - - current_statement__ = 239; - assign(d_int_array, nil_index_list(), context__.vals_i("d_int_array"), - "assigning variable d_int_array"); - current_statement__ = 240; - validate_non_negative_index("d_int_array_2d", "d_int", d_int); - current_statement__ = 241; - context__.validate_dims("data initialization","d_int_array_2d","int", - context__.to_vec(d_int, 2)); - d_int_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::min())); - - { - std::vector d_int_array_2d_flat__; - current_statement__ = 241; - assign(d_int_array_2d_flat__, nil_index_list(), - context__.vals_i("d_int_array_2d"), - "assigning variable d_int_array_2d_flat__"); - current_statement__ = 241; - pos__ = 1; - current_statement__ = 241; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 241; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 241; - assign(d_int_array_2d, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - d_int_array_2d_flat__[(pos__ - 1)], - "assigning variable d_int_array_2d"); - current_statement__ = 241; - pos__ = (pos__ + 1);}} + int c; + c = std::numeric_limits::min(); + + current_statement__ = 682; + c = 6; + break; } - current_statement__ = 242; - validate_non_negative_index("d_int_array_3d", "d_int", d_int); - current_statement__ = 243; - context__.validate_dims("data initialization","d_int_array_3d","int", - context__.to_vec(d_int, 2, 3)); - d_int_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::min()))); - + } + current_statement__ = 687; + return 0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +int +foo_2(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + std::vector vs; + vs = std::vector(2, std::numeric_limits::min()); + + int y; + y = std::numeric_limits::min(); + + current_statement__ = 691; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { { - std::vector d_int_array_3d_flat__; - current_statement__ = 243; - assign(d_int_array_3d_flat__, nil_index_list(), - context__.vals_i("d_int_array_3d"), - "assigning variable d_int_array_3d_flat__"); - current_statement__ = 243; - pos__ = 1; - current_statement__ = 243; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 243; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 243; - for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { - current_statement__ = 243; + int v; + current_statement__ = 691; + v = vs[(sym1__ - 1)]; + current_statement__ = 692; + y = v; + }} + current_statement__ = 693; + return 0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector> +foo_3(const T0__& t, const int& n, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 695; + return rep_array(t, n); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 697; + return (x + get_lp(lp__, lp_accum__)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +void +foo_4(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 699; + std::stringstream errmsg_stream__; + errmsg_stream__ << "user-specified rejection"; + errmsg_stream__ << x; + throw std::domain_error(errmsg_stream__.str()); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +relative_diff(const T0__& x, const T1__& y, const T2__& max_, + const T3__& min_, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + local_scalar_t__ abs_diff; + abs_diff = DUMMY_VAR__; + + local_scalar_t__ avg_scale; + avg_scale = DUMMY_VAR__; + + current_statement__ = 703; + abs_diff = stan::math::fabs((x - y)); + current_statement__ = 704; + avg_scale = ((stan::math::fabs(x) + stan::math::fabs(y)) / 2); + current_statement__ = 706; + if (logical_gt((abs_diff / avg_scale), max_)) { + current_statement__ = 705; + std::stringstream errmsg_stream__; + errmsg_stream__ << "user-specified rejection, difference above "; + errmsg_stream__ << max_; + errmsg_stream__ << " x:"; + errmsg_stream__ << x; + errmsg_stream__ << " y:"; + errmsg_stream__ << y; + throw std::domain_error(errmsg_stream__.str()); + } + current_statement__ = 708; + if (logical_lt((abs_diff / avg_scale), min_)) { + current_statement__ = 707; + std::stringstream errmsg_stream__; + errmsg_stream__ << "user-specified rejection, difference below "; + errmsg_stream__ << min_; + errmsg_stream__ << " x:"; + errmsg_stream__ << x; + errmsg_stream__ << " y:"; + errmsg_stream__ << y; + throw std::domain_error(errmsg_stream__.str()); + } + current_statement__ = 709; + return (abs_diff / avg_scale); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, -1, 1> +foo_5(const Eigen::Matrix& shared_params, + const Eigen::Matrix& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 711; + return transpose(stan::math::to_row_vector( + stan::math::array_builder().add(1).add(2).add(3).array())); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, + const T4__& x5, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 713; + return x1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t> +foo_five_args_lp(const T0__& x1, const T1__& x2, const T2__& x3, + const T3__& x4, const T4__& x5, const T5__& x6, + T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 715; + return x1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, -1, -1> +covsqrt2corsqrt(const Eigen::Matrix& mat, const int& invert, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 717; + validate_non_negative_index("o", "rows(mat)", rows(mat)); + current_statement__ = 718; + validate_non_negative_index("o", "cols(mat)", cols(mat)); + Eigen::Matrix o; + o = Eigen::Matrix(rows(mat), cols(mat)); + stan::math::fill(o, DUMMY_VAR__); + + current_statement__ = 720; + assign(o, nil_index_list(), mat, "assigning variable o"); + current_statement__ = 721; + assign(o, cons_list(index_uni(1), nil_index_list()), + stan::model::deep_copy( + rvalue(o, cons_list(index_uni(2), nil_index_list()), "o")), + "assigning variable o"); + current_statement__ = 722; + assign(o, cons_list(index_min_max(3, 4), nil_index_list()), + stan::model::deep_copy( + rvalue(o, cons_list(index_min_max(1, 2), nil_index_list()), "o")), + "assigning variable o"); + current_statement__ = 723; + return o; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +void +f0(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 725; + if (pstream__) { + stan_print(pstream__, "hi"); + stan_print(pstream__, "\n"); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +int +f1(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 727; + return a1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector +f2(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 729; + return a2; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector> +f3(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 731; + return a3; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t> +f4(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 733; + return a4; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector>> +f5(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 735; + return a5; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector>>> +f6(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 737; + return a6; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix>, -1, 1> +f7(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 739; + return a7; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector>, -1, 1>> +f8(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 741; + return a8; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector>, -1, 1>>> +f9(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 743; + return a9; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix>, -1, -1> +f10(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 745; + return a10; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector>, -1, -1>> +f11(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 747; + return a11; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +std::vector>, -1, -1>>> +f12(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const Eigen::Matrix& a7, + const std::vector>& a8, + const std::vector>>& a9, + const Eigen::Matrix& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 749; + return a12; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +void +foo_6(std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + int a; + a = std::numeric_limits::min(); + + local_scalar_t__ b; + b = DUMMY_VAR__; + + std::vector> c; + c = std::vector>(20, std::vector(30, DUMMY_VAR__)); + + std::vector>> ar_mat; + ar_mat = std::vector>>(60, std::vector>(70, Eigen::Matrix(40, 50))); + stan::math::fill(ar_mat, DUMMY_VAR__); + + current_statement__ = 755; + assign(ar_mat, + cons_list(index_uni(1), + cons_list(index_uni(1), + cons_list(index_uni(1), cons_list(index_uni(1), nil_index_list())))), + b, "assigning variable ar_mat"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +Eigen::Matrix +matfoo(std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 757; + return stan::math::to_matrix( + stan::math::array_builder>() + .add(stan::math::to_row_vector(stan::math::array_builder() + .add(1).add(2).add(3).add(4).add(5).add(6).add(7).add(8).add(9) + .add(10).array())).add(stan::math::to_row_vector( + stan::math::array_builder().add(1).add(2).add(3).add(4).add(5) + .add(6).add(7).add(8).add(9).add(10).array())) + .add(stan::math::to_row_vector(stan::math::array_builder() + .add(1).add(2).add(3).add(4).add(5).add(6).add(7).add(8).add(9) + .add(10).array())).array()); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +Eigen::Matrix +vecfoo(std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 759; + return transpose(stan::math::to_row_vector( + stan::math::array_builder().add(1).add(2).add(3).add(4) + .add(5).add(6).add(7).add(8).add(9).add(10).array())); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, -1, 1> +vecmufoo(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + Eigen::Matrix l; + l = Eigen::Matrix(10); + stan::math::fill(l, DUMMY_VAR__); + + current_statement__ = 761; + assign(l, nil_index_list(), multiply(mu, vecfoo(pstream__)), + "assigning variable l"); + current_statement__ = 762; + return l; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, -1, 1> +vecmubar(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + Eigen::Matrix l; + l = Eigen::Matrix(10); + stan::math::fill(l, DUMMY_VAR__); + + current_statement__ = 764; + assign(l, nil_index_list(), + multiply(mu, + transpose(stan::math::to_row_vector(stan::math::array_builder() + .add(1).add(2).add(3).add(4).add(5).add(6).add(7).add(8).add(9) + .add(10).array()))), "assigning variable l"); + current_statement__ = 765; + return rvalue(l, + cons_list(index_multi(stan::math::array_builder().add(1) + .add(2).add(3).add(4).add(5).array()), nil_index_list()), "l"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, -1, 1> +algebra_system(const Eigen::Matrix& x, + const Eigen::Matrix& y, + const std::vector& dat, const std::vector& dat_int, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + Eigen::Matrix f_x; + f_x = Eigen::Matrix(2); + stan::math::fill(f_x, DUMMY_VAR__); + + current_statement__ = 768; + assign(f_x, cons_list(index_uni(1), nil_index_list()), + (x[(1 - 1)] - y[(1 - 1)]), "assigning variable f_x"); + current_statement__ = 769; + assign(f_x, cons_list(index_uni(2), nil_index_list()), + (x[(2 - 1)] - y[(2 - 1)]), "assigning variable f_x"); + current_statement__ = 770; + return f_x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, -1, 1> +binomialf(const Eigen::Matrix& phi, + const Eigen::Matrix& theta, + const std::vector& x_r, const std::vector& x_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + Eigen::Matrix lpmf; + lpmf = Eigen::Matrix(1); + stan::math::fill(lpmf, DUMMY_VAR__); + + current_statement__ = 773; + assign(lpmf, cons_list(index_uni(1), nil_index_list()), 0.0, + "assigning variable lpmf"); + current_statement__ = 774; + return lpmf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class mother_model final : public model_base_crtp { + + private: + int N; + int M; + int K; + std::vector d_int_1d_ar; + std::vector>> d_int_3d_ar; + double J; + std::vector d_real_1d_ar; + std::vector>> d_real_3d_ar; + Eigen::Matrix d_vec; + std::vector> d_1d_vec; + std::vector>>> d_3d_vec; + Eigen::Matrix d_row_vec; + std::vector> d_1d_row_vec; + std::vector>>> d_3d_row_vec; + std::vector>> d_ar_mat; + Eigen::Matrix d_simplex; + std::vector> d_1d_simplex; + std::vector>>> d_3d_simplex; + Eigen::Matrix d_cfcov_54; + Eigen::Matrix d_cfcov_33; + std::vector> d_cfcov_33_ar; + int d_int; + std::vector d_int_array; + std::vector> d_int_array_2d; + std::vector>> d_int_array_3d; + double d_real; + std::vector d_real_array; + std::vector> d_real_array_2d; + std::vector>> d_real_array_3d; + Eigen::Matrix d_matrix; + std::vector> d_matrix_array; + std::vector>> d_matrix_array_2d; + std::vector>>> d_matrix_array_3d; + Eigen::Matrix d_vector; + std::vector> d_vector_array; + std::vector>> d_vector_array_2d; + std::vector>>> d_vector_array_3d; + Eigen::Matrix d_row_vector; + std::vector> d_row_vector_array; + std::vector>> d_row_vector_array_2d; + std::vector>>> d_row_vector_array_3d; + int td_int; + std::vector td_1d; + std::vector td_1dk; + int td_a; + double td_b; + double td_c; + std::vector>> td_ar_mat; + Eigen::Matrix td_simplex; + std::vector> td_1d_simplex; + std::vector>>> td_3d_simplex; + Eigen::Matrix td_cfcov_54; + Eigen::Matrix td_cfcov_33; + Eigen::Matrix x; + Eigen::Matrix y; + std::vector dat; + std::vector dat_int; + std::vector> x_r; + std::vector> x_i; + std::vector> arr_mul_ind; + std::vector x_mul_ind; + double transformed_data_real; + std::vector transformed_data_real_array; + std::vector> transformed_data_real_array_2d; + std::vector>> transformed_data_real_array_3d; + Eigen::Matrix transformed_data_matrix; + std::vector> transformed_data_matrix_array; + std::vector>> transformed_data_matrix_array_2d; + std::vector>>> transformed_data_matrix_array_3d; + Eigen::Matrix transformed_data_vector; + std::vector> transformed_data_vector_array; + std::vector>> transformed_data_vector_array_2d; + std::vector>>> transformed_data_vector_array_3d; + Eigen::Matrix transformed_data_row_vector; + std::vector> transformed_data_row_vector_array; + std::vector>> transformed_data_row_vector_array_2d; + std::vector>>> transformed_data_row_vector_array_3d; + + public: + ~mother_model() final { } + + std::string model_name() const final { return "mother_model"; } + + std::vector model_compile_info() const { + std::vector stanc_info; + stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); + stanc_info.push_back("stancflags = --print-cpp"); + return stanc_info; + } + + + mother_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "mother_model_namespace::mother_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 186; + context__.validate_dims("data initialization","N","int", + context__.to_vec()); + N = std::numeric_limits::min(); + + current_statement__ = 186; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 186; + current_statement__ = 186; + check_greater_or_equal(function__, "N", N, 0); + current_statement__ = 187; + context__.validate_dims("data initialization","M","int", + context__.to_vec()); + M = std::numeric_limits::min(); + + current_statement__ = 187; + M = context__.vals_i("M")[(1 - 1)]; + current_statement__ = 187; + current_statement__ = 187; + check_greater_or_equal(function__, "M", M, 0); + current_statement__ = 188; + context__.validate_dims("data initialization","K","int", + context__.to_vec()); + K = std::numeric_limits::min(); + + current_statement__ = 188; + K = context__.vals_i("K")[(1 - 1)]; + current_statement__ = 188; + current_statement__ = 188; + check_greater_or_equal(function__, "K", K, 0); + current_statement__ = 188; + current_statement__ = 188; + check_less_or_equal(function__, "K", K, (N * M)); + current_statement__ = 189; + validate_non_negative_index("d_int_1d_ar", "N", N); + current_statement__ = 190; + context__.validate_dims("data initialization","d_int_1d_ar","int", + context__.to_vec(N)); + d_int_1d_ar = std::vector(N, std::numeric_limits::min()); + + current_statement__ = 190; + assign(d_int_1d_ar, nil_index_list(), context__.vals_i("d_int_1d_ar"), + "assigning variable d_int_1d_ar"); + current_statement__ = 190; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 190; + current_statement__ = 190; + check_less_or_equal(function__, "d_int_1d_ar[sym1__]", + d_int_1d_ar[(sym1__ - 1)], N);} + current_statement__ = 191; + validate_non_negative_index("d_int_3d_ar", "N", N); + current_statement__ = 192; + validate_non_negative_index("d_int_3d_ar", "M", M); + current_statement__ = 193; + validate_non_negative_index("d_int_3d_ar", "K", K); + current_statement__ = 194; + context__.validate_dims("data initialization","d_int_3d_ar","int", + context__.to_vec(N, M, K)); + d_int_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::min()))); + + { + std::vector d_int_3d_ar_flat__; + current_statement__ = 194; + assign(d_int_3d_ar_flat__, nil_index_list(), + context__.vals_i("d_int_3d_ar"), + "assigning variable d_int_3d_ar_flat__"); + current_statement__ = 194; + pos__ = 1; + current_statement__ = 194; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 194; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 194; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 194; + assign(d_int_3d_ar, + cons_list(index_uni(sym3__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list()))), + d_int_3d_ar_flat__[(pos__ - 1)], + "assigning variable d_int_3d_ar"); + current_statement__ = 194; + pos__ = (pos__ + 1);}}} + } + current_statement__ = 194; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 194; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 194; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 194; + current_statement__ = 194; + check_less_or_equal(function__, + "d_int_3d_ar[sym1__, sym2__, sym3__]", + d_int_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ + (sym3__ - 1)], N);}}} + current_statement__ = 195; + context__.validate_dims("data initialization","J","double", + context__.to_vec()); + J = std::numeric_limits::quiet_NaN(); + + current_statement__ = 195; + J = context__.vals_r("J")[(1 - 1)]; + current_statement__ = 195; + current_statement__ = 195; + check_greater_or_equal(function__, "J", J, -2.0); + current_statement__ = 195; + current_statement__ = 195; + check_less_or_equal(function__, "J", J, 2.0); + current_statement__ = 196; + validate_non_negative_index("d_real_1d_ar", "N", N); + current_statement__ = 197; + context__.validate_dims("data initialization","d_real_1d_ar","double", + context__.to_vec(N)); + d_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 197; + assign(d_real_1d_ar, nil_index_list(), + context__.vals_r("d_real_1d_ar"), "assigning variable d_real_1d_ar"); + current_statement__ = 198; + validate_non_negative_index("d_real_3d_ar", "N", N); + current_statement__ = 199; + validate_non_negative_index("d_real_3d_ar", "M", M); + current_statement__ = 200; + validate_non_negative_index("d_real_3d_ar", "K", K); + current_statement__ = 201; + context__.validate_dims("data initialization","d_real_3d_ar","double", + context__.to_vec(N, M, K)); + d_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); + + { + std::vector d_real_3d_ar_flat__; + current_statement__ = 201; + assign(d_real_3d_ar_flat__, nil_index_list(), + context__.vals_r("d_real_3d_ar"), + "assigning variable d_real_3d_ar_flat__"); + current_statement__ = 201; + pos__ = 1; + current_statement__ = 201; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 201; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 201; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 201; + assign(d_real_3d_ar, + cons_list(index_uni(sym3__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list()))), + d_real_3d_ar_flat__[(pos__ - 1)], + "assigning variable d_real_3d_ar"); + current_statement__ = 201; + pos__ = (pos__ + 1);}}} + } + current_statement__ = 202; + validate_non_negative_index("d_vec", "N", N); + current_statement__ = 203; + context__.validate_dims("data initialization","d_vec","double", + context__.to_vec(N)); + d_vec = Eigen::Matrix(N); + stan::math::fill(d_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector d_vec_flat__; + current_statement__ = 203; + assign(d_vec_flat__, nil_index_list(), context__.vals_r("d_vec"), + "assigning variable d_vec_flat__"); + current_statement__ = 203; + pos__ = 1; + current_statement__ = 203; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 203; + assign(d_vec, cons_list(index_uni(sym1__), nil_index_list()), + d_vec_flat__[(pos__ - 1)], "assigning variable d_vec"); + current_statement__ = 203; + pos__ = (pos__ + 1);} + } + current_statement__ = 204; + validate_non_negative_index("d_1d_vec", "N", N); + current_statement__ = 205; + validate_non_negative_index("d_1d_vec", "N", N); + current_statement__ = 206; + context__.validate_dims("data initialization","d_1d_vec","double", + context__.to_vec(N, N)); + d_1d_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(d_1d_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector d_1d_vec_flat__; + current_statement__ = 206; + assign(d_1d_vec_flat__, nil_index_list(), + context__.vals_r("d_1d_vec"), "assigning variable d_1d_vec_flat__"); + current_statement__ = 206; + pos__ = 1; + current_statement__ = 206; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 206; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 206; + assign(d_1d_vec, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + d_1d_vec_flat__[(pos__ - 1)], "assigning variable d_1d_vec"); + current_statement__ = 206; + pos__ = (pos__ + 1);}} + } + current_statement__ = 207; + validate_non_negative_index("d_3d_vec", "N", N); + current_statement__ = 208; + validate_non_negative_index("d_3d_vec", "M", M); + current_statement__ = 209; + validate_non_negative_index("d_3d_vec", "K", K); + current_statement__ = 210; + validate_non_negative_index("d_3d_vec", "N", N); + current_statement__ = 211; + context__.validate_dims("data initialization","d_3d_vec","double", + context__.to_vec(N, M, K, N)); + d_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(d_3d_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector d_3d_vec_flat__; + current_statement__ = 211; + assign(d_3d_vec_flat__, nil_index_list(), + context__.vals_r("d_3d_vec"), "assigning variable d_3d_vec_flat__"); + current_statement__ = 211; + pos__ = 1; + current_statement__ = 211; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 211; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 211; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 211; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 211; + assign(d_3d_vec, + cons_list(index_uni(sym4__), + cons_list(index_uni(sym3__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())))), + d_3d_vec_flat__[(pos__ - 1)], "assigning variable d_3d_vec"); + current_statement__ = 211; + pos__ = (pos__ + 1);}}}} + } + current_statement__ = 212; + validate_non_negative_index("d_row_vec", "N", N); + current_statement__ = 213; + context__.validate_dims("data initialization","d_row_vec","double", + context__.to_vec(N)); + d_row_vec = Eigen::Matrix(N); + stan::math::fill(d_row_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector d_row_vec_flat__; + current_statement__ = 213; + assign(d_row_vec_flat__, nil_index_list(), + context__.vals_r("d_row_vec"), + "assigning variable d_row_vec_flat__"); + current_statement__ = 213; + pos__ = 1; + current_statement__ = 213; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 213; + assign(d_row_vec, cons_list(index_uni(sym1__), nil_index_list()), + d_row_vec_flat__[(pos__ - 1)], "assigning variable d_row_vec"); + current_statement__ = 213; + pos__ = (pos__ + 1);} + } + current_statement__ = 214; + validate_non_negative_index("d_1d_row_vec", "N", N); + current_statement__ = 215; + validate_non_negative_index("d_1d_row_vec", "N", N); + current_statement__ = 216; + context__.validate_dims("data initialization","d_1d_row_vec","double", + context__.to_vec(N, N)); + d_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(d_1d_row_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector d_1d_row_vec_flat__; + current_statement__ = 216; + assign(d_1d_row_vec_flat__, nil_index_list(), + context__.vals_r("d_1d_row_vec"), + "assigning variable d_1d_row_vec_flat__"); + current_statement__ = 216; + pos__ = 1; + current_statement__ = 216; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 216; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 216; + assign(d_1d_row_vec, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + d_1d_row_vec_flat__[(pos__ - 1)], + "assigning variable d_1d_row_vec"); + current_statement__ = 216; + pos__ = (pos__ + 1);}} + } + current_statement__ = 217; + validate_non_negative_index("d_3d_row_vec", "N", N); + current_statement__ = 218; + validate_non_negative_index("d_3d_row_vec", "M", M); + current_statement__ = 219; + validate_non_negative_index("d_3d_row_vec", "K", K); + current_statement__ = 220; + validate_non_negative_index("d_3d_row_vec", "N", N); + current_statement__ = 221; + context__.validate_dims("data initialization","d_3d_row_vec","double", + context__.to_vec(N, M, K, N)); + d_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(d_3d_row_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector d_3d_row_vec_flat__; + current_statement__ = 221; + assign(d_3d_row_vec_flat__, nil_index_list(), + context__.vals_r("d_3d_row_vec"), + "assigning variable d_3d_row_vec_flat__"); + current_statement__ = 221; + pos__ = 1; + current_statement__ = 221; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 221; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 221; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 221; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 221; + assign(d_3d_row_vec, + cons_list(index_uni(sym4__), + cons_list(index_uni(sym3__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())))), + d_3d_row_vec_flat__[(pos__ - 1)], + "assigning variable d_3d_row_vec"); + current_statement__ = 221; + pos__ = (pos__ + 1);}}}} + } + current_statement__ = 222; + context__.validate_dims("data initialization","d_ar_mat","double", + context__.to_vec(4, 5, 2, 3)); + d_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(d_ar_mat, std::numeric_limits::quiet_NaN()); + + { + std::vector d_ar_mat_flat__; + current_statement__ = 222; + assign(d_ar_mat_flat__, nil_index_list(), + context__.vals_r("d_ar_mat"), "assigning variable d_ar_mat_flat__"); + current_statement__ = 222; + pos__ = 1; + current_statement__ = 222; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 222; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 222; + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + current_statement__ = 222; + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + current_statement__ = 222; + assign(d_ar_mat, + cons_list(index_uni(sym4__), + cons_list(index_uni(sym3__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())))), + d_ar_mat_flat__[(pos__ - 1)], "assigning variable d_ar_mat"); + current_statement__ = 222; + pos__ = (pos__ + 1);}}}} + } + current_statement__ = 222; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 222; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 222; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 222; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 222; + current_statement__ = 222; + check_greater_or_equal(function__, + "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(d_ar_mat, + cons_list(index_uni(sym1__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym3__), + cons_list(index_uni(sym4__), + nil_index_list())))), + "d_ar_mat"), 0);}}}} + current_statement__ = 222; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 222; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 222; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 222; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 222; + current_statement__ = 222; + check_less_or_equal(function__, + "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(d_ar_mat, + cons_list(index_uni(sym1__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym3__), + cons_list(index_uni(sym4__), + nil_index_list())))), "d_ar_mat"), + 1);}}}} + current_statement__ = 223; + validate_non_negative_index("d_simplex", "N", N); + current_statement__ = 224; + context__.validate_dims("data initialization","d_simplex","double", + context__.to_vec(N)); + d_simplex = Eigen::Matrix(N); + stan::math::fill(d_simplex, std::numeric_limits::quiet_NaN()); + + { + std::vector d_simplex_flat__; + current_statement__ = 224; + assign(d_simplex_flat__, nil_index_list(), + context__.vals_r("d_simplex"), + "assigning variable d_simplex_flat__"); + current_statement__ = 224; + pos__ = 1; + current_statement__ = 224; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 224; + assign(d_simplex, cons_list(index_uni(sym1__), nil_index_list()), + d_simplex_flat__[(pos__ - 1)], "assigning variable d_simplex"); + current_statement__ = 224; + pos__ = (pos__ + 1);} + } + current_statement__ = 224; + current_statement__ = 224; + check_simplex(function__, "d_simplex", d_simplex); + current_statement__ = 225; + validate_non_negative_index("d_1d_simplex", "N", N); + current_statement__ = 226; + validate_non_negative_index("d_1d_simplex", "N", N); + current_statement__ = 227; + context__.validate_dims("data initialization","d_1d_simplex","double", + context__.to_vec(N, N)); + d_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(d_1d_simplex, std::numeric_limits::quiet_NaN()); + + { + std::vector d_1d_simplex_flat__; + current_statement__ = 227; + assign(d_1d_simplex_flat__, nil_index_list(), + context__.vals_r("d_1d_simplex"), + "assigning variable d_1d_simplex_flat__"); + current_statement__ = 227; + pos__ = 1; + current_statement__ = 227; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 227; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 227; + assign(d_1d_simplex, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + d_1d_simplex_flat__[(pos__ - 1)], + "assigning variable d_1d_simplex"); + current_statement__ = 227; + pos__ = (pos__ + 1);}} + } + current_statement__ = 227; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 227; + current_statement__ = 227; + check_simplex(function__, "d_1d_simplex[sym1__]", + d_1d_simplex[(sym1__ - 1)]);} + current_statement__ = 228; + validate_non_negative_index("d_3d_simplex", "N", N); + current_statement__ = 229; + validate_non_negative_index("d_3d_simplex", "M", M); + current_statement__ = 230; + validate_non_negative_index("d_3d_simplex", "K", K); + current_statement__ = 231; + validate_non_negative_index("d_3d_simplex", "N", N); + current_statement__ = 232; + context__.validate_dims("data initialization","d_3d_simplex","double", + context__.to_vec(N, M, K, N)); + d_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(d_3d_simplex, std::numeric_limits::quiet_NaN()); + + { + std::vector d_3d_simplex_flat__; + current_statement__ = 232; + assign(d_3d_simplex_flat__, nil_index_list(), + context__.vals_r("d_3d_simplex"), + "assigning variable d_3d_simplex_flat__"); + current_statement__ = 232; + pos__ = 1; + current_statement__ = 232; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 232; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 232; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 232; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 232; + assign(d_3d_simplex, + cons_list(index_uni(sym4__), + cons_list(index_uni(sym3__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())))), + d_3d_simplex_flat__[(pos__ - 1)], + "assigning variable d_3d_simplex"); + current_statement__ = 232; + pos__ = (pos__ + 1);}}}} + } + current_statement__ = 232; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 232; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 232; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 232; + current_statement__ = 232; + check_simplex(function__, "d_3d_simplex[sym1__, sym2__, sym3__]", + d_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - + 1)]);}}} + current_statement__ = 233; + context__.validate_dims("data initialization","d_cfcov_54","double", + context__.to_vec(5, 4)); + d_cfcov_54 = Eigen::Matrix(5, 4); + stan::math::fill(d_cfcov_54, std::numeric_limits::quiet_NaN()); + + { + std::vector d_cfcov_54_flat__; + current_statement__ = 233; + assign(d_cfcov_54_flat__, nil_index_list(), + context__.vals_r("d_cfcov_54"), + "assigning variable d_cfcov_54_flat__"); + current_statement__ = 233; + pos__ = 1; + current_statement__ = 233; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 233; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 233; + assign(d_cfcov_54, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + d_cfcov_54_flat__[(pos__ - 1)], "assigning variable d_cfcov_54"); + current_statement__ = 233; + pos__ = (pos__ + 1);}} + } + current_statement__ = 233; + current_statement__ = 233; + check_cholesky_factor(function__, "d_cfcov_54", d_cfcov_54); + current_statement__ = 234; + context__.validate_dims("data initialization","d_cfcov_33","double", + context__.to_vec(3, 3)); + d_cfcov_33 = Eigen::Matrix(3, 3); + stan::math::fill(d_cfcov_33, std::numeric_limits::quiet_NaN()); + + { + std::vector d_cfcov_33_flat__; + current_statement__ = 234; + assign(d_cfcov_33_flat__, nil_index_list(), + context__.vals_r("d_cfcov_33"), + "assigning variable d_cfcov_33_flat__"); + current_statement__ = 234; + pos__ = 1; + current_statement__ = 234; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 234; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 234; + assign(d_cfcov_33, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + d_cfcov_33_flat__[(pos__ - 1)], "assigning variable d_cfcov_33"); + current_statement__ = 234; + pos__ = (pos__ + 1);}} + } + current_statement__ = 234; + current_statement__ = 234; + check_cholesky_factor(function__, "d_cfcov_33", d_cfcov_33); + current_statement__ = 235; + validate_non_negative_index("d_cfcov_33_ar", "K", K); + current_statement__ = 236; + context__.validate_dims("data initialization","d_cfcov_33_ar","double", + context__.to_vec(K, 3, 3)); + d_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + stan::math::fill(d_cfcov_33_ar, std::numeric_limits::quiet_NaN()); + + { + std::vector d_cfcov_33_ar_flat__; + current_statement__ = 236; + assign(d_cfcov_33_ar_flat__, nil_index_list(), + context__.vals_r("d_cfcov_33_ar"), + "assigning variable d_cfcov_33_ar_flat__"); + current_statement__ = 236; + pos__ = 1; + current_statement__ = 236; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 236; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 236; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 236; + assign(d_cfcov_33_ar, + cons_list(index_uni(sym3__), + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list()))), + d_cfcov_33_ar_flat__[(pos__ - 1)], + "assigning variable d_cfcov_33_ar"); + current_statement__ = 236; + pos__ = (pos__ + 1);}}} + } + current_statement__ = 236; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 236; + current_statement__ = 236; + check_cholesky_factor(function__, "d_cfcov_33_ar[sym1__]", + d_cfcov_33_ar[(sym1__ - 1)]);} + current_statement__ = 237; + context__.validate_dims("data initialization","d_int","int", + context__.to_vec()); + d_int = std::numeric_limits::min(); + + current_statement__ = 237; + d_int = context__.vals_i("d_int")[(1 - 1)]; + current_statement__ = 238; + validate_non_negative_index("d_int_array", "d_int", d_int); + current_statement__ = 239; + context__.validate_dims("data initialization","d_int_array","int", + context__.to_vec(d_int)); + d_int_array = std::vector(d_int, std::numeric_limits::min()); + + current_statement__ = 239; + assign(d_int_array, nil_index_list(), context__.vals_i("d_int_array"), + "assigning variable d_int_array"); + current_statement__ = 240; + validate_non_negative_index("d_int_array_2d", "d_int", d_int); + current_statement__ = 241; + context__.validate_dims("data initialization","d_int_array_2d","int", + context__.to_vec(d_int, 2)); + d_int_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::min())); + + { + std::vector d_int_array_2d_flat__; + current_statement__ = 241; + assign(d_int_array_2d_flat__, nil_index_list(), + context__.vals_i("d_int_array_2d"), + "assigning variable d_int_array_2d_flat__"); + current_statement__ = 241; + pos__ = 1; + current_statement__ = 241; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 241; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 241; + assign(d_int_array_2d, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + d_int_array_2d_flat__[(pos__ - 1)], + "assigning variable d_int_array_2d"); + current_statement__ = 241; + pos__ = (pos__ + 1);}} + } + current_statement__ = 242; + validate_non_negative_index("d_int_array_3d", "d_int", d_int); + current_statement__ = 243; + context__.validate_dims("data initialization","d_int_array_3d","int", + context__.to_vec(d_int, 2, 3)); + d_int_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::min()))); + + { + std::vector d_int_array_3d_flat__; + current_statement__ = 243; + assign(d_int_array_3d_flat__, nil_index_list(), + context__.vals_i("d_int_array_3d"), + "assigning variable d_int_array_3d_flat__"); + current_statement__ = 243; + pos__ = 1; + current_statement__ = 243; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 243; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 243; + for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { + current_statement__ = 243; assign(d_int_array_3d, cons_list(index_uni(sym3__), cons_list(index_uni(sym2__), @@ -11069,6 +11299,118 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'motherHOF.stan', line 33, column 4 to column 15)", " (in 'motherHOF.stan', line 29, column 39 to line 34, column 3)"}; +template +std::vector> +sho(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) ; + +struct sho_functor__ { +template +std::vector> +operator()(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) const +{ +return sho(t, y, theta, x, x_int, pstream__); +} +}; + +template +stan::promote_args_t +integrand(const T0__& x, const T1__& xc, const std::vector& theta, + const std::vector& x_r, const std::vector& x_i, + std::ostream* pstream__) ; + +struct integrand_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, const T1__& xc, const std::vector& theta, + const std::vector& x_r, const std::vector& x_i, + std::ostream* pstream__) const +{ +return integrand(x, xc, theta, x_r, x_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, 1> +foo(const Eigen::Matrix& shared_params, + const Eigen::Matrix& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) ; + +struct foo_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const Eigen::Matrix& shared_params, + const Eigen::Matrix& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) const +{ +return foo(shared_params, job_params, data_r, data_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, 1> +goo(const Eigen::Matrix& shared_params, + const Eigen::Matrix& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) ; + +struct goo_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const Eigen::Matrix& shared_params, + const Eigen::Matrix& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) const +{ +return goo(shared_params, job_params, data_r, data_i, pstream__); +} +}; + +template +stan::promote_args_t +map_rectfake(const T0__& x, std::ostream* pstream__) ; + +struct map_rectfake_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return map_rectfake(x, pstream__); +} +}; + +template +Eigen::Matrix, -1, 1> +algebra_system(const Eigen::Matrix& x, + const Eigen::Matrix& y, + const std::vector& dat, const std::vector& dat_int, + std::ostream* pstream__) ; + +struct algebra_system_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const Eigen::Matrix& x, + const Eigen::Matrix& y, const std::vector& dat, + const std::vector& dat_int, std::ostream* pstream__) const +{ +return algebra_system(x, y, dat, dat_int, pstream__); +} +}; template std::vector& y, } } - -struct sho_functor__ { -template -std::vector> -operator()(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) const -{ -return sho(t, y, theta, x, x_int, pstream__); -} -}; - template stan::promote_args_t @@ -11137,19 +11466,6 @@ integrand(const T0__& x, const T1__& xc, const std::vector& theta, } } - -struct integrand_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, const T1__& xc, const std::vector& theta, - const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) const -{ -return integrand(x, xc, theta, x_r, x_i, pstream__); -} -}; - template Eigen::Matrix, -1, 1> @@ -11174,20 +11490,6 @@ foo(const Eigen::Matrix& shared_params, } } - -struct foo_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const Eigen::Matrix& shared_params, - const Eigen::Matrix& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) const -{ -return foo(shared_params, job_params, data_r, data_i, pstream__); -} -}; - template Eigen::Matrix, -1, 1> @@ -11200,32 +11502,18 @@ goo(const Eigen::Matrix& shared_params, (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 149; - return transpose(stan::math::to_row_vector( - stan::math::array_builder().add(4).add(5).add(6).array())); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct goo_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const Eigen::Matrix& shared_params, - const Eigen::Matrix& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) const -{ -return goo(shared_params, job_params, data_r, data_i, pstream__); + + try { + current_statement__ = 149; + return transpose(stan::math::to_row_vector( + stan::math::array_builder().add(4).add(5).add(6).array())); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - template stan::promote_args_t map_rectfake(const T0__& x, std::ostream* pstream__) { @@ -11245,16 +11533,6 @@ map_rectfake(const T0__& x, std::ostream* pstream__) { } } - -struct map_rectfake_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return map_rectfake(x, pstream__); -} -}; - template Eigen::Matrix, -1, 1> @@ -11288,19 +11566,6 @@ algebra_system(const Eigen::Matrix& x, } } - -struct algebra_system_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const Eigen::Matrix& x, - const Eigen::Matrix& y, const std::vector& dat, - const std::vector& dat_int, std::ostream* pstream__) const -{ -return algebra_system(x, y, dat, dat_int, pstream__); -} -}; - class motherHOF_model final : public model_base_crtp { private: @@ -13513,6 +13778,22 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'new_integrate_interface.stan', line 3, column 4 to column 13)", " (in 'new_integrate_interface.stan', line 2, column 47 to line 4, column 3)"}; +template +Eigen::Matrix, -1, 1> +f(const T0__& t, const Eigen::Matrix& z, const T2__& a, + const Eigen::Matrix& b, std::ostream* pstream__) ; + +struct f_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const T0__& t, const Eigen::Matrix& z, const T2__& a, + const Eigen::Matrix& b, std::ostream* pstream__) const +{ +return f(t, z, a, b, pstream__); +} +}; template Eigen::Matrix& z, const T2__& a, } } - -struct f_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const T0__& t, const Eigen::Matrix& z, const T2__& a, - const Eigen::Matrix& b, std::ostream* pstream__) const -{ -return f(t, z, a, b, pstream__); -} -}; - class new_integrate_interface_model final : public model_base_crtp { private: @@ -17359,6 +17628,24 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'old_integrate_interface.stan', line 17, column 4 to column 28)", " (in 'old_integrate_interface.stan', line 6, column 26 to line 18, column 3)"}; +template +std::vector> +dz_dt(const T0__& t, const std::vector& z, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) ; + +struct dz_dt_functor__ { +template +std::vector> +operator()(const T0__& t, const std::vector& z, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) const +{ +return dz_dt(t, z, theta, x_r, x_i, pstream__); +} +}; template std::vector& z, } } - -struct dz_dt_functor__ { -template -std::vector> -operator()(const T0__& t, const std::vector& z, - const std::vector& theta, const std::vector& x_r, - const std::vector& x_i, std::ostream* pstream__) const -{ -return dz_dt(t, z, theta, x_r, x_i, pstream__); -} -}; - class old_integrate_interface_model final : public model_base_crtp { private: @@ -19296,12 +19570,881 @@ class optimize_glm_model final : public model_base_crtp { beta_m)); current_statement__ = 174; lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_d_a[(1 - 1)], alpha, beta, - sigma)); - current_statement__ = 175; + normal_id_glm_lpdf(y_v_d, X_d_a[(1 - 1)], alpha, beta, + sigma)); + current_statement__ = 175; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_d_a[(1 - 1)], alpha, beta, + sigma)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob() + + template + inline void write_array(RNG& base_rng__, std::vector& params_r__, + std::vector& params_i__, + std::vector& vars__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + static const char* function__ = "optimize_glm_model_namespace::write_array"; +(void) function__; // suppress unused var warning + + (void) function__; // suppress unused var warning + + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + Eigen::Matrix alpha_v; + alpha_v = Eigen::Matrix(k); + stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + alpha_v = in__.vector(k); + Eigen::Matrix beta; + beta = Eigen::Matrix(k); + stan::math::fill(beta, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + beta = in__.vector(k); + Eigen::Matrix cuts; + cuts = Eigen::Matrix(k); + stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + cuts = in__.vector(k); + double sigma; + sigma = std::numeric_limits::quiet_NaN(); + + current_statement__ = 4; + sigma = in__.scalar(); + current_statement__ = 4; + sigma = stan::math::lb_constrain(sigma, 0); + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + alpha = in__.scalar(); + double phi; + phi = std::numeric_limits::quiet_NaN(); + + current_statement__ = 6; + phi = in__.scalar(); + Eigen::Matrix X_p; + X_p = Eigen::Matrix(n, k); + stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); + + current_statement__ = 7; + X_p = in__.matrix(n, k); + Eigen::Matrix beta_m; + beta_m = Eigen::Matrix(n, k); + stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); + + current_statement__ = 8; + beta_m = in__.matrix(n, k); + Eigen::Matrix X_rv_p; + X_rv_p = Eigen::Matrix(n); + stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); + + current_statement__ = 9; + X_rv_p = in__.row_vector(n); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(alpha_v[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(beta[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(cuts[(sym1__ - 1)]);} + vars__.emplace_back(sigma); + vars__.emplace_back(alpha); + vars__.emplace_back(phi); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(X_p, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), "X_p"));}} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(beta_m, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), "beta_m"));} + } + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + vars__.emplace_back(X_rv_p[(sym1__ - 1)]);} + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array() + + inline void transform_inits(const stan::io::var_context& context__, + std::vector& params_i__, + std::vector& vars__, + std::ostream* pstream__) const + final { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + Eigen::Matrix alpha_v; + alpha_v = Eigen::Matrix(k); + stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); + + { + std::vector alpha_v_flat__; + current_statement__ = 1; + assign(alpha_v_flat__, nil_index_list(), context__.vals_r("alpha_v"), + "assigning variable alpha_v_flat__"); + current_statement__ = 1; + pos__ = 1; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 1; + assign(alpha_v, cons_list(index_uni(sym1__), nil_index_list()), + alpha_v_flat__[(pos__ - 1)], "assigning variable alpha_v"); + current_statement__ = 1; + pos__ = (pos__ + 1);} + } + Eigen::Matrix beta; + beta = Eigen::Matrix(k); + stan::math::fill(beta, std::numeric_limits::quiet_NaN()); + + { + std::vector beta_flat__; + current_statement__ = 2; + assign(beta_flat__, nil_index_list(), context__.vals_r("beta"), + "assigning variable beta_flat__"); + current_statement__ = 2; + pos__ = 1; + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 2; + assign(beta, cons_list(index_uni(sym1__), nil_index_list()), + beta_flat__[(pos__ - 1)], "assigning variable beta"); + current_statement__ = 2; + pos__ = (pos__ + 1);} + } + Eigen::Matrix cuts; + cuts = Eigen::Matrix(k); + stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); + + { + std::vector cuts_flat__; + current_statement__ = 3; + assign(cuts_flat__, nil_index_list(), context__.vals_r("cuts"), + "assigning variable cuts_flat__"); + current_statement__ = 3; + pos__ = 1; + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 3; + assign(cuts, cons_list(index_uni(sym1__), nil_index_list()), + cuts_flat__[(pos__ - 1)], "assigning variable cuts"); + current_statement__ = 3; + pos__ = (pos__ + 1);} + } + double sigma; + sigma = std::numeric_limits::quiet_NaN(); + + current_statement__ = 4; + sigma = context__.vals_r("sigma")[(1 - 1)]; + double sigma_free__; + sigma_free__ = std::numeric_limits::quiet_NaN(); + + current_statement__ = 4; + sigma_free__ = stan::math::lb_free(sigma, 0); + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + alpha = context__.vals_r("alpha")[(1 - 1)]; + double phi; + phi = std::numeric_limits::quiet_NaN(); + + current_statement__ = 6; + phi = context__.vals_r("phi")[(1 - 1)]; + Eigen::Matrix X_p; + X_p = Eigen::Matrix(n, k); + stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); + + { + std::vector X_p_flat__; + current_statement__ = 7; + assign(X_p_flat__, nil_index_list(), context__.vals_r("X_p"), + "assigning variable X_p_flat__"); + current_statement__ = 7; + pos__ = 1; + current_statement__ = 7; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 7; + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + current_statement__ = 7; + assign(X_p, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + X_p_flat__[(pos__ - 1)], "assigning variable X_p"); + current_statement__ = 7; + pos__ = (pos__ + 1);}} + } + Eigen::Matrix beta_m; + beta_m = Eigen::Matrix(n, k); + stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); + + { + std::vector beta_m_flat__; + current_statement__ = 8; + assign(beta_m_flat__, nil_index_list(), context__.vals_r("beta_m"), + "assigning variable beta_m_flat__"); + current_statement__ = 8; + pos__ = 1; + current_statement__ = 8; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 8; + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + current_statement__ = 8; + assign(beta_m, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + beta_m_flat__[(pos__ - 1)], "assigning variable beta_m"); + current_statement__ = 8; + pos__ = (pos__ + 1);}} + } + Eigen::Matrix X_rv_p; + X_rv_p = Eigen::Matrix(n); + stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); + + { + std::vector X_rv_p_flat__; + current_statement__ = 9; + assign(X_rv_p_flat__, nil_index_list(), context__.vals_r("X_rv_p"), + "assigning variable X_rv_p_flat__"); + current_statement__ = 9; + pos__ = 1; + current_statement__ = 9; + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + current_statement__ = 9; + assign(X_rv_p, cons_list(index_uni(sym1__), nil_index_list()), + X_rv_p_flat__[(pos__ - 1)], "assigning variable X_rv_p"); + current_statement__ = 9; + pos__ = (pos__ + 1);} + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(alpha_v[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(beta[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(cuts[(sym1__ - 1)]);} + vars__.emplace_back(sigma_free__); + vars__.emplace_back(alpha); + vars__.emplace_back(phi); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(X_p, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), "X_p"));}} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(beta_m, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), "beta_m"));} + } + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + vars__.emplace_back(X_rv_p[(sym1__ - 1)]);} + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("alpha_v"); + names__.emplace_back("beta"); + names__.emplace_back("cuts"); + names__.emplace_back("sigma"); + names__.emplace_back("alpha"); + names__.emplace_back("phi"); + names__.emplace_back("X_p"); + names__.emplace_back("beta_m"); + names__.emplace_back("X_rv_p"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const + final { + dimss__.clear(); + dimss__.emplace_back(std::vector{static_cast(k)}); + + dimss__.emplace_back(std::vector{static_cast(k)}); + + dimss__.emplace_back(std::vector{static_cast(k)}); + + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{static_cast(n), + static_cast(k)}); + + dimss__.emplace_back(std::vector{static_cast(n), + static_cast(k)}); + + dimss__.emplace_back(std::vector{static_cast(n)}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); + }} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); + }} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); + }} + param_names__.emplace_back(std::string() + "sigma"); + param_names__.emplace_back(std::string() + "alpha"); + param_names__.emplace_back(std::string() + "phi"); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + { + param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); + }} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); + }} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); + }} + param_names__.emplace_back(std::string() + "sigma"); + param_names__.emplace_back(std::string() + "alpha"); + param_names__.emplace_back(std::string() + "phi"); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + { + param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" << n << "},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" << n << "},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng__, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream = nullptr) const { + std::vector params_r_vec(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r_vec[i] = params_r(i); + std::vector vars_vec; + std::vector params_i_vec; + write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, + emit_transformed_parameters__, emit_generated_quantities__, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) + vars(i) = vars_vec[i]; + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + std::vector vec_params_r; + vec_params_r.reserve(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + vec_params_r.push_back(params_r(i)); + std::vector vec_params_i; + return log_prob(vec_params_r, vec_params_i, pstream); + } + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream__ = nullptr) const { + std::vector params_r_vec; + std::vector params_i_vec; + transform_inits(context, params_i_vec, params_r_vec, pstream__); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r(i) = params_r_vec[i]; + } + +}; +} +using stan_model = optimize_glm_model_namespace::optimize_glm_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +#endif + + + + $ ../../../../../install/default/bin/stanc --print-cpp reduce_sum_m1.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace reduce_sum_m1_model_namespace { + + +inline void validate_positive_index(const char* var_name, const char* expr, + int val) { + if (val < 1) { + std::stringstream msg; + msg << "Found dimension size less than one in simplex declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + +inline void validate_unit_vector_index(const char* var_name, const char* expr, + int val) { + if (val <= 1) { + std::stringstream msg; + if (val == 1) { + msg << "Found dimension size one in unit vector declaration." + << " One-dimensional unit vector is discrete" + << " but the target distribution must be continuous." + << " variable=" << var_name << "; dimension size expression=" << expr; + } else { + msg << "Found dimension size less than one in unit vector declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + } + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + + +using std::istream; +using std::string; +using std::stringstream; +using std::vector; +using std::pow; +using stan::io::dump; +using stan::math::lgamma; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; +using stan::math::pow; + +static int current_statement__ = 0; +static const std::vector locations_array__ = {" (found before start of program)", + " (in 'reduce_sum_m1.stan', line 26, column 2 to column 13)", + " (in 'reduce_sum_m1.stan', line 27, column 2 to column 13)", + " (in 'reduce_sum_m1.stan', line 28, column 2 to column 13)", + " (in 'reduce_sum_m1.stan', line 32, column 2 to column 33)", + " (in 'reduce_sum_m1.stan', line 33, column 2 to column 37)", + " (in 'reduce_sum_m1.stan', line 34, column 2 to column 40)", + " (in 'reduce_sum_m1.stan', line 35, column 2 to column 41)", + " (in 'reduce_sum_m1.stan', line 22, column 2 to column 14)", + " (in 'reduce_sum_m1.stan', line 26, column 10 to column 11)", + " (in 'reduce_sum_m1.stan', line 27, column 10 to column 11)", + " (in 'reduce_sum_m1.stan', line 28, column 10 to column 11)", + " (in 'reduce_sum_m1.stan', line 6, column 6 to column 41)", + " (in 'reduce_sum_m1.stan', line 5, column 11 to line 7, column 5)", + " (in 'reduce_sum_m1.stan', line 4, column 6 to column 39)", + " (in 'reduce_sum_m1.stan', line 3, column 26 to line 5, column 5)", + " (in 'reduce_sum_m1.stan', line 3, column 4 to line 7, column 5)", + " (in 'reduce_sum_m1.stan', line 2, column 45 to line 8, column 3)", + " (in 'reduce_sum_m1.stan', line 13, column 6 to column 35)", + " (in 'reduce_sum_m1.stan', line 12, column 11 to line 14, column 5)", + " (in 'reduce_sum_m1.stan', line 11, column 6 to column 53)", + " (in 'reduce_sum_m1.stan', line 10, column 20 to line 12, column 5)", + " (in 'reduce_sum_m1.stan', line 10, column 4 to line 14, column 5)", + " (in 'reduce_sum_m1.stan', line 9, column 55 to line 15, column 3)", + " (in 'reduce_sum_m1.stan', line 17, column 4 to column 38)", + " (in 'reduce_sum_m1.stan', line 16, column 52 to line 18, column 3)"}; + +template +stan::promote_args_t +g(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct g_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +h(const std::vector& y_slice, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) ; + +struct h_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector& a) const +{ +return h(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct h_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) const +{ +return h(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +foo_lpdf(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +template +struct foo_lpdf_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return foo_lpdf(y_slice, start + 1, end + 1, pstream__); +} +}; + +template +stan::promote_args_t +g(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 16; + if (logical_gt(size(y_slice), 1)) { + current_statement__ = 14; + return reduce_sum(y_slice, 1, pstream__); + } else { + current_statement__ = 12; + return normal_lpdf(y_slice, 0, 1); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h(const std::vector& y_slice, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 22; + if (logical_gt(size(a), 1)) { + current_statement__ = 20; + return reduce_sum(y_slice, 1, pstream__, + rvalue(a, + cons_list(index_min_max(start, end), nil_index_list()), "a")); + } else { + current_statement__ = 18; + return normal_lpdf(a, 0, 1); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lpdf(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 24; + return normal_lpdf(y_slice, 0, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class reduce_sum_m1_model final : public model_base_crtp { + + private: + int N; + + public: + ~reduce_sum_m1_model() final { } + + std::string model_name() const final { return "reduce_sum_m1_model"; } + + std::vector model_compile_info() const { + std::vector stanc_info; + stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); + stanc_info.push_back("stancflags = --print-cpp"); + return stanc_info; + } + + + reduce_sum_m1_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "reduce_sum_m1_model_namespace::reduce_sum_m1_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 8; + N = std::numeric_limits::min(); + + current_statement__ = 8; + N = 100; + current_statement__ = 9; + validate_non_negative_index("y1", "N", N); + current_statement__ = 10; + validate_non_negative_index("y2", "N", N); + current_statement__ = 11; + validate_non_negative_index("y3", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + num_params_r__ += N; + num_params_r__ += N; + num_params_r__ += N; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template + inline T__ log_prob(std::vector& params_r__, + std::vector& params_i__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + static const char* function__ = "reduce_sum_m1_model_namespace::log_prob"; +(void) function__; // suppress unused var warning + + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + std::vector y1; + y1 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 1; + assign(y1, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable y1");} + std::vector y2; + y2 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 2; + assign(y2, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable y2");} + std::vector y3; + y3 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 3; + assign(y3, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable y3");} + { + current_statement__ = 4; + lp_accum__.add(reduce_sum(y1, 1, pstream__)); + current_statement__ = 5; + lp_accum__.add(reduce_sum(y2, 1, pstream__, y2)); + current_statement__ = 6; + lp_accum__.add( + reduce_sum>(y3, 1, pstream__)); + current_statement__ = 7; lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_d_a[(1 - 1)], alpha, beta, - sigma)); + reduce_sum>(y3, 1, pstream__)); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -19322,7 +20465,7 @@ class optimize_glm_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); - static const char* function__ = "optimize_glm_model_namespace::write_array"; + static const char* function__ = "reduce_sum_m1_model_namespace::write_array"; (void) function__; // suppress unused var warning (void) function__; // suppress unused var warning @@ -19335,83 +20478,36 @@ class optimize_glm_model final : public model_base_crtp { try { - Eigen::Matrix alpha_v; - alpha_v = Eigen::Matrix(k); - stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); current_statement__ = 1; - alpha_v = in__.vector(k); - Eigen::Matrix beta; - beta = Eigen::Matrix(k); - stan::math::fill(beta, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - beta = in__.vector(k); - Eigen::Matrix cuts; - cuts = Eigen::Matrix(k); - stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - cuts = in__.vector(k); - double sigma; - sigma = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - sigma = in__.scalar(); - current_statement__ = 4; - sigma = stan::math::lb_constrain(sigma, 0); - double alpha; - alpha = std::numeric_limits::quiet_NaN(); - - current_statement__ = 5; - alpha = in__.scalar(); - double phi; - phi = std::numeric_limits::quiet_NaN(); - - current_statement__ = 6; - phi = in__.scalar(); - Eigen::Matrix X_p; - X_p = Eigen::Matrix(n, k); - stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); - - current_statement__ = 7; - X_p = in__.matrix(n, k); - Eigen::Matrix beta_m; - beta_m = Eigen::Matrix(n, k); - stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); - - current_statement__ = 8; - beta_m = in__.matrix(n, k); - Eigen::Matrix X_rv_p; - X_rv_p = Eigen::Matrix(n); - stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 1; + assign(y1, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable y1");} + std::vector y2; + y2 = std::vector(N, std::numeric_limits::quiet_NaN()); - current_statement__ = 9; - X_rv_p = in__.row_vector(n); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(alpha_v[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(beta[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(cuts[(sym1__ - 1)]);} - vars__.emplace_back(sigma); - vars__.emplace_back(alpha); - vars__.emplace_back(phi); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(X_p, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), "X_p"));}} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(beta_m, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), "beta_m"));} - } - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - vars__.emplace_back(X_rv_p[(sym1__ - 1)]);} + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 2; + assign(y2, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable y2");} + std::vector y3; + y3 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 3; + assign(y3, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable y3");} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y2[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y3[(sym1__ - 1)]);} if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; @@ -19440,172 +20536,30 @@ class optimize_glm_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - Eigen::Matrix alpha_v; - alpha_v = Eigen::Matrix(k); - stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); - - { - std::vector alpha_v_flat__; - current_statement__ = 1; - assign(alpha_v_flat__, nil_index_list(), context__.vals_r("alpha_v"), - "assigning variable alpha_v_flat__"); - current_statement__ = 1; - pos__ = 1; - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 1; - assign(alpha_v, cons_list(index_uni(sym1__), nil_index_list()), - alpha_v_flat__[(pos__ - 1)], "assigning variable alpha_v"); - current_statement__ = 1; - pos__ = (pos__ + 1);} - } - Eigen::Matrix beta; - beta = Eigen::Matrix(k); - stan::math::fill(beta, std::numeric_limits::quiet_NaN()); - - { - std::vector beta_flat__; - current_statement__ = 2; - assign(beta_flat__, nil_index_list(), context__.vals_r("beta"), - "assigning variable beta_flat__"); - current_statement__ = 2; - pos__ = 1; - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 2; - assign(beta, cons_list(index_uni(sym1__), nil_index_list()), - beta_flat__[(pos__ - 1)], "assigning variable beta"); - current_statement__ = 2; - pos__ = (pos__ + 1);} - } - Eigen::Matrix cuts; - cuts = Eigen::Matrix(k); - stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); - - { - std::vector cuts_flat__; - current_statement__ = 3; - assign(cuts_flat__, nil_index_list(), context__.vals_r("cuts"), - "assigning variable cuts_flat__"); - current_statement__ = 3; - pos__ = 1; - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 3; - assign(cuts, cons_list(index_uni(sym1__), nil_index_list()), - cuts_flat__[(pos__ - 1)], "assigning variable cuts"); - current_statement__ = 3; - pos__ = (pos__ + 1);} - } - double sigma; - sigma = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - sigma = context__.vals_r("sigma")[(1 - 1)]; - double sigma_free__; - sigma_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - sigma_free__ = stan::math::lb_free(sigma, 0); - double alpha; - alpha = std::numeric_limits::quiet_NaN(); - - current_statement__ = 5; - alpha = context__.vals_r("alpha")[(1 - 1)]; - double phi; - phi = std::numeric_limits::quiet_NaN(); - - current_statement__ = 6; - phi = context__.vals_r("phi")[(1 - 1)]; - Eigen::Matrix X_p; - X_p = Eigen::Matrix(n, k); - stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); - { - std::vector X_p_flat__; - current_statement__ = 7; - assign(X_p_flat__, nil_index_list(), context__.vals_r("X_p"), - "assigning variable X_p_flat__"); - current_statement__ = 7; - pos__ = 1; - current_statement__ = 7; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 7; - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - current_statement__ = 7; - assign(X_p, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - X_p_flat__[(pos__ - 1)], "assigning variable X_p"); - current_statement__ = 7; - pos__ = (pos__ + 1);}} - } - Eigen::Matrix beta_m; - beta_m = Eigen::Matrix(n, k); - stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); + current_statement__ = 1; + assign(y1, nil_index_list(), context__.vals_r("y1"), + "assigning variable y1"); + std::vector y2; + y2 = std::vector(N, std::numeric_limits::quiet_NaN()); - { - std::vector beta_m_flat__; - current_statement__ = 8; - assign(beta_m_flat__, nil_index_list(), context__.vals_r("beta_m"), - "assigning variable beta_m_flat__"); - current_statement__ = 8; - pos__ = 1; - current_statement__ = 8; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 8; - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - current_statement__ = 8; - assign(beta_m, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - beta_m_flat__[(pos__ - 1)], "assigning variable beta_m"); - current_statement__ = 8; - pos__ = (pos__ + 1);}} - } - Eigen::Matrix X_rv_p; - X_rv_p = Eigen::Matrix(n); - stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); + current_statement__ = 2; + assign(y2, nil_index_list(), context__.vals_r("y2"), + "assigning variable y2"); + std::vector y3; + y3 = std::vector(N, std::numeric_limits::quiet_NaN()); - { - std::vector X_rv_p_flat__; - current_statement__ = 9; - assign(X_rv_p_flat__, nil_index_list(), context__.vals_r("X_rv_p"), - "assigning variable X_rv_p_flat__"); - current_statement__ = 9; - pos__ = 1; - current_statement__ = 9; - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - current_statement__ = 9; - assign(X_rv_p, cons_list(index_uni(sym1__), nil_index_list()), - X_rv_p_flat__[(pos__ - 1)], "assigning variable X_rv_p"); - current_statement__ = 9; - pos__ = (pos__ + 1);} - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(alpha_v[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(beta[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(cuts[(sym1__ - 1)]);} - vars__.emplace_back(sigma_free__); - vars__.emplace_back(alpha); - vars__.emplace_back(phi); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(X_p, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), "X_p"));}} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(beta_m, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), "beta_m"));} - } - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - vars__.emplace_back(X_rv_p[(sym1__ - 1)]);} + current_statement__ = 3; + assign(y3, nil_index_list(), context__.vals_r("y3"), + "assigning variable y3"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y2[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y3[(sym1__ - 1)]);} } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -19616,39 +20570,19 @@ class optimize_glm_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { names__.clear(); - names__.emplace_back("alpha_v"); - names__.emplace_back("beta"); - names__.emplace_back("cuts"); - names__.emplace_back("sigma"); - names__.emplace_back("alpha"); - names__.emplace_back("phi"); - names__.emplace_back("X_p"); - names__.emplace_back("beta_m"); - names__.emplace_back("X_rv_p"); + names__.emplace_back("y1"); + names__.emplace_back("y2"); + names__.emplace_back("y3"); } // get_param_names() inline void get_dims(std::vector>& dimss__) const final { dimss__.clear(); - dimss__.emplace_back(std::vector{static_cast(k)}); - - dimss__.emplace_back(std::vector{static_cast(k)}); - - dimss__.emplace_back(std::vector{static_cast(k)}); - - dimss__.emplace_back(std::vector{}); - - dimss__.emplace_back(std::vector{}); - - dimss__.emplace_back(std::vector{}); - - dimss__.emplace_back(std::vector{static_cast(n), - static_cast(k)}); + dimss__.emplace_back(std::vector{static_cast(N)}); - dimss__.emplace_back(std::vector{static_cast(n), - static_cast(k)}); + dimss__.emplace_back(std::vector{static_cast(N)}); - dimss__.emplace_back(std::vector{static_cast(n)}); + dimss__.emplace_back(std::vector{static_cast(N)}); } // get_dims() @@ -19658,38 +20592,17 @@ class optimize_glm_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); - }} - param_names__.emplace_back(std::string() + "sigma"); - param_names__.emplace_back(std::string() + "alpha"); - param_names__.emplace_back(std::string() + "phi"); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - }} + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); }} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - }} + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); }} - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); }} if (emit_transformed_parameters__) { @@ -19707,1000 +20620,798 @@ class optimize_glm_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); - }} - param_names__.emplace_back(std::string() + "sigma"); - param_names__.emplace_back(std::string() + "alpha"); - param_names__.emplace_back(std::string() + "phi"); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - }} + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); }} - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - }} + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); }} - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); }} if (emit_transformed_parameters__) { } if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - stringstream s__; - s__ << "[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" << n << "},\"block\":\"parameters\"}]"; - return s__.str(); - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - stringstream s__; - s__ << "[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" << k << "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" << n << ",\"cols\":" << k << "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" << n << "},\"block\":\"parameters\"}]"; - return s__.str(); - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng__, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true, - std::ostream* pstream = nullptr) const { - std::vector params_r_vec(params_r.size()); - for (int i = 0; i < params_r.size(); ++i) - params_r_vec[i] = params_r(i); - std::vector vars_vec; - std::vector params_i_vec; - write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, - emit_transformed_parameters__, emit_generated_quantities__, pstream); - vars.resize(vars_vec.size()); - for (int i = 0; i < vars.size(); ++i) - vars(i) = vars_vec[i]; - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - std::vector vec_params_r; - vec_params_r.reserve(params_r.size()); - for (int i = 0; i < params_r.size(); ++i) - vec_params_r.push_back(params_r(i)); - std::vector vec_params_i; - return log_prob(vec_params_r, vec_params_i, pstream); - } - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream__ = nullptr) const { - std::vector params_r_vec; - std::vector params_i_vec; - transform_inits(context, params_i_vec, params_r_vec, pstream__); - params_r.resize(params_r_vec.size()); - for (int i = 0; i < params_r.size(); ++i) - params_r(i) = params_r_vec[i]; - } - -}; -} -using stan_model = optimize_glm_model_namespace::optimize_glm_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp reduce_sum_m1.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace reduce_sum_m1_model_namespace { - - -inline void validate_positive_index(const char* var_name, const char* expr, - int val) { - if (val < 1) { - std::stringstream msg; - msg << "Found dimension size less than one in simplex declaration" - << "; variable=" << var_name << "; dimension size expression=" << expr - << "; expression value=" << val; - std::string msg_str(msg.str()); - throw std::invalid_argument(msg_str.c_str()); - } -} - -inline void validate_unit_vector_index(const char* var_name, const char* expr, - int val) { - if (val <= 1) { - std::stringstream msg; - if (val == 1) { - msg << "Found dimension size one in unit vector declaration." - << " One-dimensional unit vector is discrete" - << " but the target distribution must be continuous." - << " variable=" << var_name << "; dimension size expression=" << expr; - } else { - msg << "Found dimension size less than one in unit vector declaration" - << "; variable=" << var_name << "; dimension size expression=" << expr - << "; expression value=" << val; - } - std::string msg_str(msg.str()); - throw std::invalid_argument(msg_str.c_str()); - } -} - - -using std::istream; -using std::string; -using std::stringstream; -using std::vector; -using std::pow; -using stan::io::dump; -using stan::math::lgamma; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using stan::model::cons_list; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::nil_index_list; -using namespace stan::math; -using stan::math::pow; - -static int current_statement__ = 0; -static const std::vector locations_array__ = {" (found before start of program)", - " (in 'reduce_sum_m1.stan', line 26, column 2 to column 13)", - " (in 'reduce_sum_m1.stan', line 27, column 2 to column 13)", - " (in 'reduce_sum_m1.stan', line 28, column 2 to column 13)", - " (in 'reduce_sum_m1.stan', line 32, column 2 to column 33)", - " (in 'reduce_sum_m1.stan', line 33, column 2 to column 37)", - " (in 'reduce_sum_m1.stan', line 34, column 2 to column 40)", - " (in 'reduce_sum_m1.stan', line 35, column 2 to column 41)", - " (in 'reduce_sum_m1.stan', line 22, column 2 to column 14)", - " (in 'reduce_sum_m1.stan', line 26, column 10 to column 11)", - " (in 'reduce_sum_m1.stan', line 27, column 10 to column 11)", - " (in 'reduce_sum_m1.stan', line 28, column 10 to column 11)", - " (in 'reduce_sum_m1.stan', line 6, column 6 to column 41)", - " (in 'reduce_sum_m1.stan', line 5, column 11 to line 7, column 5)", - " (in 'reduce_sum_m1.stan', line 4, column 6 to column 39)", - " (in 'reduce_sum_m1.stan', line 3, column 26 to line 5, column 5)", - " (in 'reduce_sum_m1.stan', line 3, column 4 to line 7, column 5)", - " (in 'reduce_sum_m1.stan', line 2, column 45 to line 8, column 3)", - " (in 'reduce_sum_m1.stan', line 13, column 6 to column 35)", - " (in 'reduce_sum_m1.stan', line 12, column 11 to line 14, column 5)", - " (in 'reduce_sum_m1.stan', line 11, column 6 to column 53)", - " (in 'reduce_sum_m1.stan', line 10, column 20 to line 12, column 5)", - " (in 'reduce_sum_m1.stan', line 10, column 4 to line 14, column 5)", - " (in 'reduce_sum_m1.stan', line 9, column 55 to line 15, column 3)", - " (in 'reduce_sum_m1.stan', line 17, column 4 to column 38)", - " (in 'reduce_sum_m1.stan', line 16, column 52 to line 18, column 3)"}; - -struct g_rsfunctor__; -struct h_rsfunctor__; -template -struct foo_lpdf_rsfunctor__; -template -stan::promote_args_t -g(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 16; - if (logical_gt(size(y_slice), 1)) { - current_statement__ = 14; - return reduce_sum(y_slice, 1, pstream__); - } else { - current_statement__ = 12; - return normal_lpdf(y_slice, 0, 1); + } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + -} - -struct g_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g(y_slice, start, end, pstream__); -} -}; - + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng__, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream = nullptr) const { + std::vector params_r_vec(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r_vec[i] = params_r(i); + std::vector vars_vec; + std::vector params_i_vec; + write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, + emit_transformed_parameters__, emit_generated_quantities__, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) + vars(i) = vars_vec[i]; + } -struct g_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g(y_slice, start + 1, end + 1, pstream__); -} -}; + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + std::vector vec_params_r; + vec_params_r.reserve(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + vec_params_r.push_back(params_r(i)); + std::vector vec_params_i; + return log_prob(vec_params_r, vec_params_i, pstream); + } -template -stan::promote_args_t -h(const std::vector& y_slice, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 22; - if (logical_gt(size(a), 1)) { - current_statement__ = 20; - return reduce_sum(y_slice, 1, pstream__, - rvalue(a, - cons_list(index_min_max(start, end), nil_index_list()), "a")); - } else { - current_statement__ = 18; - return normal_lpdf(a, 0, 1); + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream__ = nullptr) const { + std::vector params_r_vec; + std::vector params_i_vec; + transform_inits(context, params_i_vec, params_r_vec, pstream__); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r(i) = params_r_vec[i]; } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -struct h_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const -{ -return h(y_slice, start, end, a, pstream__); -} }; +} +using stan_model = reduce_sum_m1_model_namespace::reduce_sum_m1_model; +#ifndef USING_R -struct h_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const -{ -return h(y_slice, start + 1, end + 1, a, pstream__); +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; } -}; -template -stan::promote_args_t -foo_lpdf(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 24; - return normal_lpdf(y_slice, 0, 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} +#endif -struct foo_lpdf_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return foo_lpdf(y_slice, start, end, pstream__); -} -}; -template -struct foo_lpdf_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return foo_lpdf(y_slice, start + 1, end + 1, pstream__); -} -}; + $ ../../../../../install/default/bin/stanc --print-cpp reduce_sum_m2.stan -class reduce_sum_m1_model final : public model_base_crtp { +// Code generated by %%NAME%% %%VERSION%% +#include +namespace reduce_sum_m2_model_namespace { - private: - int N; - - public: - ~reduce_sum_m1_model() final { } - - std::string model_name() const final { return "reduce_sum_m1_model"; } - std::vector model_compile_info() const { - std::vector stanc_info; - stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); - stanc_info.push_back("stancflags = --print-cpp"); - return stanc_info; +inline void validate_positive_index(const char* var_name, const char* expr, + int val) { + if (val < 1) { + std::stringstream msg; + msg << "Found dimension size less than one in simplex declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); } - - - reduce_sum_m1_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static const char* function__ = "reduce_sum_m1_model_namespace::reduce_sum_m1_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 8; - N = std::numeric_limits::min(); - - current_statement__ = 8; - N = 100; - current_statement__ = 9; - validate_non_negative_index("y1", "N", N); - current_statement__ = 10; - validate_non_negative_index("y2", "N", N); - current_statement__ = 11; - validate_non_negative_index("y3", "N", N); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 0U; - - try { - num_params_r__ += N; - num_params_r__ += N; - num_params_r__ += N; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); +} + +inline void validate_unit_vector_index(const char* var_name, const char* expr, + int val) { + if (val <= 1) { + std::stringstream msg; + if (val == 1) { + msg << "Found dimension size one in unit vector declaration." + << " One-dimensional unit vector is discrete" + << " but the target distribution must be continuous." + << " variable=" << var_name << "; dimension size expression=" << expr; + } else { + msg << "Found dimension size less than one in unit vector declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; } + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); } - template - inline T__ log_prob(std::vector& params_r__, - std::vector& params_i__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - static const char* function__ = "reduce_sum_m1_model_namespace::log_prob"; -(void) function__; // suppress unused var warning +} - stan::io::reader in__(params_r__, params_i__); - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - std::vector y1; - y1 = std::vector(N, DUMMY_VAR__); - - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 1; - assign(y1, cons_list(index_uni(sym1__), nil_index_list()), - in__.scalar(), "assigning variable y1");} - std::vector y2; - y2 = std::vector(N, DUMMY_VAR__); - - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 2; - assign(y2, cons_list(index_uni(sym1__), nil_index_list()), - in__.scalar(), "assigning variable y2");} - std::vector y3; - y3 = std::vector(N, DUMMY_VAR__); - - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 3; - assign(y3, cons_list(index_uni(sym1__), nil_index_list()), - in__.scalar(), "assigning variable y3");} - { - current_statement__ = 4; - lp_accum__.add(reduce_sum(y1, 1, pstream__)); - current_statement__ = 5; - lp_accum__.add(reduce_sum(y2, 1, pstream__, y2)); - current_statement__ = 6; - lp_accum__.add( - reduce_sum>(y3, 1, pstream__)); - current_statement__ = 7; - lp_accum__.add( - reduce_sum>(y3, 1, pstream__)); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob() - - template - inline void write_array(RNG& base_rng__, std::vector& params_r__, - std::vector& params_i__, - std::vector& vars__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::reader in__(params_r__, params_i__); - static const char* function__ = "reduce_sum_m1_model_namespace::write_array"; -(void) function__; // suppress unused var warning +using std::istream; +using std::string; +using std::stringstream; +using std::vector; +using std::pow; +using stan::io::dump; +using stan::math::lgamma; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; +using stan::math::pow; + +static int current_statement__ = 0; +static const std::vector locations_array__ = {" (found before start of program)", + " (in 'reduce_sum_m2.stan', line 130, column 2 to column 24)", + " (in 'reduce_sum_m2.stan', line 131, column 2 to column 25)", + " (in 'reduce_sum_m2.stan', line 132, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 133, column 2 to column 16)", + " (in 'reduce_sum_m2.stan', line 134, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 135, column 2 to column 22)", + " (in 'reduce_sum_m2.stan', line 136, column 2 to column 18)", + " (in 'reduce_sum_m2.stan', line 137, column 2 to column 13)", + " (in 'reduce_sum_m2.stan', line 139, column 2 to column 24)", + " (in 'reduce_sum_m2.stan', line 140, column 2 to column 25)", + " (in 'reduce_sum_m2.stan', line 141, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 142, column 2 to column 16)", + " (in 'reduce_sum_m2.stan', line 143, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 144, column 2 to column 22)", + " (in 'reduce_sum_m2.stan', line 145, column 2 to column 18)", + " (in 'reduce_sum_m2.stan', line 146, column 2 to column 13)", + " (in 'reduce_sum_m2.stan', line 150, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 151, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 152, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 153, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 154, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 155, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 156, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 157, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 159, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 160, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 161, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 162, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 163, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 164, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 165, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 166, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 125, column 2 to column 12)", + " (in 'reduce_sum_m2.stan', line 126, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 126, column 2 to column 12)", + " (in 'reduce_sum_m2.stan', line 130, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 130, column 21 to column 22)", + " (in 'reduce_sum_m2.stan', line 130, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 130, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 131, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 131, column 22 to column 23)", + " (in 'reduce_sum_m2.stan', line 131, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 132, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 132, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 132, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 133, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 133, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 134, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 134, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 134, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 135, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 135, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 136, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 136, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 137, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 139, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 139, column 21 to column 22)", + " (in 'reduce_sum_m2.stan', line 139, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 139, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 140, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 140, column 22 to column 23)", + " (in 'reduce_sum_m2.stan', line 140, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 141, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 141, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 141, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 142, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 142, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 143, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 143, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 143, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 144, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 144, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 145, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 145, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 146, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 3, column 4 to column 39)", + " (in 'reduce_sum_m2.stan', line 2, column 46 to line 4, column 3)", + " (in 'reduce_sum_m2.stan', line 6, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 8, column 6 to column 49)", + " (in 'reduce_sum_m2.stan', line 7, column 30 to line 9, column 5)", + " (in 'reduce_sum_m2.stan', line 7, column 4 to line 9, column 5)", + " (in 'reduce_sum_m2.stan', line 10, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 5, column 48 to line 11, column 3)", + " (in 'reduce_sum_m2.stan', line 13, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 15, column 6 to column 49)", + " (in 'reduce_sum_m2.stan', line 14, column 30 to line 16, column 5)", + " (in 'reduce_sum_m2.stan', line 14, column 4 to line 16, column 5)", + " (in 'reduce_sum_m2.stan', line 17, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 12, column 52 to line 18, column 3)", + " (in 'reduce_sum_m2.stan', line 20, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 22, column 6 to column 60)", + " (in 'reduce_sum_m2.stan', line 21, column 30 to line 23, column 5)", + " (in 'reduce_sum_m2.stan', line 21, column 4 to line 23, column 5)", + " (in 'reduce_sum_m2.stan', line 24, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 19, column 48 to line 25, column 3)", + " (in 'reduce_sum_m2.stan', line 27, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 30, column 8 to column 54)", + " (in 'reduce_sum_m2.stan', line 29, column 35 to line 31, column 7)", + " (in 'reduce_sum_m2.stan', line 29, column 6 to line 31, column 7)", + " (in 'reduce_sum_m2.stan', line 28, column 30 to line 32, column 5)", + " (in 'reduce_sum_m2.stan', line 28, column 4 to line 32, column 5)", + " (in 'reduce_sum_m2.stan', line 33, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 26, column 47 to line 34, column 3)", + " (in 'reduce_sum_m2.stan', line 36, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 39, column 8 to column 65)", + " (in 'reduce_sum_m2.stan', line 38, column 35 to line 40, column 7)", + " (in 'reduce_sum_m2.stan', line 38, column 6 to line 40, column 7)", + " (in 'reduce_sum_m2.stan', line 37, column 30 to line 41, column 5)", + " (in 'reduce_sum_m2.stan', line 37, column 4 to line 41, column 5)", + " (in 'reduce_sum_m2.stan', line 42, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 35, column 49 to line 43, column 3)", + " (in 'reduce_sum_m2.stan', line 45, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 48, column 8 to column 65)", + " (in 'reduce_sum_m2.stan', line 47, column 35 to line 49, column 7)", + " (in 'reduce_sum_m2.stan', line 47, column 6 to line 49, column 7)", + " (in 'reduce_sum_m2.stan', line 46, column 30 to line 50, column 5)", + " (in 'reduce_sum_m2.stan', line 46, column 4 to line 50, column 5)", + " (in 'reduce_sum_m2.stan', line 51, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 44, column 53 to line 52, column 3)", + " (in 'reduce_sum_m2.stan', line 54, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 57, column 8 to column 65)", + " (in 'reduce_sum_m2.stan', line 56, column 35 to line 58, column 7)", + " (in 'reduce_sum_m2.stan', line 56, column 6 to line 58, column 7)", + " (in 'reduce_sum_m2.stan', line 55, column 30 to line 59, column 5)", + " (in 'reduce_sum_m2.stan', line 55, column 4 to line 59, column 5)", + " (in 'reduce_sum_m2.stan', line 60, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 53, column 49 to line 61, column 3)", + " (in 'reduce_sum_m2.stan', line 63, column 4 to column 44)", + " (in 'reduce_sum_m2.stan', line 62, column 50 to line 64, column 3)", + " (in 'reduce_sum_m2.stan', line 66, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 68, column 6 to column 43)", + " (in 'reduce_sum_m2.stan', line 67, column 24 to line 69, column 5)", + " (in 'reduce_sum_m2.stan', line 67, column 4 to line 69, column 5)", + " (in 'reduce_sum_m2.stan', line 70, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 65, column 52 to line 71, column 3)", + " (in 'reduce_sum_m2.stan', line 73, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 75, column 6 to column 43)", + " (in 'reduce_sum_m2.stan', line 74, column 24 to line 76, column 5)", + " (in 'reduce_sum_m2.stan', line 74, column 4 to line 76, column 5)", + " (in 'reduce_sum_m2.stan', line 77, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 72, column 56 to line 78, column 3)", + " (in 'reduce_sum_m2.stan', line 80, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 82, column 6 to column 54)", + " (in 'reduce_sum_m2.stan', line 81, column 24 to line 83, column 5)", + " (in 'reduce_sum_m2.stan', line 81, column 4 to line 83, column 5)", + " (in 'reduce_sum_m2.stan', line 84, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 79, column 52 to line 85, column 3)", + " (in 'reduce_sum_m2.stan', line 87, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 90, column 8 to column 48)", + " (in 'reduce_sum_m2.stan', line 89, column 29 to line 91, column 7)", + " (in 'reduce_sum_m2.stan', line 89, column 6 to line 91, column 7)", + " (in 'reduce_sum_m2.stan', line 88, column 24 to line 92, column 5)", + " (in 'reduce_sum_m2.stan', line 88, column 4 to line 92, column 5)", + " (in 'reduce_sum_m2.stan', line 93, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 86, column 51 to line 94, column 3)", + " (in 'reduce_sum_m2.stan', line 96, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 99, column 8 to column 59)", + " (in 'reduce_sum_m2.stan', line 98, column 29 to line 100, column 7)", + " (in 'reduce_sum_m2.stan', line 98, column 6 to line 100, column 7)", + " (in 'reduce_sum_m2.stan', line 97, column 24 to line 101, column 5)", + " (in 'reduce_sum_m2.stan', line 97, column 4 to line 101, column 5)", + " (in 'reduce_sum_m2.stan', line 102, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 95, column 53 to line 103, column 3)", + " (in 'reduce_sum_m2.stan', line 105, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 108, column 8 to column 59)", + " (in 'reduce_sum_m2.stan', line 107, column 29 to line 109, column 7)", + " (in 'reduce_sum_m2.stan', line 107, column 6 to line 109, column 7)", + " (in 'reduce_sum_m2.stan', line 106, column 24 to line 110, column 5)", + " (in 'reduce_sum_m2.stan', line 106, column 4 to line 110, column 5)", + " (in 'reduce_sum_m2.stan', line 111, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 104, column 57 to line 112, column 3)", + " (in 'reduce_sum_m2.stan', line 114, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 117, column 8 to column 59)", + " (in 'reduce_sum_m2.stan', line 116, column 29 to line 118, column 7)", + " (in 'reduce_sum_m2.stan', line 116, column 6 to line 118, column 7)", + " (in 'reduce_sum_m2.stan', line 115, column 24 to line 119, column 5)", + " (in 'reduce_sum_m2.stan', line 115, column 4 to line 119, column 5)", + " (in 'reduce_sum_m2.stan', line 120, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 113, column 53 to line 121, column 3)"}; - (void) function__; // suppress unused var warning +template +stan::promote_args_t +g1(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning +struct g1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g1(y_slice, start + 1, end + 1, pstream__); +} +}; - - try { - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 1; - assign(y1, cons_list(index_uni(sym1__), nil_index_list()), - in__.scalar(), "assigning variable y1");} - std::vector y2; - y2 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 2; - assign(y2, cons_list(index_uni(sym1__), nil_index_list()), - in__.scalar(), "assigning variable y2");} - std::vector y3; - y3 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 3; - assign(y3, cons_list(index_uni(sym1__), nil_index_list()), - in__.scalar(), "assigning variable y3");} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y2[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y3[(sym1__ - 1)]);} - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array() - - inline void transform_inits(const stan::io::var_context& context__, - std::vector& params_i__, - std::vector& vars__, - std::ostream* pstream__) const - final { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - assign(y1, nil_index_list(), context__.vals_r("y1"), - "assigning variable y1"); - std::vector y2; - y2 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - assign(y2, nil_index_list(), context__.vals_r("y2"), - "assigning variable y2"); - std::vector y3; - y3 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - assign(y3, nil_index_list(), context__.vals_r("y3"), - "assigning variable y3"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y2[(sym1__ - 1)]);} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y3[(sym1__ - 1)]);} - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits() - - inline void get_param_names(std::vector& names__) const { - - names__.clear(); - names__.emplace_back("y1"); - names__.emplace_back("y2"); - names__.emplace_back("y3"); - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const - final { - dimss__.clear(); - dimss__.emplace_back(std::vector{static_cast(N)}); - - dimss__.emplace_back(std::vector{static_cast(N)}); - - dimss__.emplace_back(std::vector{static_cast(N)}); - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); - }} - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); - }} - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); - }} - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - stringstream s__; - s__ << "[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"; - return s__.str(); - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - stringstream s__; - s__ << "[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"; - return s__.str(); - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng__, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true, - std::ostream* pstream = nullptr) const { - std::vector params_r_vec(params_r.size()); - for (int i = 0; i < params_r.size(); ++i) - params_r_vec[i] = params_r(i); - std::vector vars_vec; - std::vector params_i_vec; - write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, - emit_transformed_parameters__, emit_generated_quantities__, pstream); - vars.resize(vars_vec.size()); - for (int i = 0; i < vars.size(); ++i) - vars(i) = vars_vec[i]; - } - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - std::vector vec_params_r; - vec_params_r.reserve(params_r.size()); - for (int i = 0; i < params_r.size(); ++i) - vec_params_r.push_back(params_r(i)); - std::vector vec_params_i; - return log_prob(vec_params_r, vec_params_i, pstream); - } +struct g1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g1(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g2(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct g2_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g2(y_slice, start + 1, end + 1, pstream__); +} +}; + - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream__ = nullptr) const { - std::vector params_r_vec; - std::vector params_i_vec; - transform_inits(context, params_i_vec, params_r_vec, pstream__); - params_r.resize(params_r_vec.size()); - for (int i = 0; i < params_r.size(); ++i) - params_r(i) = params_r_vec[i]; - } +struct g2_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g2(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g3(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; +struct g3_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g3(y_slice, start + 1, end + 1, pstream__); +} }; + + +struct g3_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g3(y_slice, start, end, pstream__); } -using stan_model = reduce_sum_m1_model_namespace::reduce_sum_m1_model; +}; -#ifndef USING_R +template +stan::promote_args_t +g4(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; +struct g4_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g4(y_slice, start + 1, end + 1, pstream__); } +}; -#endif +struct g4_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g4(y_slice, start, end, pstream__); +} +}; +template +stan::promote_args_t +g5(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; - $ ../../../../../install/default/bin/stanc --print-cpp reduce_sum_m2.stan +struct g5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g5(y_slice, start + 1, end + 1, pstream__); +} +}; -// Code generated by %%NAME%% %%VERSION%% -#include -namespace reduce_sum_m2_model_namespace { +struct g5_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g5(y_slice, start, end, pstream__); +} +}; -inline void validate_positive_index(const char* var_name, const char* expr, - int val) { - if (val < 1) { - std::stringstream msg; - msg << "Found dimension size less than one in simplex declaration" - << "; variable=" << var_name << "; dimension size expression=" << expr - << "; expression value=" << val; - std::string msg_str(msg.str()); - throw std::invalid_argument(msg_str.c_str()); - } +template +stan::promote_args_t +g6(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct g6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g6(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g6_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g6(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g7(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct g7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g7(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g7_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g7(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g8(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct g8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g8(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g8_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g8(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +h1(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) ; + +struct h1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, const std::vector& a) const +{ +return h1(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) const +{ +return h1(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h2(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct h2_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>& a) const +{ +return h2(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h2_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, + std::ostream* pstream__) const +{ +return h2(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h3(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct h3_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>& a) const +{ +return h3(y, start + 1, end + 1, a, pstream__); } +}; -inline void validate_unit_vector_index(const char* var_name, const char* expr, - int val) { - if (val <= 1) { - std::stringstream msg; - if (val == 1) { - msg << "Found dimension size one in unit vector declaration." - << " One-dimensional unit vector is discrete" - << " but the target distribution must be continuous." - << " variable=" << var_name << "; dimension size expression=" << expr; - } else { - msg << "Found dimension size less than one in unit vector declaration" - << "; variable=" << var_name << "; dimension size expression=" << expr - << "; expression value=" << val; - } - std::string msg_str(msg.str()); - throw std::invalid_argument(msg_str.c_str()); - } + +struct h3_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, + std::ostream* pstream__) const +{ +return h3(y, start, end, a, pstream__); } +}; +template +stan::promote_args_t +h4(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; -using std::istream; -using std::string; -using std::stringstream; -using std::vector; -using std::pow; -using stan::io::dump; -using stan::math::lgamma; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using stan::model::cons_list; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::nil_index_list; -using namespace stan::math; -using stan::math::pow; +struct h4_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>& a) const +{ +return h4(y, start + 1, end + 1, a, pstream__); +} +}; -static int current_statement__ = 0; -static const std::vector locations_array__ = {" (found before start of program)", - " (in 'reduce_sum_m2.stan', line 130, column 2 to column 24)", - " (in 'reduce_sum_m2.stan', line 131, column 2 to column 25)", - " (in 'reduce_sum_m2.stan', line 132, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 133, column 2 to column 16)", - " (in 'reduce_sum_m2.stan', line 134, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 135, column 2 to column 22)", - " (in 'reduce_sum_m2.stan', line 136, column 2 to column 18)", - " (in 'reduce_sum_m2.stan', line 137, column 2 to column 13)", - " (in 'reduce_sum_m2.stan', line 139, column 2 to column 24)", - " (in 'reduce_sum_m2.stan', line 140, column 2 to column 25)", - " (in 'reduce_sum_m2.stan', line 141, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 142, column 2 to column 16)", - " (in 'reduce_sum_m2.stan', line 143, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 144, column 2 to column 22)", - " (in 'reduce_sum_m2.stan', line 145, column 2 to column 18)", - " (in 'reduce_sum_m2.stan', line 146, column 2 to column 13)", - " (in 'reduce_sum_m2.stan', line 150, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 151, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 152, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 153, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 154, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 155, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 156, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 157, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 159, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 160, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 161, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 162, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 163, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 164, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 165, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 166, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 125, column 2 to column 12)", - " (in 'reduce_sum_m2.stan', line 126, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 126, column 2 to column 12)", - " (in 'reduce_sum_m2.stan', line 130, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 130, column 21 to column 22)", - " (in 'reduce_sum_m2.stan', line 130, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 130, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 131, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 131, column 22 to column 23)", - " (in 'reduce_sum_m2.stan', line 131, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 132, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 132, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 132, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 133, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 133, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 134, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 134, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 134, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 135, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 135, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 136, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 136, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 137, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 139, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 139, column 21 to column 22)", - " (in 'reduce_sum_m2.stan', line 139, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 139, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 140, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 140, column 22 to column 23)", - " (in 'reduce_sum_m2.stan', line 140, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 141, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 141, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 141, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 142, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 142, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 143, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 143, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 143, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 144, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 144, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 145, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 145, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 146, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 3, column 4 to column 39)", - " (in 'reduce_sum_m2.stan', line 2, column 46 to line 4, column 3)", - " (in 'reduce_sum_m2.stan', line 6, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 8, column 6 to column 49)", - " (in 'reduce_sum_m2.stan', line 7, column 30 to line 9, column 5)", - " (in 'reduce_sum_m2.stan', line 7, column 4 to line 9, column 5)", - " (in 'reduce_sum_m2.stan', line 10, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 5, column 48 to line 11, column 3)", - " (in 'reduce_sum_m2.stan', line 13, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 15, column 6 to column 49)", - " (in 'reduce_sum_m2.stan', line 14, column 30 to line 16, column 5)", - " (in 'reduce_sum_m2.stan', line 14, column 4 to line 16, column 5)", - " (in 'reduce_sum_m2.stan', line 17, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 12, column 52 to line 18, column 3)", - " (in 'reduce_sum_m2.stan', line 20, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 22, column 6 to column 60)", - " (in 'reduce_sum_m2.stan', line 21, column 30 to line 23, column 5)", - " (in 'reduce_sum_m2.stan', line 21, column 4 to line 23, column 5)", - " (in 'reduce_sum_m2.stan', line 24, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 19, column 48 to line 25, column 3)", - " (in 'reduce_sum_m2.stan', line 27, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 30, column 8 to column 54)", - " (in 'reduce_sum_m2.stan', line 29, column 35 to line 31, column 7)", - " (in 'reduce_sum_m2.stan', line 29, column 6 to line 31, column 7)", - " (in 'reduce_sum_m2.stan', line 28, column 30 to line 32, column 5)", - " (in 'reduce_sum_m2.stan', line 28, column 4 to line 32, column 5)", - " (in 'reduce_sum_m2.stan', line 33, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 26, column 47 to line 34, column 3)", - " (in 'reduce_sum_m2.stan', line 36, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 39, column 8 to column 65)", - " (in 'reduce_sum_m2.stan', line 38, column 35 to line 40, column 7)", - " (in 'reduce_sum_m2.stan', line 38, column 6 to line 40, column 7)", - " (in 'reduce_sum_m2.stan', line 37, column 30 to line 41, column 5)", - " (in 'reduce_sum_m2.stan', line 37, column 4 to line 41, column 5)", - " (in 'reduce_sum_m2.stan', line 42, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 35, column 49 to line 43, column 3)", - " (in 'reduce_sum_m2.stan', line 45, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 48, column 8 to column 65)", - " (in 'reduce_sum_m2.stan', line 47, column 35 to line 49, column 7)", - " (in 'reduce_sum_m2.stan', line 47, column 6 to line 49, column 7)", - " (in 'reduce_sum_m2.stan', line 46, column 30 to line 50, column 5)", - " (in 'reduce_sum_m2.stan', line 46, column 4 to line 50, column 5)", - " (in 'reduce_sum_m2.stan', line 51, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 44, column 53 to line 52, column 3)", - " (in 'reduce_sum_m2.stan', line 54, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 57, column 8 to column 65)", - " (in 'reduce_sum_m2.stan', line 56, column 35 to line 58, column 7)", - " (in 'reduce_sum_m2.stan', line 56, column 6 to line 58, column 7)", - " (in 'reduce_sum_m2.stan', line 55, column 30 to line 59, column 5)", - " (in 'reduce_sum_m2.stan', line 55, column 4 to line 59, column 5)", - " (in 'reduce_sum_m2.stan', line 60, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 53, column 49 to line 61, column 3)", - " (in 'reduce_sum_m2.stan', line 63, column 4 to column 44)", - " (in 'reduce_sum_m2.stan', line 62, column 50 to line 64, column 3)", - " (in 'reduce_sum_m2.stan', line 66, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 68, column 6 to column 43)", - " (in 'reduce_sum_m2.stan', line 67, column 24 to line 69, column 5)", - " (in 'reduce_sum_m2.stan', line 67, column 4 to line 69, column 5)", - " (in 'reduce_sum_m2.stan', line 70, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 65, column 52 to line 71, column 3)", - " (in 'reduce_sum_m2.stan', line 73, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 75, column 6 to column 43)", - " (in 'reduce_sum_m2.stan', line 74, column 24 to line 76, column 5)", - " (in 'reduce_sum_m2.stan', line 74, column 4 to line 76, column 5)", - " (in 'reduce_sum_m2.stan', line 77, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 72, column 56 to line 78, column 3)", - " (in 'reduce_sum_m2.stan', line 80, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 82, column 6 to column 54)", - " (in 'reduce_sum_m2.stan', line 81, column 24 to line 83, column 5)", - " (in 'reduce_sum_m2.stan', line 81, column 4 to line 83, column 5)", - " (in 'reduce_sum_m2.stan', line 84, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 79, column 52 to line 85, column 3)", - " (in 'reduce_sum_m2.stan', line 87, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 90, column 8 to column 48)", - " (in 'reduce_sum_m2.stan', line 89, column 29 to line 91, column 7)", - " (in 'reduce_sum_m2.stan', line 89, column 6 to line 91, column 7)", - " (in 'reduce_sum_m2.stan', line 88, column 24 to line 92, column 5)", - " (in 'reduce_sum_m2.stan', line 88, column 4 to line 92, column 5)", - " (in 'reduce_sum_m2.stan', line 93, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 86, column 51 to line 94, column 3)", - " (in 'reduce_sum_m2.stan', line 96, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 99, column 8 to column 59)", - " (in 'reduce_sum_m2.stan', line 98, column 29 to line 100, column 7)", - " (in 'reduce_sum_m2.stan', line 98, column 6 to line 100, column 7)", - " (in 'reduce_sum_m2.stan', line 97, column 24 to line 101, column 5)", - " (in 'reduce_sum_m2.stan', line 97, column 4 to line 101, column 5)", - " (in 'reduce_sum_m2.stan', line 102, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 95, column 53 to line 103, column 3)", - " (in 'reduce_sum_m2.stan', line 105, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 108, column 8 to column 59)", - " (in 'reduce_sum_m2.stan', line 107, column 29 to line 109, column 7)", - " (in 'reduce_sum_m2.stan', line 107, column 6 to line 109, column 7)", - " (in 'reduce_sum_m2.stan', line 106, column 24 to line 110, column 5)", - " (in 'reduce_sum_m2.stan', line 106, column 4 to line 110, column 5)", - " (in 'reduce_sum_m2.stan', line 111, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 104, column 57 to line 112, column 3)", - " (in 'reduce_sum_m2.stan', line 114, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 117, column 8 to column 59)", - " (in 'reduce_sum_m2.stan', line 116, column 29 to line 118, column 7)", - " (in 'reduce_sum_m2.stan', line 116, column 6 to line 118, column 7)", - " (in 'reduce_sum_m2.stan', line 115, column 24 to line 119, column 5)", - " (in 'reduce_sum_m2.stan', line 115, column 4 to line 119, column 5)", - " (in 'reduce_sum_m2.stan', line 120, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 113, column 53 to line 121, column 3)"}; -struct g1_rsfunctor__; -struct g2_rsfunctor__; -struct g3_rsfunctor__; -struct g4_rsfunctor__; -struct g5_rsfunctor__; -struct g6_rsfunctor__; -struct g7_rsfunctor__; -struct g8_rsfunctor__; -struct h1_rsfunctor__; -struct h2_rsfunctor__; -struct h3_rsfunctor__; -struct h4_rsfunctor__; -struct h5_rsfunctor__; -struct h6_rsfunctor__; -struct h7_rsfunctor__; -struct h8_rsfunctor__; +struct h4_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, + std::ostream* pstream__) const +{ +return h4(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h5(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct h5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, const std::vector>& a) const +{ +return h5(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h5_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) const +{ +return h5(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h6(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct h6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>>& a) const +{ +return h6(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h6_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return h6(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h7(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct h7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>>& a) const +{ +return h7(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h7_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return h7(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h8(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct h8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>>& a) const +{ +return h8(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h8_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return h8(y, start, end, a, pstream__); +} +}; + template stan::promote_args_t g1(const std::vector& y_slice, const int& start, const int& end, @@ -20721,28 +21432,6 @@ g1(const std::vector& y_slice, const int& start, const int& end, } } - -struct g1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g1(y_slice, start, end, pstream__); -} -}; - - -struct g1_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g1(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t g2(const std::vector>& y_slice, const int& start, @@ -20772,28 +21461,6 @@ g2(const std::vector>& y_slice, const int& start, } } - -struct g2_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g2(y_slice, start, end, pstream__); -} -}; - - -struct g2_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g2(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t g3(const std::vector>& y_slice, const int& start, @@ -20823,28 +21490,6 @@ g3(const std::vector>& y_slice, const int& start, } } - -struct g3_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g3(y_slice, start, end, pstream__); -} -}; - - -struct g3_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g3(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t g4(const std::vector>& y_slice, const int& start, @@ -20875,28 +21520,6 @@ g4(const std::vector>& y_slice, const int& start, } } - -struct g4_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g4(y_slice, start, end, pstream__); -} -}; - - -struct g4_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g4(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t g5(const std::vector>& y_slice, const int& start, @@ -20929,28 +21552,6 @@ g5(const std::vector>& y_slice, const int& start, } } - -struct g5_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g5(y_slice, start, end, pstream__); -} -}; - - -struct g5_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g5(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t g6(const std::vector>>& y_slice, @@ -20975,37 +21576,15 @@ g6(const std::vector>>& y_slice, sum_lpdf = (sum_lpdf + normal_lpdf(to_vector(y_slice[(n - 1)][(m - 1)]), 0, 1));}} - current_statement__ = 110; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct g6_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g6(y_slice, start, end, pstream__); -} -}; - - -struct g6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g6(y_slice, start + 1, end + 1, pstream__); + current_statement__ = 110; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - template stan::promote_args_t g7(const std::vector>>& y_slice, @@ -21039,28 +21618,6 @@ g7(const std::vector>>& y_slice, } } - -struct g7_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g7(y_slice, start, end, pstream__); -} -}; - - -struct g7_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g7(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t g8(const std::vector>>& y_slice, @@ -21094,28 +21651,6 @@ g8(const std::vector>>& y_slice, } } - -struct g8_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g8(y_slice, start, end, pstream__); -} -}; - - -struct g8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g8(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t @@ -21140,30 +21675,6 @@ h1(const std::vector& y, const int& start, const int& end, } } - -struct h1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) const -{ -return h1(y, start, end, a, pstream__); -} -}; - - -struct h1_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, const std::vector& a) const -{ -return h1(y, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -21194,32 +21705,6 @@ h2(const std::vector& y, const int& start, const int& end, } } - -struct h2_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, - std::ostream* pstream__) const -{ -return h2(y, start, end, a, pstream__); -} -}; - - -struct h2_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>& a) const -{ -return h2(y, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -21250,32 +21735,6 @@ h3(const std::vector& y, const int& start, const int& end, } } - -struct h3_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, - std::ostream* pstream__) const -{ -return h3(y, start, end, a, pstream__); -} -}; - - -struct h3_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>& a) const -{ -return h3(y, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -21307,32 +21766,6 @@ h4(const std::vector& y, const int& start, const int& end, } } - -struct h4_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, - std::ostream* pstream__) const -{ -return h4(y, start, end, a, pstream__); -} -}; - - -struct h4_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>& a) const -{ -return h4(y, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -21366,30 +21799,6 @@ h5(const std::vector& y, const int& start, const int& end, } } - -struct h5_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) const -{ -return h5(y, start, end, a, pstream__); -} -}; - - -struct h5_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, const std::vector>& a) const -{ -return h5(y, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -21425,32 +21834,6 @@ h6(const std::vector& y, const int& start, const int& end, } } - -struct h6_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return h6(y, start, end, a, pstream__); -} -}; - - -struct h6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>>& a) const -{ -return h6(y, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -21486,32 +21869,6 @@ h7(const std::vector& y, const int& start, const int& end, } } - -struct h7_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return h7(y, start, end, a, pstream__); -} -}; - - -struct h7_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>>& a) const -{ -return h7(y, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -21547,32 +21904,6 @@ h8(const std::vector& y, const int& start, const int& end, } } - -struct h8_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return h8(y, start, end, a, pstream__); -} -}; - - -struct h8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>>& a) const -{ -return h8(y, start + 1, end + 1, a, pstream__); -} -}; - class reduce_sum_m2_model final : public model_base_crtp { private: @@ -23579,74 +23910,827 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'reduce_sum_m3.stan', line 152, column 4 to column 15)", " (in 'reduce_sum_m3.stan', line 88, column 11 to line 153, column 3)"}; -struct f10_rsfunctor__; -struct f11_rsfunctor__; -struct f12_rsfunctor__; -struct f1_rsfunctor__; -struct f1a_rsfunctor__; -struct f2_rsfunctor__; -struct f3_rsfunctor__; -struct f4_rsfunctor__; -struct f5_rsfunctor__; -struct f6_rsfunctor__; -struct f7_rsfunctor__; -struct f8_rsfunctor__; -struct f9_rsfunctor__; -struct g10_rsfunctor__; -struct g11_rsfunctor__; -struct g12_rsfunctor__; -struct g1_rsfunctor__; -struct g2_rsfunctor__; -struct g3_rsfunctor__; -struct g4_rsfunctor__; -struct g5_rsfunctor__; -struct g6_rsfunctor__; -struct g7_rsfunctor__; -struct g8_rsfunctor__; -struct g9_rsfunctor__; -struct s_rsfunctor__; -template -stan::promote_args_t -f1(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 171; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - +template +stan::promote_args_t +f1(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct f1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f1a(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct f1a_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1a(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f1a_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1a(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f2(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f2_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f2(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f2_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f2(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f3(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f3_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f3(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f3_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f3(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f4(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f4_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f4(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f4_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f4(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f5(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f5(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f5_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f5(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f6(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f6(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f6_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f6(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f7(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f7(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f7_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f7(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f8(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f8(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f8_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f8(y_slice, start, end, pstream__); +} +}; + +double +f9(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct f9_rsfunctor__ { +double +operator()(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) const +{ +return f9(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f9_functor__ { +double +operator()(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) const +{ +return f9(y_slice, start, end, pstream__); +} +}; + +double +f10(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f10_rsfunctor__ { +double +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f10(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f10_functor__ { +double +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f10(y_slice, start, end, pstream__); +} +}; + +double +f11(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f11_rsfunctor__ { +double +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f11(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f11_functor__ { +double +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f11(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f12(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f12_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f12(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f12_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f12(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g1(const std::vector& y_slice, const int& start, const int& end, + const T3__& a, std::ostream* pstream__) ; + +struct g1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const T3__& a) const +{ +return g1(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const T3__& a, std::ostream* pstream__) const +{ +return g1(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g2(const std::vector& y_slice, const int& start, const int& end, + const Eigen::Matrix& a, std::ostream* pstream__) ; + +struct g2_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const Eigen::Matrix& a) const +{ +return g2(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g2_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const Eigen::Matrix& a, + std::ostream* pstream__) const +{ +return g2(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g3(const std::vector& y_slice, const int& start, const int& end, + const Eigen::Matrix& a, std::ostream* pstream__) ; + +struct g3_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const Eigen::Matrix& a) const +{ +return g3(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g3_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const Eigen::Matrix& a, + std::ostream* pstream__) const +{ +return g3(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g4(const std::vector& y_slice, const int& start, const int& end, + const Eigen::Matrix& a, std::ostream* pstream__) ; + +struct g4_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const Eigen::Matrix& a) const +{ +return g4(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g4_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const Eigen::Matrix& a, + std::ostream* pstream__) const +{ +return g4(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g5(const std::vector& y_slice, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) ; + +struct g5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector& a) const +{ +return g5(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g5_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) const +{ +return g5(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g6(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>& a) const +{ +return g6(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g6_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector>& a, + std::ostream* pstream__) const +{ +return g6(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g7(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>& a) const +{ +return g7(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g7_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector>& a, + std::ostream* pstream__) const +{ +return g7(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g8(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>& a) const +{ +return g8(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g8_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector>& a, + std::ostream* pstream__) const +{ +return g8(y_slice, start, end, a, pstream__); } +}; -struct f1_functor__ { -template -stan::promote_args_t +template +stan::promote_args_t +g9(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g9_rsfunctor__ { +template +stan::promote_args_t operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const + const int& end, std::ostream* pstream__, + const std::vector>& a) const { -return f1(y_slice, start, end, pstream__); +return g9(y_slice, start + 1, end + 1, a, pstream__); } }; -struct f1_rsfunctor__ { -template -stan::promote_args_t +struct g9_functor__ { +template +stan::promote_args_t operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const + const int& end, const std::vector>& a, + std::ostream* pstream__) const { -return f1(y_slice, start + 1, end + 1, pstream__); +return g9(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g10(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct g10_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>>& a) const +{ +return g10(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g10_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return g10(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g11(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct g11_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>>& a) const +{ +return g11(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g11_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return g11(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g12(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct g12_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>>& a) const +{ +return g12(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g12_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return g12(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t>> +s(const std::vector& y_slice, const int& start, const int& end, + const int& a, const T4__& b, const Eigen::Matrix& c, + const Eigen::Matrix& d, const Eigen::Matrix& e, + const std::vector& f, const std::vector& g, + const std::vector>& h, + const std::vector>& i, + const std::vector>& j, + const std::vector>& k, + const std::vector>& l, + const std::vector>>& m, + const std::vector>>& n, + const std::vector>>& o, + const std::vector>>& p, + const std::vector>>& q, + std::ostream* pstream__) ; + +struct s_rsfunctor__ { +template +stan::promote_args_t>> +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const int& a, + const T4__& b, const Eigen::Matrix& c, + const Eigen::Matrix& d, + const Eigen::Matrix& e, const std::vector& f, + const std::vector& g, + const std::vector>& h, + const std::vector>& i, + const std::vector>& j, + const std::vector>& k, + const std::vector>& l, + const std::vector>>& m, + const std::vector>>& n, + const std::vector>>& o, + const std::vector>>& p, + const std::vector>>& q) const +{ +return s(y_slice, start + 1, end + 1, a, b, c, d, e, f, g, h, i, j, k, l, m, + n, o, p, q, pstream__); +} +}; + + +struct s_functor__ { +template +stan::promote_args_t>> +operator()(const std::vector& y_slice, const int& start, + const int& end, const int& a, const T4__& b, + const Eigen::Matrix& c, + const Eigen::Matrix& d, + const Eigen::Matrix& e, const std::vector& f, + const std::vector& g, + const std::vector>& h, + const std::vector>& i, + const std::vector>& j, + const std::vector>& k, + const std::vector>& l, + const std::vector>>& m, + const std::vector>>& n, + const std::vector>>& o, + const std::vector>>& p, + const std::vector>>& q, + std::ostream* pstream__) const +{ +return s(y_slice, start, end, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, + q, pstream__); +} +}; + +double +r(std::ostream* pstream__) ; + +struct r_functor__ { +double +operator()(std::ostream* pstream__) const +{ +return r(pstream__); +} +}; + +template +stan::promote_args_t +f1(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 171; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - template stan::promote_args_t f1a(const std::vector& y_slice, const int& start, const int& end, @@ -23667,28 +24751,6 @@ f1a(const std::vector& y_slice, const int& start, const int& end, } } - -struct f1a_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f1a(y_slice, start, end, pstream__); -} -}; - - -struct f1a_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f1a(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t f2(const std::vector>& y_slice, const int& start, @@ -23709,28 +24771,6 @@ f2(const std::vector>& y_slice, const int& start, } } - -struct f2_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f2(y_slice, start, end, pstream__); -} -}; - - -struct f2_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f2(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t f3(const std::vector>& y_slice, const int& start, @@ -23751,28 +24791,6 @@ f3(const std::vector>& y_slice, const int& start, } } - -struct f3_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f3(y_slice, start, end, pstream__); -} -}; - - -struct f3_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f3(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t f4(const std::vector>& y_slice, const int& start, @@ -23793,28 +24811,6 @@ f4(const std::vector>& y_slice, const int& start, } } - -struct f4_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f4(y_slice, start, end, pstream__); -} -}; - - -struct f4_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f4(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t f5(const std::vector>& y_slice, const int& start, @@ -23835,28 +24831,6 @@ f5(const std::vector>& y_slice, const int& start, } } - -struct f5_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f5(y_slice, start, end, pstream__); -} -}; - - -struct f5_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f5(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t f6(const std::vector>>& y_slice, @@ -23877,28 +24851,6 @@ f6(const std::vector>>& y_slice, } } - -struct f6_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f6(y_slice, start, end, pstream__); -} -}; - - -struct f6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f6(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t f7(const std::vector>>& y_slice, @@ -23919,28 +24871,6 @@ f7(const std::vector>>& y_slice, } } - -struct f7_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f7(y_slice, start, end, pstream__); -} -}; - - -struct f7_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f7(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t f8(const std::vector>>& y_slice, @@ -23961,28 +24891,6 @@ f8(const std::vector>>& y_slice, } } - -struct f8_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f8(y_slice, start, end, pstream__); -} -}; - - -struct f8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f8(y_slice, start + 1, end + 1, pstream__); -} -}; - double f9(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { @@ -24002,26 +24910,6 @@ f9(const std::vector& y_slice, const int& start, const int& end, } } - -struct f9_functor__ { -double -operator()(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) const -{ -return f9(y_slice, start, end, pstream__); -} -}; - - -struct f9_rsfunctor__ { -double -operator()(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) const -{ -return f9(y_slice, start + 1, end + 1, pstream__); -} -}; - double f10(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { @@ -24041,26 +24929,6 @@ f10(const std::vector>& y_slice, const int& start, } } - -struct f10_functor__ { -double -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f10(y_slice, start, end, pstream__); -} -}; - - -struct f10_rsfunctor__ { -double -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f10(y_slice, start + 1, end + 1, pstream__); -} -}; - double f11(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { @@ -24071,35 +24939,15 @@ f11(const std::vector>>& y_slice, (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 193; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} - -struct f11_functor__ { -double -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f11(y_slice, start, end, pstream__); -} -}; - - -struct f11_rsfunctor__ { -double -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f11(y_slice, start + 1, end + 1, pstream__); + current_statement__ = 193; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - template stan::promote_args_t f12(const std::vector>>& y_slice, @@ -24120,28 +24968,6 @@ f12(const std::vector>>& y_slice, } } - -struct f12_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f12(y_slice, start, end, pstream__); -} -}; - - -struct f12_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f12(y_slice, start + 1, end + 1, pstream__); -} -}; - template stan::promote_args_t @@ -24163,30 +24989,6 @@ g1(const std::vector& y_slice, const int& start, const int& end, } } - -struct g1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const -{ -return g1(y_slice, start, end, a, pstream__); -} -}; - - -struct g1_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const -{ -return g1(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24208,32 +25010,6 @@ g2(const std::vector& y_slice, const int& start, const int& end, } } - -struct g2_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const Eigen::Matrix& a, - std::ostream* pstream__) const -{ -return g2(y_slice, start, end, a, pstream__); -} -}; - - -struct g2_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const Eigen::Matrix& a) const -{ -return g2(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24255,32 +25031,6 @@ g3(const std::vector& y_slice, const int& start, const int& end, } } - -struct g3_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const Eigen::Matrix& a, - std::ostream* pstream__) const -{ -return g3(y_slice, start, end, a, pstream__); -} -}; - - -struct g3_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const Eigen::Matrix& a) const -{ -return g3(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24302,32 +25052,6 @@ g4(const std::vector& y_slice, const int& start, const int& end, } } - -struct g4_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const Eigen::Matrix& a, - std::ostream* pstream__) const -{ -return g4(y_slice, start, end, a, pstream__); -} -}; - - -struct g4_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const Eigen::Matrix& a) const -{ -return g4(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24349,32 +25073,6 @@ g5(const std::vector& y_slice, const int& start, const int& end, } } - -struct g5_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const -{ -return g5(y_slice, start, end, a, pstream__); -} -}; - - -struct g5_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const -{ -return g5(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24396,32 +25094,6 @@ g6(const std::vector& y_slice, const int& start, const int& end, } } - -struct g6_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const -{ -return g6(y_slice, start, end, a, pstream__); -} -}; - - -struct g6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const -{ -return g6(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24443,32 +25115,6 @@ g7(const std::vector& y_slice, const int& start, const int& end, } } - -struct g7_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const -{ -return g7(y_slice, start, end, a, pstream__); -} -}; - - -struct g7_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const -{ -return g7(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24490,32 +25136,6 @@ g8(const std::vector& y_slice, const int& start, const int& end, } } - -struct g8_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const -{ -return g8(y_slice, start, end, a, pstream__); -} -}; - - -struct g8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const -{ -return g8(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24536,33 +25156,7 @@ g9(const std::vector& y_slice, const int& start, const int& end, throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } -} - -struct g9_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const -{ -return g9(y_slice, start, end, a, pstream__); -} -}; - - -struct g9_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const -{ -return g9(y_slice, start + 1, end + 1, a, pstream__); -} -}; - +} template stan::promote_args_t @@ -24585,33 +25179,6 @@ g10(const std::vector& y_slice, const int& start, const int& end, } } - -struct g10_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return g10(y_slice, start, end, a, pstream__); -} -}; - - -struct g10_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>>& a) const -{ -return g10(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24634,33 +25201,6 @@ g11(const std::vector& y_slice, const int& start, const int& end, } } - -struct g11_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return g11(y_slice, start, end, a, pstream__); -} -}; - - -struct g11_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>>& a) const -{ -return g11(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template stan::promote_args_t @@ -24683,33 +25223,6 @@ g12(const std::vector& y_slice, const int& start, const int& end, } } - -struct g12_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return g12(y_slice, start, end, a, pstream__); -} -}; - - -struct g12_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>>& a) const -{ -return g12(y_slice, start + 1, end + 1, a, pstream__); -} -}; - template & y_slice, const int& start, const int& end, } } - -struct s_functor__ { -template -stan::promote_args_t>> -operator()(const std::vector& y_slice, const int& start, - const int& end, const int& a, const T4__& b, - const Eigen::Matrix& c, - const Eigen::Matrix& d, - const Eigen::Matrix& e, const std::vector& f, - const std::vector& g, - const std::vector>& h, - const std::vector>& i, - const std::vector>& j, - const std::vector>& k, - const std::vector>& l, - const std::vector>>& m, - const std::vector>>& n, - const std::vector>>& o, - const std::vector>>& p, - const std::vector>>& q, - std::ostream* pstream__) const -{ -return s(y_slice, start, end, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, - q, pstream__); -} -}; - - -struct s_rsfunctor__ { -template -stan::promote_args_t>> -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const int& a, - const T4__& b, const Eigen::Matrix& c, - const Eigen::Matrix& d, - const Eigen::Matrix& e, const std::vector& f, - const std::vector& g, - const std::vector>& h, - const std::vector>& i, - const std::vector>& j, - const std::vector>& k, - const std::vector>& l, - const std::vector>>& m, - const std::vector>>& n, - const std::vector>>& o, - const std::vector>>& p, - const std::vector>>& q) const -{ -return s(y_slice, start + 1, end + 1, a, b, c, d, e, f, g, h, i, j, k, l, m, - n, o, p, q, pstream__); -} -}; - double r(std::ostream* pstream__) { using local_scalar_t__ = double; @@ -25204,15 +25654,6 @@ r(std::ostream* pstream__) { } } - -struct r_functor__ { -double -operator()(std::ostream* pstream__) const -{ -return r(pstream__); -} -}; - class reduce_sum_m3_model final : public model_base_crtp { private: @@ -27517,7 +27958,27 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'single-argument-lpmf.stan', line 18, column 4 to column 14)", " (in 'single-argument-lpmf.stan', line 17, column 23 to line 19, column 3)"}; - +template +double +foo0_log(const int& y, std::ostream* pstream__) ; +template +double +foo1_lpmf(const int& y, std::ostream* pstream__) ; +template +double +foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; +template +stan::promote_args_t +foo2_log(const T0__& y, std::ostream* pstream__) ; +template +stan::promote_args_t +foo3_lpdf(const T0__& y, std::ostream* pstream__) ; +template +stan::promote_args_t +foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; template double foo0_log(const int& y, std::ostream* pstream__) { @@ -27535,16 +27996,6 @@ foo0_log(const int& y, std::ostream* pstream__) { } } - -struct foo0_log_functor__ { -template -double -operator()(const int& y, std::ostream* pstream__) const -{ -return foo0_log(y, pstream__); -} -}; - template double foo1_lpmf(const int& y, std::ostream* pstream__) { @@ -27562,16 +28013,6 @@ foo1_lpmf(const int& y, std::ostream* pstream__) { } } - -struct foo1_lpmf_functor__ { -template -double -operator()(const int& y, std::ostream* pstream__) const -{ -return foo1_lpmf(y, pstream__); -} -}; - template double foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, @@ -27590,17 +28031,6 @@ foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, } } - -struct foo4_lp_functor__ { -template -double -operator()(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return foo4_lp(y, lp__, lp_accum__, pstream__); -} -}; - template stan::promote_args_t foo2_log(const T0__& y, std::ostream* pstream__) { @@ -27618,16 +28048,6 @@ foo2_log(const T0__& y, std::ostream* pstream__) { } } - -struct foo2_log_functor__ { -template -stan::promote_args_t -operator()(const T0__& y, std::ostream* pstream__) const -{ -return foo2_log(y, pstream__); -} -}; - template stan::promote_args_t foo3_lpdf(const T0__& y, std::ostream* pstream__) { @@ -27645,16 +28065,6 @@ foo3_lpdf(const T0__& y, std::ostream* pstream__) { } } - -struct foo3_lpdf_functor__ { -template -stan::promote_args_t -operator()(const T0__& y, std::ostream* pstream__) const -{ -return foo3_lpdf(y, pstream__); -} -}; - template stan::promote_args_t @@ -27674,18 +28084,6 @@ foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, } } - -struct foo5_lp_functor__ { -template -stan::promote_args_t -operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return foo5_lp(y, lp__, lp_accum__, pstream__); -} -}; - class single_argument_lpmf_model final : public model_base_crtp { private: @@ -32668,6 +33066,18 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'udf_tilde_stmt_conflict.stan', line 3, column 4 to column 21)", " (in 'udf_tilde_stmt_conflict.stan', line 2, column 22 to line 4, column 3)"}; +template +stan::promote_args_t +normal(const T0__& a, std::ostream* pstream__) ; + +struct normal_functor__ { +template +stan::promote_args_t +operator()(const T0__& a, std::ostream* pstream__) const +{ +return normal(a, pstream__); +} +}; template stan::promote_args_t @@ -32688,16 +33098,6 @@ normal(const T0__& a, std::ostream* pstream__) { } } - -struct normal_functor__ { -template -stan::promote_args_t -operator()(const T0__& a, std::ostream* pstream__) const -{ -return normal(a, pstream__); -} -}; - class udf_tilde_stmt_conflict_model final : public model_base_crtp { private: @@ -33040,6 +33440,20 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'user_constrain.stan', line 3, column 4 to column 13)", " (in 'user_constrain.stan', line 2, column 36 to line 4, column 3)"}; +template +stan::promote_args_t +lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) ; + +struct lb_constrain_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const +{ +return lb_constrain(x, y, pstream__); +} +}; template stan::promote_args_t -stan::promote_args_t -operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const -{ -return lb_constrain(x, y, pstream__); -} -}; - class user_constrain_model final : public model_base_crtp { private: diff --git a/test/integration/good/code-gen/mir.expected b/test/integration/good/code-gen/mir.expected index c16f34e8a4..52ce4ebfad 100644 --- a/test/integration/good/code-gen/mir.expected +++ b/test/integration/good/code-gen/mir.expected @@ -1,8 +1,9 @@ $ ../../../../../install/default/bin/stanc --debug-mir mother.stan ((functions_block - (((fdrt (UInt)) (fdname foo) (fdargs ((AutoDiffable n UInt))) (fdbody ()) - (fdloc )) - ((fdrt (UInt)) (fdname foo) (fdargs ((AutoDiffable n UInt))) + (((fdrt (UInt)) (fdname foo) (fdcaptures ()) + (fdargs ((AutoDiffable n UInt))) (fdbody ()) (fdloc )) + ((fdrt (UInt)) (fdname foo) (fdcaptures ()) + (fdargs ((AutoDiffable n UInt))) (fdbody (((pattern (Block @@ -45,13 +46,13 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UReal))) (fdname sho) + ((fdrt ((UArray UReal))) (fdname sho) (fdcaptures ()) (fdargs ((AutoDiffable t UReal) (AutoDiffable y (UArray UReal)) (AutoDiffable theta (UArray UReal)) (DataOnly x (UArray UReal)) (DataOnly x_int (UArray UInt)))) (fdbody ()) (fdloc )) - ((fdrt ((UArray UReal))) (fdname sho) + ((fdrt ((UArray UReal))) (fdname sho) (fdcaptures ()) (fdargs ((AutoDiffable t UReal) (AutoDiffable y (UArray UReal)) (AutoDiffable theta (UArray UReal)) (DataOnly x (UArray UReal)) @@ -147,7 +148,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_bar0) (fdargs ()) + ((fdrt (UReal)) (fdname foo_bar0) (fdcaptures ()) (fdargs ()) (fdbody (((pattern (Block @@ -158,7 +159,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_bar1) (fdargs ((AutoDiffable x UReal))) + ((fdrt (UReal)) (fdname foo_bar1) (fdcaptures ()) + (fdargs ((AutoDiffable x UReal))) (fdbody (((pattern (Block @@ -169,7 +171,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_bar2) + ((fdrt (UReal)) (fdname foo_bar2) (fdcaptures ()) (fdargs ((AutoDiffable x UReal) (AutoDiffable y UReal))) (fdbody (((pattern @@ -181,7 +183,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lpmf) + ((fdrt (UReal)) (fdname foo_lpmf) (fdcaptures ()) (fdargs ((AutoDiffable y UInt) (AutoDiffable lambda UReal))) (fdbody (((pattern @@ -193,7 +195,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lcdf) + ((fdrt (UReal)) (fdname foo_lcdf) (fdcaptures ()) (fdargs ((AutoDiffable y UInt) (AutoDiffable lambda UReal))) (fdbody (((pattern @@ -205,7 +207,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lccdf) + ((fdrt (UReal)) (fdname foo_lccdf) (fdcaptures ()) (fdargs ((AutoDiffable y UInt) (AutoDiffable lambda UReal))) (fdbody (((pattern @@ -217,7 +219,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_rng) + ((fdrt (UReal)) (fdname foo_rng) (fdcaptures ()) (fdargs ((AutoDiffable mu UReal) (AutoDiffable sigma UReal))) (fdbody (((pattern @@ -236,7 +238,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname unit_normal_lp) (fdargs ((AutoDiffable u UReal))) + ((fdrt ()) (fdname unit_normal_lp) (fdcaptures ()) + (fdargs ((AutoDiffable u UReal))) (fdbody (((pattern (Block @@ -271,7 +274,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UInt)) (fdname foo_1) (fdargs ((AutoDiffable a UInt))) + ((fdrt (UInt)) (fdname foo_1) (fdcaptures ()) + (fdargs ((AutoDiffable a UInt))) (fdbody (((pattern (Block @@ -1099,7 +1103,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UInt)) (fdname foo_2) (fdargs ((AutoDiffable a UInt))) + ((fdrt (UInt)) (fdname foo_2) (fdcaptures ()) + (fdargs ((AutoDiffable a UInt))) (fdbody (((pattern (Block @@ -1168,7 +1173,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UReal))) (fdname foo_3) + ((fdrt ((UArray UReal))) (fdname foo_3) (fdcaptures ()) (fdargs ((AutoDiffable t UReal) (AutoDiffable n UInt))) (fdbody (((pattern @@ -1188,7 +1193,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lp) (fdargs ((AutoDiffable x UReal))) + ((fdrt (UReal)) (fdname foo_lp) (fdcaptures ()) + (fdargs ((AutoDiffable x UReal))) (fdbody (((pattern (Block @@ -1206,7 +1212,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname foo_4) (fdargs ((AutoDiffable x UReal))) + ((fdrt ()) (fdname foo_4) (fdcaptures ()) + (fdargs ((AutoDiffable x UReal))) (fdbody (((pattern (Block @@ -1219,7 +1226,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname relative_diff) + ((fdrt (UReal)) (fdname relative_diff) (fdcaptures ()) (fdargs ((AutoDiffable x UReal) (AutoDiffable y UReal) (AutoDiffable max_ UReal) (AutoDiffable min_ UReal))) @@ -1370,7 +1377,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname foo_5) + ((fdrt (UVector)) (fdname foo_5) (fdcaptures ()) (fdargs ((AutoDiffable shared_params UVector) (AutoDiffable job_params UVector) (DataOnly data_r (UArray UReal)) (DataOnly data_i (UArray UInt)))) @@ -1398,7 +1405,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_five_args) + ((fdrt (UReal)) (fdname foo_five_args) (fdcaptures ()) (fdargs ((AutoDiffable x1 UReal) (AutoDiffable x2 UReal) (AutoDiffable x3 UReal) (AutoDiffable x4 UReal) (AutoDiffable x5 UReal))) @@ -1412,7 +1419,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_five_args_lp) + ((fdrt (UReal)) (fdname foo_five_args_lp) (fdcaptures ()) (fdargs ((AutoDiffable x1 UReal) (AutoDiffable x2 UReal) (AutoDiffable x3 UReal) (AutoDiffable x4 UReal) (AutoDiffable x5 UReal) @@ -1427,7 +1434,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UMatrix)) (fdname covsqrt2corsqrt) + ((fdrt (UMatrix)) (fdname covsqrt2corsqrt) (fdcaptures ()) (fdargs ((AutoDiffable mat UMatrix) (AutoDiffable invert UInt))) (fdbody (((pattern @@ -1525,7 +1532,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname f0) + ((fdrt ()) (fdname f0) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1545,7 +1552,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UInt)) (fdname f1) + ((fdrt (UInt)) (fdname f1) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1565,7 +1572,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UInt))) (fdname f2) + ((fdrt ((UArray UInt))) (fdname f2) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1586,7 +1593,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UInt)))) (fdname f3) + ((fdrt ((UArray (UArray UInt)))) (fdname f3) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1608,7 +1615,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname f4) + ((fdrt (UReal)) (fdname f4) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1628,7 +1635,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UReal))) (fdname f5) + ((fdrt ((UArray UReal))) (fdname f5) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1650,7 +1657,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UReal)))) (fdname f6) + ((fdrt ((UArray (UArray UReal)))) (fdname f6) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1672,7 +1679,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname f7) + ((fdrt (UVector)) (fdname f7) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1692,7 +1699,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UVector))) (fdname f8) + ((fdrt ((UArray UVector))) (fdname f8) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1714,7 +1721,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UVector)))) (fdname f9) + ((fdrt ((UArray (UArray UVector)))) (fdname f9) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1736,7 +1743,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UMatrix)) (fdname f10) + ((fdrt (UMatrix)) (fdname f10) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1756,7 +1763,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UMatrix))) (fdname f11) + ((fdrt ((UArray UMatrix))) (fdname f11) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1778,7 +1785,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UMatrix)))) (fdname f12) + ((fdrt ((UArray (UArray UMatrix)))) (fdname f12) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1800,7 +1807,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname foo_6) (fdargs ()) + ((fdrt ()) (fdname foo_6) (fdcaptures ()) (fdargs ()) (fdbody (((pattern (Block @@ -1859,7 +1866,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UMatrix)) (fdname matfoo) (fdargs ()) + ((fdrt (UMatrix)) (fdname matfoo) (fdcaptures ()) (fdargs ()) (fdbody (((pattern (Block @@ -1973,7 +1980,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname vecfoo) (fdargs ()) + ((fdrt (UVector)) (fdname vecfoo) (fdcaptures ()) (fdargs ()) (fdbody (((pattern (Block @@ -2019,7 +2026,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname vecmufoo) (fdargs ((AutoDiffable mu UReal))) + ((fdrt (UVector)) (fdname vecmufoo) (fdcaptures ()) + (fdargs ((AutoDiffable mu UReal))) (fdbody (((pattern (Block @@ -2049,7 +2057,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname vecmubar) (fdargs ((AutoDiffable mu UReal))) + ((fdrt (UVector)) (fdname vecmubar) (fdcaptures ()) + (fdargs ((AutoDiffable mu UReal))) (fdbody (((pattern (Block @@ -2139,7 +2148,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname algebra_system) + ((fdrt (UVector)) (fdname algebra_system) (fdcaptures ()) (fdargs ((AutoDiffable x UVector) (AutoDiffable y UVector) (AutoDiffable dat (UArray UReal)) (AutoDiffable dat_int (UArray UInt)))) @@ -2225,7 +2234,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname binomialf) + ((fdrt (UVector)) (fdname binomialf) (fdcaptures ()) (fdargs ((AutoDiffable phi UVector) (AutoDiffable theta UVector) (DataOnly x_r (UArray UReal)) (DataOnly x_i (UArray UInt)))) diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index 04a234c405..a647e09551 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -80,7 +80,93 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'basic.stan', line 40, column 2 to column 31)", " (in 'basic.stan', line 39, column 32 to line 41, column 2)"}; +template +stan::promote_args_t +my_log1p_exp(const T0__& x, std::ostream* pstream__) ; + +struct my_log1p_exp_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return my_log1p_exp(x, pstream__); +} +}; + +template +stan::promote_args_t +array_fun(const std::vector& a, std::ostream* pstream__) ; + +struct array_fun_functor__ { +template +stan::promote_args_t +operator()(const std::vector& a, std::ostream* pstream__) const +{ +return array_fun(a, pstream__); +} +}; + +double +int_array_fun(const std::vector& a, std::ostream* pstream__) ; + +struct int_array_fun_functor__ { +double +operator()(const std::vector& a, std::ostream* pstream__) const +{ +return int_array_fun(a, pstream__); +} +}; + +template +Eigen::Matrix, -1, 1> +my_vector_mul_by_5(const Eigen::Matrix& x, + std::ostream* pstream__) ; + +struct my_vector_mul_by_5_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const Eigen::Matrix& x, std::ostream* pstream__) const +{ +return my_vector_mul_by_5(x, pstream__); +} +}; + +int +int_only_multiplication(const int& a, const int& b, std::ostream* pstream__) ; + +struct int_only_multiplication_functor__ { +int +operator()(const int& a, const int& b, std::ostream* pstream__) const +{ +return int_only_multiplication(a, b, pstream__); +} +}; +template +stan::promote_args_t +test_lgamma(const T0__& x, std::ostream* pstream__) ; + +struct test_lgamma_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return test_lgamma(x, pstream__); +} +}; + +template +void +test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; +template +stan::promote_args_t +test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) ; +template +stan::promote_args_t +test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) ; template stan::promote_args_t my_log1p_exp(const T0__& x, std::ostream* pstream__) { @@ -100,16 +186,6 @@ my_log1p_exp(const T0__& x, std::ostream* pstream__) { } } - -struct my_log1p_exp_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return my_log1p_exp(x, pstream__); -} -}; - template stan::promote_args_t array_fun(const std::vector& a, std::ostream* pstream__) { @@ -129,16 +205,6 @@ array_fun(const std::vector& a, std::ostream* pstream__) { } } - -struct array_fun_functor__ { -template -stan::promote_args_t -operator()(const std::vector& a, std::ostream* pstream__) const -{ -return array_fun(a, pstream__); -} -}; - double int_array_fun(const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -157,15 +223,6 @@ int_array_fun(const std::vector& a, std::ostream* pstream__) { } } - -struct int_array_fun_functor__ { -double -operator()(const std::vector& a, std::ostream* pstream__) const -{ -return int_array_fun(a, pstream__); -} -}; - template Eigen::Matrix, -1, 1> my_vector_mul_by_5(const Eigen::Matrix& x, @@ -195,16 +252,6 @@ my_vector_mul_by_5(const Eigen::Matrix& x, } } - -struct my_vector_mul_by_5_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const Eigen::Matrix& x, std::ostream* pstream__) const -{ -return my_vector_mul_by_5(x, pstream__); -} -}; - int int_only_multiplication(const int& a, const int& b, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -223,15 +270,6 @@ int_only_multiplication(const int& a, const int& b, std::ostream* pstream__) { } } - -struct int_only_multiplication_functor__ { -int -operator()(const int& a, const int& b, std::ostream* pstream__) const -{ -return int_only_multiplication(a, b, pstream__); -} -}; - template stan::promote_args_t test_lgamma(const T0__& x, std::ostream* pstream__) { @@ -251,16 +289,6 @@ test_lgamma(const T0__& x, std::ostream* pstream__) { } } - -struct test_lgamma_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return test_lgamma(x, pstream__); -} -}; - template void @@ -280,18 +308,6 @@ test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, } } - -struct test_lp_functor__ { -template -void -operator()(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return test_lp(a, lp__, lp_accum__, pstream__); -} -}; - template stan::promote_args_t test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { @@ -311,16 +327,6 @@ test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { } } - -struct test_rng_functor__ { -template -stan::promote_args_t -operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const -{ -return test_rng(a, base_rng__, pstream__); -} -}; - template stan::promote_args_t @@ -340,17 +346,6 @@ test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { } -struct test_lpdf_functor__ { -template -stan::promote_args_t -operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const -{ -return test_lpdf(a, b, pstream__); -} -}; - - } // [[stan::function]] @@ -496,6 +491,48 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'integrate.stan', line 21, column 4 to column 142)", " (in 'integrate.stan', line 14, column 23 to line 22, column 3)"}; +template +Eigen::Matrix, -1, 1> +integrand(const Eigen::Matrix& x, std::ostream* pstream__) ; + +struct integrand_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const Eigen::Matrix& x, std::ostream* pstream__) const +{ +return integrand(x, pstream__); +} +}; + +template +std::vector> +integrand_ode(const T0__& r, const std::vector& f, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) ; + +struct integrand_ode_functor__ { +template +std::vector> +operator()(const T0__& r, const std::vector& f, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) const +{ +return integrand_ode(r, f, theta, x_r, x_i, pstream__); +} +}; + +double +ode_integrate(std::ostream* pstream__) ; + +struct ode_integrate_functor__ { +double +operator()(std::ostream* pstream__) const +{ +return ode_integrate(pstream__); +} +}; template Eigen::Matrix, -1, 1> @@ -516,16 +553,6 @@ integrand(const Eigen::Matrix& x, std::ostream* pstream__) { } } - -struct integrand_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const Eigen::Matrix& x, std::ostream* pstream__) const -{ -return integrand(x, pstream__); -} -}; - template std::vector> @@ -560,19 +587,6 @@ integrand_ode(const T0__& r, const std::vector& f, } } - -struct integrand_ode_functor__ { -template -std::vector> -operator()(const T0__& r, const std::vector& f, - const std::vector& theta, const std::vector& x_r, - const std::vector& x_i, std::ostream* pstream__) const -{ -return integrand_ode(r, f, theta, x_r, x_i, pstream__); -} -}; - double ode_integrate(std::ostream* pstream__) { using local_scalar_t__ = double; @@ -598,15 +612,6 @@ ode_integrate(std::ostream* pstream__) { } -struct ode_integrate_functor__ { -double -operator()(std::ostream* pstream__) const -{ -return ode_integrate(pstream__); -} -}; - - } // [[stan::function]] diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index c7b89b51f8..7d853cc786 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -94,6 +94,24 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'ad-level-failing.stan', line 24, column 4 to column 16)", " (in 'ad-level-failing.stan', line 15, column 31 to line 25, column 3)"}; +template +std::vector> +simple_SIR(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) ; + +struct simple_SIR_functor__ { +template +std::vector> +operator()(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) const +{ +return simple_SIR(t, y, theta, x_r, x_i, pstream__); +} +}; template std::vector& y, } } - -struct simple_SIR_functor__ { -template -std::vector> -operator()(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x_r, - const std::vector& x_i, std::ostream* pstream__) const -{ -return simple_SIR(t, y, theta, x_r, x_i, pstream__); -} -}; - class ad_level_failing_model final : public model_base_crtp { private: @@ -1006,6 +1011,47 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'copy_fail.stan', line 28, column 4 to line 44, column 5)", " (in 'copy_fail.stan', line 45, column 4 to column 15)"}; +int +first_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct first_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return first_capture(y_i, pstream__); +} +}; + +int +last_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct last_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return last_capture(y_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, + std::ostream* pstream__) ; + +struct prob_uncaptured_functor__ { +template +Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, std::ostream* pstream__) const +{ +return prob_uncaptured(nind, n_occasions, p, phi, pstream__); +} +}; int first_capture(const std::vector& y_i, std::ostream* pstream__) { @@ -1045,15 +1091,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct first_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return first_capture(y_i, pstream__); -} -}; - int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -1102,15 +1139,6 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct last_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return last_capture(y_i, pstream__); -} -}; - template Eigen::Matrix, -1, -1> @@ -1299,19 +1327,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, } } - -struct prob_uncaptured_functor__ { -template -Eigen::Matrix, -1, -1> -operator()(const int& nind, const int& n_occasions, - const Eigen::Matrix& p, - const Eigen::Matrix& phi, std::ostream* pstream__) const -{ -return prob_uncaptured(nind, n_occasions, p, phi, pstream__); -} -}; - class copy_fail_model final : public model_base_crtp { private: @@ -9678,6 +9693,47 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'expr-prop-fail5.stan', line 28, column 4 to line 46, column 5)", " (in 'expr-prop-fail5.stan', line 47, column 4 to column 15)"}; +int +first_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct first_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return first_capture(y_i, pstream__); +} +}; + +int +last_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct last_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return last_capture(y_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, + std::ostream* pstream__) ; + +struct prob_uncaptured_functor__ { +template +Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, std::ostream* pstream__) const +{ +return prob_uncaptured(nind, n_occasions, p, phi, pstream__); +} +}; int first_capture(const std::vector& y_i, std::ostream* pstream__) { @@ -9717,15 +9773,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct first_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return first_capture(y_i, pstream__); -} -}; - int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -9774,15 +9821,6 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct last_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return last_capture(y_i, pstream__); -} -}; - template Eigen::Matrix, -1, -1> @@ -9971,19 +10009,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, } } - -struct prob_uncaptured_functor__ { -template -Eigen::Matrix, -1, -1> -operator()(const int& nind, const int& n_occasions, - const Eigen::Matrix& p, - const Eigen::Matrix& phi, std::ostream* pstream__) const -{ -return prob_uncaptured(nind, n_occasions, p, phi, pstream__); -} -}; - class expr_prop_fail5_model final : public model_base_crtp { private: @@ -12282,7 +12307,56 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'expr-prop-fail6.stan', line 86, column 4 to line 142, column 5)", " (in 'expr-prop-fail6.stan', line 81, column 42 to line 143, column 3)"}; +int +first_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct first_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return first_capture(y_i, pstream__); +} +}; + +int +last_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct last_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return last_capture(y_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, -1> +prob_uncaptured(const Eigen::Matrix& p, + const Eigen::Matrix& phi, + std::ostream* pstream__) ; + +struct prob_uncaptured_functor__ { +template +Eigen::Matrix, -1, -1> +operator()(const Eigen::Matrix& p, + const Eigen::Matrix& phi, std::ostream* pstream__) const +{ +return prob_uncaptured(p, phi, pstream__); +} +}; +template +void +js_super_lp(const std::vector>& y, + const std::vector& first, const std::vector& last, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, const T5__& psi, + const Eigen::Matrix& nu, + const Eigen::Matrix& chi, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) ; int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -12321,15 +12395,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct first_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return first_capture(y_i, pstream__); -} -}; - int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -12378,15 +12443,6 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct last_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return last_capture(y_i, pstream__); -} -}; - template Eigen::Matrix, -1, -1> @@ -12585,18 +12641,6 @@ prob_uncaptured(const Eigen::Matrix& p, } } - -struct prob_uncaptured_functor__ { -template -Eigen::Matrix, -1, -1> -operator()(const Eigen::Matrix& p, - const Eigen::Matrix& phi, std::ostream* pstream__) const -{ -return prob_uncaptured(p, phi, pstream__); -} -}; - template void @@ -13147,24 +13191,6 @@ js_super_lp(const std::vector>& y, } } - -struct js_super_lp_functor__ { -template -void -operator()(const std::vector>& y, - const std::vector& first, const std::vector& last, - const Eigen::Matrix& p, - const Eigen::Matrix& phi, const T5__& psi, - const Eigen::Matrix& nu, - const Eigen::Matrix& chi, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) const -{ -return js_super_lp(y, first, last, p, phi, psi, nu, chi, lp__, - lp_accum__, pstream__); -} -}; - class expr_prop_fail6_model final : public model_base_crtp { private: @@ -18847,11 +18873,52 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'fails-test.stan', line 28, column 4 to line 44, column 5)", " (in 'fails-test.stan', line 45, column 4 to column 15)"}; +int +first_capture(const std::vector& y_i, std::ostream* pstream__) ; +struct first_capture_functor__ { int -first_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; - const static bool propto__ = true; +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return first_capture(y_i, pstream__); +} +}; + +int +last_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct last_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return last_capture(y_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, + std::ostream* pstream__) ; + +struct prob_uncaptured_functor__ { +template +Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, std::ostream* pstream__) const +{ +return prob_uncaptured(nind, n_occasions, p, phi, pstream__); +} +}; + +int +first_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = double; + const static bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -18886,15 +18953,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct first_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return first_capture(y_i, pstream__); -} -}; - int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -18943,15 +19001,6 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct last_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return last_capture(y_i, pstream__); -} -}; - template Eigen::Matrix, -1, -1> @@ -19140,19 +19189,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, } } - -struct prob_uncaptured_functor__ { -template -Eigen::Matrix, -1, -1> -operator()(const int& nind, const int& n_occasions, - const Eigen::Matrix& p, - const Eigen::Matrix& phi, std::ostream* pstream__) const -{ -return prob_uncaptured(nind, n_occasions, p, phi, pstream__); -} -}; - class fails_test_model final : public model_base_crtp { private: @@ -21547,6 +21583,68 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'inlining-fail2.stan', line 152, column 4 to line 155, column 5)", " (in 'inlining-fail2.stan', line 156, column 4 to column 26)"}; +int +first_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct first_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return first_capture(y_i, pstream__); +} +}; + +int +last_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct last_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return last_capture(y_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, -1> +prob_uncaptured(const Eigen::Matrix& p, + const Eigen::Matrix& phi, + std::ostream* pstream__) ; + +struct prob_uncaptured_functor__ { +template +Eigen::Matrix, -1, -1> +operator()(const Eigen::Matrix& p, + const Eigen::Matrix& phi, std::ostream* pstream__) const +{ +return prob_uncaptured(p, phi, pstream__); +} +}; + +template +void +jolly_seber_lp(const std::vector>& y, + const std::vector& first, const std::vector& last, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, + const Eigen::Matrix& gamma, + const Eigen::Matrix& chi, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) ; +template +Eigen::Matrix, -1, 1> +seq_cprob(const Eigen::Matrix& gamma, std::ostream* pstream__) ; + +struct seq_cprob_functor__ { +template +Eigen::Matrix, -1, 1> +operator()(const Eigen::Matrix& gamma, std::ostream* pstream__) const +{ +return seq_cprob(gamma, pstream__); +} +}; int first_capture(const std::vector& y_i, std::ostream* pstream__) { @@ -21586,15 +21684,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct first_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return first_capture(y_i, pstream__); -} -}; - int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -21643,15 +21732,6 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct last_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return last_capture(y_i, pstream__); -} -}; - template Eigen::Matrix, -1, -1> @@ -21850,18 +21930,6 @@ prob_uncaptured(const Eigen::Matrix& p, } } - -struct prob_uncaptured_functor__ { -template -Eigen::Matrix, -1, -1> -operator()(const Eigen::Matrix& p, - const Eigen::Matrix& phi, std::ostream* pstream__) const -{ -return prob_uncaptured(p, phi, pstream__); -} -}; - template void @@ -22399,24 +22467,6 @@ jolly_seber_lp(const std::vector>& y, } } - -struct jolly_seber_lp_functor__ { -template -void -operator()(const std::vector>& y, - const std::vector& first, const std::vector& last, - const Eigen::Matrix& p, - const Eigen::Matrix& phi, - const Eigen::Matrix& gamma, - const Eigen::Matrix& chi, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) const -{ -return jolly_seber_lp(y, first, last, p, phi, gamma, chi, lp__, - lp_accum__, pstream__); -} -}; - template Eigen::Matrix, -1, 1> seq_cprob(const Eigen::Matrix& gamma, std::ostream* pstream__) { @@ -22475,16 +22525,6 @@ seq_cprob(const Eigen::Matrix& gamma, std::ostream* pstream__) { } } - -struct seq_cprob_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const Eigen::Matrix& gamma, std::ostream* pstream__) const -{ -return seq_cprob(gamma, pstream__); -} -}; - class inlining_fail2_model final : public model_base_crtp { private: @@ -26750,6 +26790,47 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'lcm-fails2.stan', line 28, column 4 to line 44, column 5)", " (in 'lcm-fails2.stan', line 45, column 4 to column 15)"}; +int +first_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct first_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return first_capture(y_i, pstream__); +} +}; + +int +last_capture(const std::vector& y_i, std::ostream* pstream__) ; + +struct last_capture_functor__ { +int +operator()(const std::vector& y_i, std::ostream* pstream__) const +{ +return last_capture(y_i, pstream__); +} +}; + +template +Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, + std::ostream* pstream__) ; + +struct prob_uncaptured_functor__ { +template +Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, + const Eigen::Matrix& p, + const Eigen::Matrix& phi, std::ostream* pstream__) const +{ +return prob_uncaptured(nind, n_occasions, p, phi, pstream__); +} +}; int first_capture(const std::vector& y_i, std::ostream* pstream__) { @@ -26789,15 +26870,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct first_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return first_capture(y_i, pstream__); -} -}; - int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -26846,15 +26918,6 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { } } - -struct last_capture_functor__ { -int -operator()(const std::vector& y_i, std::ostream* pstream__) const -{ -return last_capture(y_i, pstream__); -} -}; - template Eigen::Matrix, -1, -1> @@ -27043,19 +27106,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, } } - -struct prob_uncaptured_functor__ { -template -Eigen::Matrix, -1, -1> -operator()(const int& nind, const int& n_occasions, - const Eigen::Matrix& p, - const Eigen::Matrix& phi, std::ostream* pstream__) const -{ -return prob_uncaptured(nind, n_occasions, p, phi, pstream__); -} -}; - class lcm_fails2_model final : public model_base_crtp { private: @@ -31210,7 +31260,25 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'optimizations.stan', line 11, column 8 to column 21)", " (in 'optimizations.stan', line 16, column 8 to column 18)"}; +template +void +nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; +int +rfun(const int& y, std::ostream* pstream__) ; + +struct rfun_functor__ { +int +operator()(const int& y, std::ostream* pstream__) const +{ +return rfun(y, pstream__); +} +}; +template +int +rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; template void @@ -31238,18 +31306,6 @@ nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, } } - -struct nrfun_lp_functor__ { -template -void -operator()(const T0__& x, const int& y, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) const -{ -return nrfun_lp(x, y, lp__, lp_accum__, pstream__); -} -}; - int rfun(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -31278,15 +31334,6 @@ rfun(const int& y, std::ostream* pstream__) { } } - -struct rfun_functor__ { -int -operator()(const int& y, std::ostream* pstream__) const -{ -return rfun(y, pstream__); -} -}; - template int rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { @@ -31308,16 +31355,6 @@ rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { } } - -struct rfun_lp_functor__ { -template -int -operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const -{ -return rfun_lp(lp__, lp_accum__, pstream__); -} -}; - class optimizations_model final : public model_base_crtp { private: diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 2c9f39d47a..b577abd1ad 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -9,7 +9,11 @@ let%expect_test "udf" = Stmt.Fixed.{pattern= stmt; meta= Locations.no_span_num} in let w e = Expr.{Fixed.pattern= e; meta= Typed.Meta.empty} in - let pp_fun_def_w_rs a b = pp_fun_def a b String.Set.empty in + let pp_fun_def ppf b = + pp_forward_decl String.Set.empty ppf b ; + cut ppf () ; + match get_impl b with Some b -> pp_function_body ppf b | None -> () + in { fdrt= None ; fdname= "sars" ; fdcaptures= None @@ -21,10 +25,24 @@ let%expect_test "udf" = |> with_no_loc |> List.return |> Stmt.Fixed.Pattern.Block |> with_no_loc |> Some ; fdloc= Location_span.empty } - |> strf "@[%a" pp_fun_def_w_rs - |> print_endline ; + |> strf "@[%a" pp_fun_def |> print_endline ; [%expect {| + template + void + sars(const Eigen::Matrix& x, + const Eigen::Matrix& y, std::ostream* pstream__) ; + + struct sars_functor__ { + template + void + operator()(const Eigen::Matrix& x, + const Eigen::Matrix& y, std::ostream* pstream__) const + { + return sars(x, y, pstream__); + } + }; + template void sars(const Eigen::Matrix& x, @@ -43,14 +61,4 @@ let%expect_test "udf" = throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - } - - struct sars_functor__ { - template - void - operator()(const Eigen::Matrix& x, - const Eigen::Matrix& y, std::ostream* pstream__) const - { - return sars(x, y, pstream__); - } - }; |}] + } |}] From 8dcaf3e8101513fbe7749636b841ae4b8df83148 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Wed, 18 Nov 2020 11:18:49 +0200 Subject: [PATCH 04/24] make parser and Symbol_table support closures --- src/frontend/Ast_to_Mir.ml | 33 +- src/frontend/Semantic_check.ml | 137 +-- src/frontend/Semantic_error.ml | 16 +- src/frontend/Semantic_error.mli | 2 + src/frontend/Symbol_table.ml | 28 +- src/frontend/Symbol_table.mli | 7 + src/frontend/parser.messages | 817 ++++++++++-------- src/frontend/parser.mly | 15 + src/stan_math_backend/Expression_gen.ml | 2 +- src/stan_math_backend/Stan_math_code_gen.ml | 29 +- test/integration/bad/for_loops/stanc.expected | 16 +- test/integration/bad/stanc.expected | 2 +- 12 files changed, 638 insertions(+), 466 deletions(-) diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index aa0e9a3153..794a369dc7 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -35,6 +35,8 @@ let%expect_test "format_number1" = format_number ".123_456" |> print_endline ; [%expect ".123456"] +let closures = ref [] + let rec op_to_funapp op args = let argtypes = List.map ~f:(fun x -> (x.Ast.emeta.Ast.ad_level, x.emeta.type_)) args @@ -517,9 +519,9 @@ let%expect_test "dist name suffix" = let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = let stmt_typed = ts.stmt and smeta = ts.smeta.loc in - let trans_stmt = trans_stmt ud_dists {declc with dconstrain= None} in + let translate_stmt = trans_stmt ud_dists {declc with dconstrain= None} in let trans_single_stmt s = - match trans_stmt s with + match translate_stmt s with | [s] -> s | s -> Stmt.Fixed.{pattern= SList s; meta= smeta} in @@ -660,8 +662,26 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = in Stmt.Helpers.[ensure_var (for_each bodyfn) iteratee' smeta] | Ast.FunDef - {returntype; funname; captures= Some (implname, captures); arguments; _} - -> + { returntype + ; funname + ; captures= Some (implname, captures) + ; arguments + ; body } -> + closures := + Program. + { fdrt= + (match returntype with Void -> None | ReturnType ut -> Some ut) + ; fdname= implname + ; fdcaptures= + Some (List.map ~f:(fun (ad, ty, id) -> (ad, id, ty)) captures) + ; fdargs= List.map ~f:trans_arg arguments + ; fdbody= + trans_stmt ud_dists + {dconstrain= None; dadlevel= AutoDiffable} + body + |> unwrap_block_or_skip + ; fdloc= ts.smeta.loc } + :: !closures ; let arguments = List.map ~f:(fun (ad, ut, _) -> (ad, ut)) arguments in let type_ = UnsizedType.UFun (arguments, returntype, true) in let captures = @@ -697,7 +717,7 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = trans_decl declc smeta decl_type (Program.map_transformation trans_expr transformation) identifier initial_value - | Ast.Block stmts -> Block (List.concat_map ~f:trans_stmt stmts) |> swrap + | Ast.Block stmts -> Block (List.concat_map ~f:translate_stmt stmts) |> swrap | Ast.Return e -> Return (Some (trans_expr e)) |> swrap | Ast.ReturnVoid -> Return None |> swrap | Ast.Break -> Break |> swrap @@ -883,6 +903,7 @@ let migrate_checks_to_end_of_block stmts = not_checks @ checks let trans_prog filename (p : Ast.typed_program) : Program.Typed.t = + closures := [] ; let {Ast.functionblock; datablock; transformeddatablock; modelblock; _} = p in @@ -988,7 +1009,7 @@ let trans_prog filename (p : Ast.typed_program) : Program.Typed.t = "_" ^ prog_name else prog_name in - { functions_block= map (trans_fun_def ud_dists) functionblock + { functions_block= map (trans_fun_def ud_dists) functionblock @ !closures ; input_vars ; prepare_data ; log_prob diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 0bf4de14fa..01ab6959fe 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -1020,8 +1020,10 @@ let semantic_check_nr_fn_app ~loc ~cf id es = let semantic_check_assignment_read_only ~loc id = Validate.( - if Symbol_table.get_read_only vm id.name then - Semantic_error.cannot_assign_to_read_only loc id.name |> error + if + Symbol_table.get_read_only vm id.name + || not (Symbol_table.check_is_local vm id.name) + then Semantic_error.cannot_assign_to_read_only loc id.name |> error else ok ()) (* Variables from previous blocks are read-only. @@ -1587,11 +1589,12 @@ and semantic_check_fundef_overloaded ~loc id arg_tys rt = else check_fresh_variable id true) (** WARNING: side effecting *) -and semantic_check_fundef_decl ~loc id body = +and semantic_check_fundef_decl ~loc ~is_closure id body = Validate.( match body with | {stmt= Skip; _} -> - if Symbol_table.check_is_unassigned vm id.name then + if is_closure then error @@ Semantic_error.closure_without_def loc + else if Symbol_table.check_is_unassigned vm id.name then error @@ Semantic_error.fn_decl_without_def loc else let () = Symbol_table.set_is_unassigned vm id.name in @@ -1600,6 +1603,14 @@ and semantic_check_fundef_decl ~loc id body = Symbol_table.set_is_assigned vm id.name ; ok ()) +and semantic_check_closure_id ~loc ~is_closure id = + if not is_closure then Validate.ok () + else + let f suffix = not (String.is_suffix ~suffix id) in + if List.for_all ~f ["_rng"; "_lpdf"; "_lpmf"; "_lcdf"; "_lccdf"; "_lp"] + then Validate.ok () + else Validate.error @@ Semantic_error.impure_closure loc + and semantic_check_fundef_dist_rt ~loc id return_ty = Validate.( let is_dist = @@ -1671,7 +1682,7 @@ and semantic_check_fundef_return_tys ~loc id return_type body = then ok () else error @@ Semantic_error.incompatible_return_types loc) -and semantic_check_fundef ~loc ~cf return_ty id args body = +and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = let uargs = List.map args ~f:(fun (at, ut, id) -> Validate.( @@ -1691,64 +1702,83 @@ and semantic_check_fundef ~loc ~cf return_ty id args body = let uarg_identifiers = List.map ~f:(fun (_, _, z) -> z) uargs in let uarg_names = List.map ~f:(fun x -> x.name) uarg_identifiers in semantic_check_fundef_overloaded ~loc id uarg_types urt - |> apply_const (semantic_check_fundef_decl ~loc id body) - >>= fun () -> - (* WARNING: SIDE EFFECTING *) - Symbol_table.enter vm id.name (Functions, UFun (uarg_types, urt, false)) ; - (* Check that function args and loop identifiers are not modified in - function. (passed by const ref)*) - List.iter ~f:(Symbol_table.set_read_only vm) uarg_names ; - semantic_check_fundef_dist_rt ~loc id urt - |> apply_const (semantic_check_pdf_fundef_first_arg_ty ~loc id uarg_types) - |> apply_const (semantic_check_pmf_fundef_first_arg_ty ~loc id uarg_types) - >>= fun () -> - (* WARNING: SIDE EFFECTING *) - Symbol_table.begin_scope vm ; - List.map ~f:(fun x -> check_fresh_variable x false) uarg_identifiers - |> sequence - |> apply_const (semantic_check_fundef_distinct_arg_ids ~loc uarg_names) - |> map ~f:(List.iter ~f:Fn.id) + |> apply_const (semantic_check_fundef_decl ~loc ~is_closure id body) + |> apply_const (semantic_check_closure_id ~loc ~is_closure id.name) >>= fun () -> - (* TODO: Bob was suggesting that function arguments must be allowed to - shadow user defined functions but not library functions. - Should we allow for that? - *) - (* We treat DataOnly arguments as if they are data and AutoDiffable arguments - as if they are parameters, for the purposes of type checking. - *) - (* WARNING: SIDE EFFECTING *) - let _ : unit Base.List.Or_unequal_lengths.t = - List.iter2 ~f:(Symbol_table.enter vm) uarg_names - (List.map - ~f:(function - | UnsizedType.DataOnly, ut -> (Data, ut) - | AutoDiffable, ut -> (Param, ut)) - uarg_types) - and context = - let is_udf_dist name = - List.exists - ~f:(fun suffix -> String.is_suffix name ~suffix) - Utils.distribution_suffices - in - { cf with - in_fun_def= true - ; in_rng_fun_def= String.is_suffix id.name ~suffix:"_rng" - ; in_lp_fun_def= String.is_suffix id.name ~suffix:"_lp" - ; in_udf_dist_def= is_udf_dist id.name - ; in_returning_fun_def= urt <> Void } + let body', captures = + Symbol_table.with_capturing_scope vm (fun vm -> + (* WARNING: SIDE EFFECTING *) + Symbol_table.enter vm id.name + (Functions, UFun (uarg_types, urt, is_closure)) ; + (* Check that function args and loop identifiers are not modified in + function. (passed by const ref)*) + List.iter ~f:(Symbol_table.set_read_only vm) uarg_names ; + semantic_check_fundef_dist_rt ~loc id urt + |> apply_const + (semantic_check_pdf_fundef_first_arg_ty ~loc id uarg_types) + |> apply_const + (semantic_check_pmf_fundef_first_arg_ty ~loc id uarg_types) + >>= fun () -> + (* WARNING: SIDE EFFECTING *) + Symbol_table.begin_scope vm ; + List.map ~f:(fun x -> check_fresh_variable x false) uarg_identifiers + |> sequence + |> apply_const + (semantic_check_fundef_distinct_arg_ids ~loc uarg_names) + |> map ~f:(List.iter ~f:Fn.id) + >>= fun () -> + (* We treat DataOnly arguments as if they are data and AutoDiffable arguments + as if they are parameters, for the purposes of type checking. *) + (* WARNING: SIDE EFFECTING *) + List.iter2_exn ~f:(Symbol_table.enter vm) uarg_names + (List.map + ~f:(function + | UnsizedType.DataOnly, ut -> (Data, ut) + | AutoDiffable, ut -> (Param, ut)) + uarg_types) ; + let context = + let is_udf_dist name = + List.exists + ~f:(fun suffix -> String.is_suffix name ~suffix) + Utils.distribution_suffices + in + { cf with + in_fun_def= true + ; in_rng_fun_def= String.is_suffix id.name ~suffix:"_rng" + ; in_lp_fun_def= String.is_suffix id.name ~suffix:"_lp" + ; in_udf_dist_def= is_udf_dist id.name + ; in_returning_fun_def= urt <> Void } + in + semantic_check_statement context body ) in - let body' = semantic_check_statement context body in body' >>= fun ub -> semantic_check_fundef_return_tys ~loc id urt ub |> map ~f:(fun () -> (* WARNING: SIDE EFFECTING *) Symbol_table.end_scope vm ; + let closure_info = + if is_closure then + let loc = id.id_loc.begin_loc in + Some + ( Fmt.strf "%s_L%iC%i" id.name loc.line_num loc.col_num + , Set.to_list captures + |> List.filter_map ~f:(fun name -> + match Symbol_table.look vm name with + | None | Some (Functions, UFun (_, _, false)) -> None + | Some (block, type_) -> + Symbol_table.set_read_only vm name ; + Some + ( calculate_autodifftype cf block type_ + , type_ + , name ) ) ) + else None + in let stmt = FunDef { returntype= urt ; funname= id - ; captures= None + ; captures= closure_info ; arguments= uargs ; body= ub } in @@ -1790,8 +1820,9 @@ and semantic_check_statement cf (s : Ast.untyped_statement) : ; is_global } -> semantic_check_var_decl ~loc ~cf st transformation identifier initial_value is_global - | FunDef {returntype; funname; captures= _; arguments; body} -> - semantic_check_fundef ~loc ~cf returntype funname arguments body + | FunDef {returntype; funname; captures; arguments; body} -> + semantic_check_fundef ~loc ~cf ~is_closure:(is_some captures) returntype + funname arguments body (* == Untyped programs ====================================================== *) diff --git a/src/frontend/Semantic_error.ml b/src/frontend/Semantic_error.ml index 636af460fa..7e10d825d6 100644 --- a/src/frontend/Semantic_error.ml +++ b/src/frontend/Semantic_error.ml @@ -409,6 +409,8 @@ module StatementError = struct | MismatchFunDefDecl of string * UnsizedType.t option | FunDeclExists of string | FunDeclNoDefn + | ClosureNoDefn + | ImpureClosure | FunDeclNeedsBlock | NonRealProbFunDef | ProbDensityNonRealVariate of UnsizedType.t option @@ -419,7 +421,9 @@ module StatementError = struct let pp ppf = function | CannotAssignToReadOnly name -> Fmt.pf ppf - "Cannot assign to function argument or loop identifier '%s'." name + "Cannot assign to function argument, captured variable or loop \ + identifier '%s'." + name | CannotAssignToGlobal name -> Fmt.pf ppf "Cannot assign to global variable '%s' declared in previous blocks." @@ -484,6 +488,13 @@ For example, "target += normal_lpdf(y, 0, 1)" should become "y ~ normal(0, 1)." name | FunDeclNoDefn -> Fmt.pf ppf "Some function is declared without specifying a definition." + | ClosureNoDefn -> + Fmt.pf ppf + "Local function is declared without specifying a definition." + | ImpureClosure -> + Fmt.pf ppf + "Local function cannot have suffix _rng, _lpdf, _lpmf, _lcdf, \ + _lccdf, or _lp." | FunDeclNeedsBlock -> Fmt.pf ppf "Function definitions must be wrapped in curly braces." | NonRealProbFunDef -> @@ -711,6 +722,7 @@ let fn_decl_exists loc name = StatementError (loc, StatementError.FunDeclExists name) let fn_decl_without_def loc = StatementError (loc, StatementError.FunDeclNoDefn) +let closure_without_def loc = StatementError (loc, StatementError.ClosureNoDefn) let fn_decl_needs_block loc = StatementError (loc, StatementError.FunDeclNeedsBlock) @@ -718,6 +730,8 @@ let fn_decl_needs_block loc = let non_real_prob_fn_def loc = StatementError (loc, StatementError.NonRealProbFunDef) +let impure_closure loc = StatementError (loc, StatementError.ImpureClosure) + let prob_density_non_real_variate loc ut_opt = StatementError (loc, StatementError.ProbDensityNonRealVariate ut_opt) diff --git a/src/frontend/Semantic_error.mli b/src/frontend/Semantic_error.mli index 1e33a09f6e..c8ad05f706 100644 --- a/src/frontend/Semantic_error.mli +++ b/src/frontend/Semantic_error.mli @@ -117,8 +117,10 @@ val mismatched_fn_def_decl : val fn_decl_exists : Location_span.t -> string -> t val fn_decl_without_def : Location_span.t -> t +val closure_without_def : Location_span.t -> t val fn_decl_needs_block : Location_span.t -> t val non_real_prob_fn_def : Location_span.t -> t +val impure_closure : Location_span.t -> t val prob_density_non_real_variate : Location_span.t -> UnsizedType.t option -> t diff --git a/src/frontend/Symbol_table.ml b/src/frontend/Symbol_table.ml index a6d975ae21..b7d284353c 100644 --- a/src/frontend/Symbol_table.ml +++ b/src/frontend/Symbol_table.ml @@ -10,6 +10,8 @@ type 'a state = ; scopedepth: int ref ; readonly: (string, unit) Hashtbl.t ; isunassigned: (string, unit) Hashtbl.t + ; locals: String.Set.t ref + ; captures: String.Set.t ref ; globals: (string, unit) Hashtbl.t } let initialize () = @@ -18,9 +20,12 @@ let initialize () = ; scopedepth= ref 0 ; readonly= String.Table.create () ; isunassigned= String.Table.create () + ; locals= ref String.Set.empty + ; captures= ref String.Set.empty ; globals= String.Table.create () } let enter s str ty = + s.locals := Set.add !(s.locals) str ; let _ : [`Duplicate | `Ok] = if !(s.scopedepth) = 0 then Hashtbl.add s.globals ~key:str ~data:() else `Ok @@ -28,7 +33,12 @@ let enter s str ty = let _ : [`Duplicate | `Ok] = Hashtbl.add s.table ~key:str ~data:ty in Stack.push s.stack str -let look s str = Hashtbl.find s.table str +let look s str = + match Hashtbl.find s.table str with + | Some x when not (Set.mem !(s.locals) str) -> + s.captures := Set.add !(s.captures) str ; + Some x + | x -> x let begin_scope s = s.scopedepth := !(s.scopedepth) + 1 ; @@ -48,6 +58,18 @@ let end_scope s = let _ : string = Stack.pop_exn s.stack in () +let with_capturing_scope s f = + let captures = !(s.captures) in + let locals = !(s.locals) in + s.locals := String.Set.empty ; + let x = f s in + s.locals := locals ; + let c = !(s.captures) in + s.captures := captures ; + (x, c) + +let check_is_local s str = Set.mem !(s.locals) str + let set_read_only s str = let _ : [`Duplicate | `Ok] = Hashtbl.add s.readonly ~key:str ~data:() in () @@ -76,4 +98,6 @@ let unsafe_clear_symbol_table s = s.scopedepth := 0 ; Hashtbl.clear s.readonly ; Hashtbl.clear s.isunassigned ; - Hashtbl.clear s.globals + Hashtbl.clear s.globals ; + s.locals := String.Set.empty ; + s.captures := String.Set.empty diff --git a/src/frontend/Symbol_table.mli b/src/frontend/Symbol_table.mli index 60dae7583a..952568015f 100644 --- a/src/frontend/Symbol_table.mli +++ b/src/frontend/Symbol_table.mli @@ -18,6 +18,13 @@ val begin_scope : 'a state -> unit val end_scope : 'a state -> unit (** Used to end a local scope, purging the symbol table of all symbols added in that scope *) +val with_capturing_scope : + 'a state -> ('a state -> 'b) -> 'b * Core_kernel.String.Set.t +(** Used to record captures inside a closure *) + +val check_is_local : 'a state -> string -> bool +(** Check whether an identifier is captured or not *) + val set_read_only : 'a state -> string -> unit (** Used to add a read only label to an identifier *) diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index 4f95ade5f8..abc9ccffae 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -12,7 +12,7 @@ Expected "functions {" or "data {" or "transformed data {" or "parameters {" or program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 679. +## Ends in an error in state: 687. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -68,7 +68,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 681. +## Ends in an error in state: 689. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -130,7 +130,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK WHILE ## -## Ends in an error in state: 678. +## Ends in an error in state: 686. ## ## top_var_type -> CHOLESKYFACTORCORR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCORR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -143,7 +143,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR WHILE ## -## Ends in an error in state: 677. +## Ends in an error in state: 685. ## ## top_var_type -> CHOLESKYFACTORCORR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCORR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -156,7 +156,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 668. +## Ends in an error in state: 676. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -212,7 +212,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 670. +## Ends in an error in state: 678. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -268,7 +268,7 @@ Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 671. +## Ends in an error in state: 679. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -330,7 +330,7 @@ Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 669. +## Ends in an error in state: 677. ## ## option(pair(COMMA,expression)) -> COMMA . lhs [ RBRACK ] ## option(pair(COMMA,expression)) -> COMMA . non_lhs [ RBRACK ] @@ -343,7 +343,7 @@ Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 674. +## Ends in an error in state: 682. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -405,7 +405,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK WHILE ## -## Ends in an error in state: 667. +## Ends in an error in state: 675. ## ## top_var_type -> CHOLESKYFACTORCOV LBRACK . lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCOV LBRACK . non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -418,7 +418,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CHOLESKYFACTORCOV WHILE ## -## Ends in an error in state: 666. +## Ends in an error in state: 674. ## ## top_var_type -> CHOLESKYFACTORCOV . LBRACK lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCOV . LBRACK non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -431,7 +431,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CORRMATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 662. +## Ends in an error in state: 670. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -487,7 +487,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 664. +## Ends in an error in state: 672. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -549,7 +549,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX LBRACK WHILE ## -## Ends in an error in state: 661. +## Ends in an error in state: 669. ## ## top_var_type -> CORRMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CORRMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -562,7 +562,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX WHILE ## -## Ends in an error in state: 660. +## Ends in an error in state: 668. ## ## top_var_type -> CORRMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CORRMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -575,7 +575,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 656. +## Ends in an error in state: 664. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -631,7 +631,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 658. +## Ends in an error in state: 666. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -693,7 +693,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK WHILE ## -## Ends in an error in state: 655. +## Ends in an error in state: 663. ## ## top_var_type -> COVMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> COVMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -706,7 +706,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX WHILE ## -## Ends in an error in state: 654. +## Ends in an error in state: 662. ## ## top_var_type -> COVMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> COVMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -719,7 +719,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE INT LABRACK WHILE ## -## Ends in an error in state: 652. +## Ends in an error in state: 660. ## ## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -731,7 +731,7 @@ Expected "lower = " expression or "upper = " expression for integer bounds. program: DATABLOCK LBRACE INT LBRACE ## -## Ends in an error in state: 651. +## Ends in an error in state: 659. ## ## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -743,7 +743,7 @@ Expected range constraint or identifier as part of top-level variable declaratio program: DATABLOCK LBRACE MATRIX LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 637. +## Ends in an error in state: 645. ## ## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -758,7 +758,7 @@ Expected "[" expression "," expression "]" for matrix sizes as part of top-level program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 641. +## Ends in an error in state: 649. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -814,7 +814,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE TILDE ## -## Ends in an error in state: 643. +## Ends in an error in state: 651. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -876,7 +876,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA WHILE ## -## Ends in an error in state: 640. +## Ends in an error in state: 648. ## ## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -889,7 +889,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 639. +## Ends in an error in state: 647. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -947,7 +947,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 647. +## Ends in an error in state: 655. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1003,7 +1003,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 649. +## Ends in an error in state: 657. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1065,7 +1065,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 646. +## Ends in an error in state: 654. ## ## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1078,7 +1078,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 645. +## Ends in an error in state: 653. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -1141,7 +1141,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK WHILE ## -## Ends in an error in state: 638. +## Ends in an error in state: 646. ## ## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1156,7 +1156,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX WHILE ## -## Ends in an error in state: 636. +## Ends in an error in state: 644. ## ## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1171,7 +1171,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE ORDERED LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 632. +## Ends in an error in state: 640. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1227,7 +1227,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 634. +## Ends in an error in state: 642. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1289,7 +1289,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED LBRACK WHILE ## -## Ends in an error in state: 631. +## Ends in an error in state: 639. ## ## top_var_type -> ORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1302,7 +1302,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED WHILE ## -## Ends in an error in state: 630. +## Ends in an error in state: 638. ## ## top_var_type -> ORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1315,7 +1315,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 626. +## Ends in an error in state: 634. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1371,7 +1371,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 628. +## Ends in an error in state: 636. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1433,7 +1433,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK WHILE ## -## Ends in an error in state: 625. +## Ends in an error in state: 633. ## ## top_var_type -> POSITIVEORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> POSITIVEORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1446,7 +1446,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED WHILE ## -## Ends in an error in state: 624. +## Ends in an error in state: 632. ## ## top_var_type -> POSITIVEORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> POSITIVEORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1459,7 +1459,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE RBRACE WHILE ## -## Ends in an error in state: 706. +## Ends in an error in state: 714. ## ## 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 [ # ] ## @@ -1471,7 +1471,7 @@ Expected "transformed data {" or "parameters {" or "transformed parameters {" or program: DATABLOCK LBRACE REAL IDENTIFIER SEMICOLON WHILE ## -## Ends in an error in state: 695. +## Ends in an error in state: 703. ## ## list(top_var_decl_no_assign) -> top_var_decl_no_assign . list(top_var_decl_no_assign) [ RBRACE ] ## @@ -1483,7 +1483,7 @@ Only top-level variable declarations allowed in data and parameters blocks. program: DATABLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 686. +## Ends in an error in state: 694. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier . dims optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## id_and_optional_assignment(no_assign) -> decl_identifier . optional_assignment(no_assign) [ SEMICOLON ] @@ -1496,7 +1496,7 @@ program: DATABLOCK LBRACE REAL TRUNCATE WHILE program: DATABLOCK LBRACE REAL LBRACE ## -## Ends in an error in state: 622. +## Ends in an error in state: 630. ## ## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -1508,7 +1508,7 @@ Identifier expected after type in top-level variable declaration. program: DATABLOCK LBRACE ROWVECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 616. +## Ends in an error in state: 624. ## ## top_var_type -> ROWVECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ROWVECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1521,7 +1521,7 @@ Expected identifier as part of top-level variable declaration. program: DATABLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 618. +## Ends in an error in state: 626. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1577,7 +1577,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 620. +## Ends in an error in state: 628. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1639,7 +1639,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR LBRACK WHILE ## -## Ends in an error in state: 617. +## Ends in an error in state: 625. ## ## top_var_type -> ROWVECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ROWVECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1652,7 +1652,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR WHILE ## -## Ends in an error in state: 615. +## Ends in an error in state: 623. ## ## top_var_type -> ROWVECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ROWVECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1665,7 +1665,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE SIMPLEX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 611. +## Ends in an error in state: 619. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1721,7 +1721,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 613. +## Ends in an error in state: 621. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1783,7 +1783,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX LBRACK WHILE ## -## Ends in an error in state: 610. +## Ends in an error in state: 618. ## ## top_var_type -> SIMPLEX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> SIMPLEX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1796,7 +1796,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX WHILE ## -## Ends in an error in state: 609. +## Ends in an error in state: 617. ## ## top_var_type -> SIMPLEX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> SIMPLEX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1809,7 +1809,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE UNITVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 605. +## Ends in an error in state: 613. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1865,7 +1865,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 607. +## Ends in an error in state: 615. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1927,7 +1927,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR LBRACK WHILE ## -## Ends in an error in state: 604. +## Ends in an error in state: 612. ## ## top_var_type -> UNITVECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> UNITVECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1940,7 +1940,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR WHILE ## -## Ends in an error in state: 603. +## Ends in an error in state: 611. ## ## top_var_type -> UNITVECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> UNITVECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1953,7 +1953,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 573. +## Ends in an error in state: 581. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -1979,7 +1979,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 577. +## Ends in an error in state: 585. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2003,14 +2003,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ## 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 535, spurious reduction of production constr_expression -> identifier +## In state 543, spurious reduction of production constr_expression -> identifier ## Expected ">" after "multiplier = " expression. program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ASSIGN WHILE ## -## Ends in an error in state: 576. +## Ends in an error in state: 584. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER ASSIGN . constr_expression [ RABRACK ] ## @@ -2022,7 +2022,7 @@ Expected "multiplier = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER WHILE ## -## Ends in an error in state: 575. +## Ends in an error in state: 583. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER . ASSIGN constr_expression [ RABRACK ] ## @@ -2034,7 +2034,7 @@ Expected "multiplier = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 574. +## Ends in an error in state: 582. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA . MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## @@ -2046,7 +2046,7 @@ Expected ">" or ", multiplier = " expression (not containing binary logical oper program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN WHILE ## -## Ends in an error in state: 572. +## Ends in an error in state: 580. ## ## offset_mult -> OFFSET ASSIGN . constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET ASSIGN . constr_expression [ RABRACK ] @@ -2059,7 +2059,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET WHILE ## -## Ends in an error in state: 571. +## Ends in an error in state: 579. ## ## offset_mult -> OFFSET . ASSIGN constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET . ASSIGN constr_expression [ RABRACK ] @@ -2072,7 +2072,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 587. +## Ends in an error in state: 595. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2098,7 +2098,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 591. +## Ends in an error in state: 599. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2122,14 +2122,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIG ## 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 535, spurious reduction of production constr_expression -> identifier +## In state 543, spurious reduction of production constr_expression -> identifier ## Expected ">" after "upper = " expression. program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIGN WHILE ## -## Ends in an error in state: 590. +## Ends in an error in state: 598. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER ASSIGN . constr_expression [ RABRACK ] ## @@ -2141,7 +2141,7 @@ Expected expression (not containing binary logical operators) after "upper = ". program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER WHILE ## -## Ends in an error in state: 589. +## Ends in an error in state: 597. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER . ASSIGN constr_expression [ RABRACK ] ## @@ -2153,7 +2153,7 @@ Expected "=" expression (not containing binary logical operators) after "upper". program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 588. +## Ends in an error in state: 596. ## ## range -> LOWER ASSIGN constr_expression COMMA . UPPER ASSIGN constr_expression [ RABRACK ] ## @@ -2165,7 +2165,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA WHILE program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN WHILE ## -## Ends in an error in state: 586. +## Ends in an error in state: 594. ## ## range -> LOWER ASSIGN . constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER ASSIGN . constr_expression [ RABRACK ] @@ -2178,7 +2178,7 @@ An expression (not containing binary logical operators) is expected for type low program: DATABLOCK LBRACE VECTOR LABRACK LOWER WHILE ## -## Ends in an error in state: 585. +## Ends in an error in state: 593. ## ## range -> LOWER . ASSIGN constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER . ASSIGN constr_expression [ RABRACK ] @@ -2191,7 +2191,7 @@ Expected "=" expression (not containing binary logical operators), after "lower" program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 596. +## Ends in an error in state: 604. ## ## top_var_type -> VECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> VECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2204,7 +2204,7 @@ Expected "[" expression "]" for vector size. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN WHILE ## -## Ends in an error in state: 579. +## Ends in an error in state: 587. ## ## offset_mult -> MULTIPLIER ASSIGN . constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER ASSIGN . constr_expression [ RABRACK ] @@ -2217,7 +2217,7 @@ Expected expression (not containing binary logical operators) after "multiplier program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER WHILE ## -## Ends in an error in state: 578. +## Ends in an error in state: 586. ## ## offset_mult -> MULTIPLIER . ASSIGN constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER . ASSIGN constr_expression [ RABRACK ] @@ -2230,7 +2230,7 @@ Expected "=" expression (not containing binary logical operators) ">" after "mul program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG REALNUMERAL WHILE ## -## Ends in an error in state: 536. +## Ends in an error in state: 544. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2255,7 +2255,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG WHILE ## -## Ends in an error in state: 534. +## Ends in an error in state: 542. ## ## constr_expression -> BANG . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2267,7 +2267,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 546. +## Ends in an error in state: 554. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2292,7 +2292,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS WHILE ## -## Ends in an error in state: 533. +## Ends in an error in state: 541. ## ## constr_expression -> MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2304,7 +2304,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 547. +## Ends in an error in state: 555. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2329,7 +2329,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS WHILE ## -## Ends in an error in state: 532. +## Ends in an error in state: 540. ## ## constr_expression -> PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2341,7 +2341,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE DIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 564. +## Ends in an error in state: 572. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2366,7 +2366,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE DIVIDE WHILE ## -## Ends in an error in state: 563. +## Ends in an error in state: 571. ## ## constr_expression -> constr_expression DIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2378,7 +2378,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTDIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 562. +## Ends in an error in state: 570. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2403,7 +2403,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTDIVIDE WHILE ## -## Ends in an error in state: 561. +## Ends in an error in state: 569. ## ## constr_expression -> constr_expression ELTDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2415,7 +2415,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTTIMES REALNUMERAL WHILE ## -## Ends in an error in state: 560. +## Ends in an error in state: 568. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2440,7 +2440,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTTIMES WHILE ## -## Ends in an error in state: 559. +## Ends in an error in state: 567. ## ## constr_expression -> constr_expression ELTTIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2452,7 +2452,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE HAT REALNUMERAL WHILE ## -## Ends in an error in state: 542. +## Ends in an error in state: 550. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2477,7 +2477,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE HAT WHILE ## -## Ends in an error in state: 541. +## Ends in an error in state: 549. ## ## constr_expression -> constr_expression HAT . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2489,7 +2489,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 538. +## Ends in an error in state: 546. ## ## constr_expression -> constr_expression LBRACK . indexes RBRACK [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2501,7 +2501,7 @@ Ill-formed expression. Expected expression followed by "]". program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LDIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 552. +## Ends in an error in state: 560. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2526,7 +2526,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LDIVIDE WHILE ## -## Ends in an error in state: 551. +## Ends in an error in state: 559. ## ## constr_expression -> constr_expression LDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2538,7 +2538,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 566. +## Ends in an error in state: 574. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2563,7 +2563,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MINUS WHILE ## -## Ends in an error in state: 565. +## Ends in an error in state: 573. ## ## constr_expression -> constr_expression MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2575,7 +2575,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MODULO REALNUMERAL WHILE ## -## Ends in an error in state: 558. +## Ends in an error in state: 566. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2600,7 +2600,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MODULO WHILE ## -## Ends in an error in state: 557. +## Ends in an error in state: 565. ## ## constr_expression -> constr_expression MODULO . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2612,7 +2612,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 556. +## Ends in an error in state: 564. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression PLUS constr_expression . [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2637,7 +2637,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE PLUS WHILE ## -## Ends in an error in state: 555. +## Ends in an error in state: 563. ## ## constr_expression -> constr_expression PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2649,7 +2649,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE TIMES REALNUMERAL WHILE ## -## Ends in an error in state: 550. +## Ends in an error in state: 558. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2674,7 +2674,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE TIMES WHILE ## -## Ends in an error in state: 549. +## Ends in an error in state: 557. ## ## constr_expression -> constr_expression TIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2686,7 +2686,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE WHILE ## -## Ends in an error in state: 535. +## Ends in an error in state: 543. ## ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## common_expression -> identifier . LPAREN lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2701,7 +2701,7 @@ Expression expected. Ill-formed expression. Suggested alternatives: a standalone program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN WHILE ## -## Ends in an error in state: 531. +## Ends in an error in state: 539. ## ## range -> UPPER ASSIGN . constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER ASSIGN . constr_expression [ RABRACK ] @@ -2714,7 +2714,7 @@ Expression (not containing binary logical operators) expected after "upper =". I program: DATABLOCK LBRACE VECTOR LABRACK UPPER WHILE ## -## Ends in an error in state: 530. +## Ends in an error in state: 538. ## ## range -> UPPER . ASSIGN constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER . ASSIGN constr_expression [ RABRACK ] @@ -2727,7 +2727,7 @@ Expect "=" expression ">" after seeing "upper". program: DATABLOCK LBRACE VECTOR LABRACK WHILE ## -## Ends in an error in state: 529. +## Ends in an error in state: 537. ## ## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## type_constraint -> LABRACK . offset_mult RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2740,7 +2740,7 @@ We expect to see "lower =", "upper =", "offset =" or "multiplier =" followed by program: DATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## -## Ends in an error in state: 683. +## Ends in an error in state: 691. ## ## decl(top_var_type,no_assign) -> top_var_type . decl_identifier dims optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] @@ -2753,7 +2753,7 @@ We expect to see an identifier after a sized type. program: DATABLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 598. +## Ends in an error in state: 606. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2809,7 +2809,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 600. +## Ends in an error in state: 608. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2871,7 +2871,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE program: DATABLOCK LBRACE VECTOR LBRACK WHILE ## -## Ends in an error in state: 597. +## Ends in an error in state: 605. ## ## top_var_type -> VECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> VECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2884,7 +2884,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK WHILE program: DATABLOCK LBRACE VECTOR WHILE ## -## Ends in an error in state: 528. +## Ends in an error in state: 536. ## ## top_var_type -> VECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> VECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2897,7 +2897,7 @@ program: DATABLOCK LBRACE VECTOR WHILE program: DATABLOCK LBRACE WHILE ## -## Ends in an error in state: 527. +## Ends in an error in state: 535. ## ## data_block -> DATABLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2909,7 +2909,7 @@ Expected top-level variable declaration or "}". program: DATABLOCK WHILE ## -## Ends in an error in state: 526. +## Ends in an error in state: 534. ## ## data_block -> DATABLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2921,7 +2921,7 @@ program: DATABLOCK WHILE program: FUNCTIONBLOCK LBRACE RBRACE COVMATRIX ## -## Ends in an error in state: 525. +## Ends in an error in state: 533. ## ## 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 [ # ] ## @@ -2969,7 +2969,7 @@ Either a number of unsized dimensions is expected as part of a function return t program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN RPAREN SEMICOLON WHILE ## -## Ends in an error in state: 522. +## Ends in an error in state: 530. ## ## list(function_def) -> function_def . list(function_def) [ RBRACE ] ## @@ -3005,7 +3005,7 @@ Either "{" statement "}" is expected for a function definition or ";" for a func program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR IDENTIFIER COMMA WHILE ## -## Ends in an error in state: 518. +## Ends in an error in state: 491. ## ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl COMMA . separated_nonempty_list(COMMA,arg_decl) [ RPAREN ] ## @@ -3017,7 +3017,7 @@ An argument declaration (unsized type followed by identifier) is expected. program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR IDENTIFIER WHILE ## -## Ends in an error in state: 517. +## Ends in an error in state: 490. ## ## 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 ] @@ -3102,7 +3102,7 @@ program: FUNCTIONBLOCK WHILE program: GENERATEDQUANTITIESBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 750. +## Ends in an error in state: 759. ## ## 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 [ # ] ## @@ -3114,7 +3114,7 @@ Expected end of file after end of generated quantities block. program: GENERATEDQUANTITIESBLOCK LBRACE VOID ## -## Ends in an error in state: 747. +## Ends in an error in state: 756. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -3126,7 +3126,7 @@ Variable declaration or statement or "}" expected in generated quantities block. program: GENERATEDQUANTITIESBLOCK WHILE ## -## Ends in an error in state: 746. +## Ends in an error in state: 755. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -3550,7 +3550,7 @@ program: MODELBLOCK LBRACE MATRIX WHILE program: MODELBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 745. +## Ends in an error in state: 754. ## ## 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 [ # ] ## @@ -3562,7 +3562,7 @@ Expected "generated quantities {" or end of file after end of model block. program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 494. +## Ends in an error in state: 504. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3618,7 +3618,7 @@ Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 495. +## Ends in an error in state: 505. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3680,7 +3680,7 @@ Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN WHILE ## -## Ends in an error in state: 493. +## Ends in an error in state: 503. ## ## option(pair(ASSIGN,expression)) -> ASSIGN . lhs [ SEMICOLON ] ## option(pair(ASSIGN,expression)) -> ASSIGN . non_lhs [ SEMICOLON ] @@ -3693,7 +3693,7 @@ Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE RBRACE ## -## Ends in an error in state: 491. +## Ends in an error in state: 501. ## ## dims -> LBRACK separated_nonempty_list(COMMA,expression) . RBRACK [ SEMICOLON ASSIGN ] ## @@ -3712,7 +3712,7 @@ Ill-formed array sizes. "[" (non-empty comma separated list of expressions) "]" program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 490. +## Ends in an error in state: 500. ## ## dims -> LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ SEMICOLON ASSIGN ] ## @@ -3724,9 +3724,9 @@ Ill-formed array sizes. "[" (non-empty comma separated list of expressions) "]" program: MODELBLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 489. +## Ends in an error in state: 499. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## id_and_optional_assignment(expression) -> decl_identifier . optional_assignment(expression) [ SEMICOLON ] ## ## The known suffix of the stack is as follows: @@ -3737,10 +3737,10 @@ program: MODELBLOCK LBRACE REAL TRUNCATE WHILE program: MODELBLOCK LBRACE REAL LBRACK ## -## Ends in an error in state: 486. +## Ends in an error in state: 496. ## -## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type @@ -3894,7 +3894,7 @@ program: MODELBLOCK LBRACE ROWVECTOR WHILE program: MODELBLOCK LBRACE SEMICOLON VOID ## -## Ends in an error in state: 483. +## Ends in an error in state: 493. ## ## list(vardecl_or_statement) -> vardecl_or_statement . list(vardecl_or_statement) [ RBRACE ] ## @@ -4050,7 +4050,7 @@ program: MODELBLOCK LBRACE VECTOR WHILE program: MODELBLOCK LBRACE VOID ## -## Ends in an error in state: 742. +## Ends in an error in state: 751. ## ## model_block -> MODELBLOCK LBRACE . list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4062,7 +4062,7 @@ Variable declaration, statement or "}" expected. program: MODELBLOCK WHILE ## -## Ends in an error in state: 741. +## Ends in an error in state: 750. ## ## model_block -> MODELBLOCK . LBRACE list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4074,7 +4074,7 @@ Expected "{" after "model". program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 734. +## Ends in an error in state: 743. ## ## 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 [ # ] ## @@ -4086,7 +4086,7 @@ program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN program: PARAMETERSBLOCK LBRACE WHILE ## -## Ends in an error in state: 730. +## Ends in an error in state: 739. ## ## parameters_block -> PARAMETERSBLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4098,7 +4098,7 @@ Expected top-level variable declaration or "}". program: PARAMETERSBLOCK WHILE ## -## Ends in an error in state: 729. +## Ends in an error in state: 738. ## ## parameters_block -> PARAMETERSBLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4237,7 +4237,7 @@ program: TRANSFORMEDDATABLOCK LBRACE BREAK WHILE ## ## Ends in an error in state: 383. ## -## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## BREAK @@ -4249,7 +4249,7 @@ program: TRANSFORMEDDATABLOCK LBRACE CONTINUE WHILE ## ## Ends in an error in state: 381. ## -## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## CONTINUE @@ -4261,7 +4261,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON RE ## ## Ends in an error in state: 460. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN @@ -4273,7 +4273,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON RE ## ## Ends in an error in state: 459. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4329,7 +4329,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TR ## ## Ends in an error in state: 463. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs COLON lhs RPAREN @@ -4342,7 +4342,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TR ## Ends in an error in state: 462. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4403,8 +4403,8 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON WH ## ## Ends in an error in state: 458. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs COLON @@ -4416,7 +4416,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL RPAREN V ## ## Ends in an error in state: 380. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs RPAREN @@ -4428,9 +4428,9 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL WHILE ## ## Ends in an error in state: 379. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] @@ -4486,7 +4486,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON REALN ## ## Ends in an error in state: 470. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs COLON non_lhs RPAREN @@ -4498,7 +4498,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON REALN ## ## Ends in an error in state: 469. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4554,7 +4554,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNC ## ## Ends in an error in state: 473. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs COLON lhs RPAREN @@ -4567,7 +4567,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNC ## Ends in an error in state: 472. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4628,8 +4628,8 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON WHILE ## ## Ends in an error in state: 468. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs COLON @@ -4641,7 +4641,7 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE RPAREN VOID ## ## Ends in an error in state: 466. ## -## nested_statement -> FOR LPAREN identifier IN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs RPAREN @@ -4654,9 +4654,9 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE TILDE ## Ends in an error in state: 465. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] -## nested_statement -> FOR LPAREN identifier IN lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] @@ -4717,12 +4717,12 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN WHILE ## ## Ends in an error in state: 378. ## -## nested_statement -> FOR LPAREN identifier IN . lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN @@ -4734,12 +4734,12 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE WHILE ## ## Ends in an error in state: 377. ## -## nested_statement -> FOR LPAREN identifier . IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier @@ -4751,12 +4751,12 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN WHILE ## ## Ends in an error in state: 376. ## -## nested_statement -> FOR LPAREN . identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN @@ -4768,12 +4768,12 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR WHILE ## ## Ends in an error in state: 375. ## -## nested_statement -> FOR . LPAREN identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR @@ -4809,7 +4809,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON ELSE ## ## Ends in an error in state: 476. ## -## nested_statement -> IF LPAREN non_lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN non_lhs RPAREN statement ELSE @@ -4822,8 +4822,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON UNRE ## ## Ends in an error in state: 475. ## -## nested_statement -> IF LPAREN non_lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN non_lhs RPAREN statement @@ -4835,8 +4835,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN VOID ## ## Ends in an error in state: 374. ## -## nested_statement -> IF LPAREN non_lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN non_lhs RPAREN @@ -4848,8 +4848,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL WHILE ## ## Ends in an error in state: 373. ## -## nested_statement -> IF LPAREN non_lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4905,7 +4905,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE RPAREN SEMICOLON ELSE VO ## ## Ends in an error in state: 481. ## -## nested_statement -> IF LPAREN lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN lhs RPAREN statement ELSE @@ -4917,8 +4917,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE RPAREN VOID ## ## Ends in an error in state: 479. ## -## nested_statement -> IF LPAREN lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN lhs RPAREN @@ -4931,8 +4931,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE TILDE ## Ends in an error in state: 478. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> IF LPAREN lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4993,10 +4993,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN WHILE ## ## Ends in an error in state: 372. ## -## nested_statement -> IF LPAREN . lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN @@ -5008,10 +5008,10 @@ program: TRANSFORMEDDATABLOCK LBRACE IF WHILE ## ## Ends in an error in state: 371. ## -## nested_statement -> IF . LPAREN lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF @@ -5023,7 +5023,7 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN REALNUMERAL RPAREN ## ## Ends in an error in state: 366. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB LPAREN non_lhs RPAREN @@ -5035,7 +5035,7 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN REALNUMERAL WHILE ## ## Ends in an error in state: 365. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5091,7 +5091,7 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE RPAREN WHI ## ## Ends in an error in state: 369. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB LPAREN lhs RPAREN @@ -5103,7 +5103,7 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE TILDE ## ## Ends in an error in state: 368. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5165,8 +5165,8 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN WHILE ## ## Ends in an error in state: 364. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN . lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> INCREMENTLOGPROB LPAREN . non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN . lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN . non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB LPAREN @@ -5178,8 +5178,8 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB WHILE ## ## Ends in an error in state: 363. ## -## atomic_statement -> INCREMENTLOGPROB . LPAREN lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> INCREMENTLOGPROB . LPAREN non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB . LPAREN lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB . LPAREN non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB @@ -5201,9 +5201,9 @@ Ill-formed expression. Expected a comma-separated list of expressions. program: TRANSFORMEDDATABLOCK LBRACE LBRACE REALNUMERAL WHILE ## -## Ends in an error in state: 508. +## Ends in an error in state: 519. ## -## atomic_statement -> non_lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> non_lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -5259,26 +5259,26 @@ Ill-formed phrase. Found an expression. This can be followed by a "~", a ",", a program: TRANSFORMEDDATABLOCK LBRACE LBRACE TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 511. -## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> lhs . sized_basic_type id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## Ends in an error in state: 522. +## +## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> lhs . sized_basic_type id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR TRANSPOSE TIMESASSIGN TIMES TILDE ROWVECTOR REAL RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS MATRIX LEQ LDIVIDE LBRACK LABRACK INT IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE COMMA ASSIGN ARROWASSIGN AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -5337,7 +5337,7 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACE VOID ## Ends in an error in state: 334. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## LBRACE @@ -5895,7 +5895,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN STRINGLITERAL WHILE ## ## Ends in an error in state: 331. ## -## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## ## The known suffix of the stack is as follows: @@ -5908,7 +5908,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN TRUNCATE RPAREN WHILE ## ## Ends in an error in state: 332. ## -## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN printables RPAREN @@ -5920,7 +5920,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN WHILE ## ## Ends in an error in state: 330. ## -## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN @@ -5932,7 +5932,7 @@ program: TRANSFORMEDDATABLOCK LBRACE PRINT WHILE ## ## Ends in an error in state: 329. ## -## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT @@ -5942,7 +5942,7 @@ Expected "(" followed by a comma-separated list of expressions or strings follow program: TRANSFORMEDDATABLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 728. +## Ends in an error in state: 737. ## ## 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 [ # ] ## @@ -5954,9 +5954,9 @@ Expected "parameters {", "transformed parameters {", "model {", "generated quant program: TRANSFORMEDDATABLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 713. +## Ends in an error in state: 721. ## -## decl(top_var_type,expression) -> top_var_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## id_and_optional_assignment(expression) -> decl_identifier . optional_assignment(expression) [ SEMICOLON ] ## ## The known suffix of the stack is as follows: @@ -6603,7 +6603,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TR ## ## Ends in an error in state: 401. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) @@ -6807,7 +6807,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN WH ## ## Ends in an error in state: 391. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN @@ -6819,7 +6819,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN TRUNCATE ## ## Ends in an error in state: 390. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) @@ -6839,7 +6839,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN WHILE ## ## Ends in an error in state: 389. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN @@ -6851,7 +6851,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE WHILE ## ## Ends in an error in state: 388. ## -## atomic_statement -> non_lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier @@ -6863,7 +6863,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE WHILE ## ## Ends in an error in state: 387. ## -## atomic_statement -> non_lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE @@ -6875,7 +6875,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN STRINGLITERAL WHILE ## ## Ends in an error in state: 322. ## -## atomic_statement -> REJECT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## ## The known suffix of the stack is as follows: @@ -6913,7 +6913,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE RPAREN WHILE ## ## Ends in an error in state: 323. ## -## atomic_statement -> REJECT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT LPAREN printables RPAREN @@ -6925,7 +6925,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN WHILE ## ## Ends in an error in state: 319. ## -## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT LPAREN @@ -6937,7 +6937,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT WHILE ## ## Ends in an error in state: 318. ## -## atomic_statement -> REJECT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT @@ -6980,7 +6980,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN REALNUMERAL WHILE ## ## Ends in an error in state: 314. ## -## atomic_statement -> RETURN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7083,7 +7083,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE TILDE ## ## Ends in an error in state: 316. ## -## atomic_statement -> RETURN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7160,9 +7160,9 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN WHILE ## ## Ends in an error in state: 312. ## -## atomic_statement -> RETURN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> RETURN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> RETURN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## RETURN @@ -7186,7 +7186,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 307. ## -## atomic_statement -> TARGET PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7242,7 +7242,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 309. ## -## atomic_statement -> TARGET PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7304,8 +7304,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN WHILE ## ## Ends in an error in state: 306. ## -## atomic_statement -> TARGET PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> TARGET PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## TARGET PLUSASSIGN @@ -7317,8 +7317,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET WHILE ## ## Ends in an error in state: 305. ## -## atomic_statement -> TARGET . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> TARGET . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> TARGET . LPAREN RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## ## The known suffix of the stack is as follows: @@ -7331,7 +7331,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 448. ## -## atomic_statement -> lhs ARROWASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7387,7 +7387,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 450. ## -## atomic_statement -> lhs ARROWASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7449,8 +7449,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN WHILE ## ## Ends in an error in state: 447. ## -## atomic_statement -> lhs ARROWASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ARROWASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs ARROWASSIGN @@ -7462,7 +7462,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 443. ## -## atomic_statement -> lhs ASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7518,7 +7518,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 445. ## -## atomic_statement -> lhs ASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7580,8 +7580,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN WHILE ## ## Ends in an error in state: 442. ## -## atomic_statement -> lhs ASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs ASSIGN @@ -7593,7 +7593,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 438. ## -## atomic_statement -> lhs DIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7649,7 +7649,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 440. ## -## atomic_statement -> lhs DIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7711,8 +7711,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN WHILE ## ## Ends in an error in state: 437. ## -## atomic_statement -> lhs DIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs DIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs DIVIDEASSIGN @@ -7724,7 +7724,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 433. ## -## atomic_statement -> lhs ELTDIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7780,7 +7780,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 435. ## -## atomic_statement -> lhs ELTDIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7842,8 +7842,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN WHILE ## ## Ends in an error in state: 432. ## -## atomic_statement -> lhs ELTDIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ELTDIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs ELTDIVIDEASSIGN @@ -7855,7 +7855,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 428. ## -## atomic_statement -> lhs ELTTIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTTIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7911,7 +7911,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 430. ## -## atomic_statement -> lhs ELTTIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTTIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8063,7 +8063,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN RPAREN WHILE ## ## Ends in an error in state: 455. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## ## The known suffix of the stack is as follows: @@ -8108,7 +8108,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE COMMA IDENTIFIER R ## ## Ends in an error in state: 454. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## ## The known suffix of the stack is as follows: @@ -8194,7 +8194,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN WHILE ## ## Ends in an error in state: 453. ## -## atomic_statement -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier LPAREN . lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier LPAREN . non_lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -8209,7 +8209,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 423. ## -## atomic_statement -> lhs MINUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8265,7 +8265,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 425. ## -## atomic_statement -> lhs MINUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8327,8 +8327,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN WHILE ## ## Ends in an error in state: 422. ## -## atomic_statement -> lhs MINUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs MINUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs MINUSASSIGN @@ -8340,7 +8340,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 418. ## -## atomic_statement -> lhs PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8396,7 +8396,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 420. ## -## atomic_statement -> lhs PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8458,8 +8458,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN WHILE ## ## Ends in an error in state: 417. ## -## atomic_statement -> lhs PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs PLUSASSIGN @@ -8469,26 +8469,26 @@ Ill-formed expression. Found L-value "+=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE RBRACE ## -## Ends in an error in state: 720. -## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> lhs . top_var_type id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## Ends in an error in state: 728. +## +## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> lhs . top_var_type id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR UNITVECTOR TRANSPOSE TIMESASSIGN TIMES TILDE SIMPLEX ROWVECTOR REAL RABRACK QMARK POSITIVEORDERED PLUSASSIGN PLUS ORDERED OR NEQUALS MODULO MINUSASSIGN MINUS MATRIX LEQ LDIVIDE LBRACK LABRACK INT IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ASSIGN ARROWASSIGN AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8550,7 +8550,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN RPAREN TRUNC ## ## Ends in an error in state: 415. ## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) @@ -8562,7 +8562,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN RPAREN WHILE ## ## Ends in an error in state: 414. ## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN @@ -8574,7 +8574,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN TRUNCATE RBR ## ## Ends in an error in state: 413. ## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) @@ -8594,7 +8594,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN WHILE ## ## Ends in an error in state: 412. ## -## atomic_statement -> lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN @@ -8606,7 +8606,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE WHILE ## ## Ends in an error in state: 411. ## -## atomic_statement -> lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier @@ -8618,7 +8618,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE WHILE ## ## Ends in an error in state: 410. ## -## atomic_statement -> lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE @@ -8630,7 +8630,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN REALNUMERAL WHILE ## ## Ends in an error in state: 406. ## -## atomic_statement -> lhs TIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8686,7 +8686,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN TRUNCATE TILDE ## ## Ends in an error in state: 408. ## -## atomic_statement -> lhs TIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8748,8 +8748,8 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN WHILE ## ## Ends in an error in state: 405. ## -## atomic_statement -> lhs TIMESASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs TIMESASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TIMESASSIGN @@ -8761,7 +8761,7 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE WHILE ## ## Ends in an error in state: 452. ## -## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier . LPAREN lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier . LPAREN non_lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -8775,10 +8775,10 @@ Ill-formed statement or expression. A statement or expression could be expected program: TRANSFORMEDDATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## -## Ends in an error in state: 710. +## Ends in an error in state: 718. ## -## decl(top_var_type,expression) -> top_var_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -8788,7 +8788,7 @@ Ill-formed top-level variable declaration. Expect an identifier next. program: TRANSFORMEDDATABLOCK LBRACE VOID ## -## Ends in an error in state: 708. +## Ends in an error in state: 716. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -8802,7 +8802,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN REALNUMERAL RPAREN VOID ## ## Ends in an error in state: 304. ## -## nested_statement -> WHILE LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN non_lhs RPAREN @@ -8814,7 +8814,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN REALNUMERAL WHILE ## ## Ends in an error in state: 303. ## -## nested_statement -> WHILE LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8868,9 +8868,9 @@ Ill-formed expression. We expect an expression after "(" for the test of the whi program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE RPAREN VOID ## -## Ends in an error in state: 514. +## Ends in an error in state: 525. ## -## nested_statement -> WHILE LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN lhs RPAREN @@ -8880,10 +8880,10 @@ Ill-formed statement. We expect a statement after ")", for the body of the while program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 513. +## Ends in an error in state: 524. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> WHILE LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8944,8 +8944,8 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN WHILE ## ## Ends in an error in state: 101. ## -## nested_statement -> WHILE LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> WHILE LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN @@ -8957,8 +8957,8 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE WHILE ## ## Ends in an error in state: 100. ## -## nested_statement -> WHILE . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> WHILE . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE @@ -8968,7 +8968,7 @@ After "while", we expect "(" expression ")" statement. program: TRANSFORMEDDATABLOCK WHILE ## -## Ends in an error in state: 707. +## Ends in an error in state: 715. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -8980,7 +8980,7 @@ We expect "{" after "transformed data". program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 740. +## Ends in an error in state: 749. ## ## 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 [ # ] ## @@ -8992,7 +8992,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN program: TRANSFORMEDPARAMETERSBLOCK LBRACE VOID ## -## Ends in an error in state: 736. +## Ends in an error in state: 745. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -9004,7 +9004,7 @@ Expect a statement or top-level variable declaration. program: TRANSFORMEDPARAMETERSBLOCK WHILE ## -## Ends in an error in state: 735. +## Ends in an error in state: 744. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -9016,9 +9016,9 @@ We expect "{" after "transformed parameters". program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE RBRACK ARROWASSIGN ## -## Ends in an error in state: 498. +## Ends in an error in state: 508. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type decl_identifier dims @@ -9028,7 +9028,7 @@ Expected ";" or "=" expression ";". program: DATABLOCK LBRACE REAL TRUNCATE LBRACK IDENTIFIER RBRACK WHILE ## -## Ends in an error in state: 692. +## Ends in an error in state: 700. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier dims . optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -9040,9 +9040,9 @@ Expected ";". program: TRANSFORMEDDATABLOCK LBRACE REAL TRUNCATE LBRACK IDENTIFIER RBRACK ARROWASSIGN ## -## Ends in an error in state: 714. +## Ends in an error in state: 722. ## -## decl(top_var_type,expression) -> top_var_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type decl_identifier dims @@ -9412,7 +9412,7 @@ Expected identifier, but found reserved keyword 'get_lp' program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 548. +## Ends in an error in state: 556. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -9438,7 +9438,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 567. +## Ends in an error in state: 575. ## ## range -> UPPER ASSIGN constr_expression COMMA . LOWER ASSIGN constr_expression [ RABRACK ] ## @@ -9450,7 +9450,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER WHILE ## -## Ends in an error in state: 568. +## Ends in an error in state: 576. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER . ASSIGN constr_expression [ RABRACK ] ## @@ -9462,7 +9462,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIGN WHILE ## -## Ends in an error in state: 569. +## Ends in an error in state: 577. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER ASSIGN . constr_expression [ RABRACK ] ## @@ -9474,7 +9474,7 @@ Numerical expression expected after '=' in a lower expression. program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 570. +## Ends in an error in state: 578. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -9498,14 +9498,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIG ## 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 535, spurious reduction of production constr_expression -> identifier +## In state 543, spurious reduction of production constr_expression -> identifier ## Expected '>' after lower expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 580. +## Ends in an error in state: 588. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -9531,7 +9531,7 @@ Expected '>' after multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 581. +## Ends in an error in state: 589. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA . OFFSET ASSIGN constr_expression [ RABRACK ] ## @@ -9543,7 +9543,7 @@ Expected '>' or offset expression after multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET WHILE ## -## Ends in an error in state: 582. +## Ends in an error in state: 590. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET . ASSIGN constr_expression [ RABRACK ] ## @@ -9555,7 +9555,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ASSIGN WHILE ## -## Ends in an error in state: 583. +## Ends in an error in state: 591. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET ASSIGN . constr_expression [ RABRACK ] ## @@ -9567,7 +9567,7 @@ Numerical expression expected after '=' in a multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 584. +## Ends in an error in state: 592. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -9591,7 +9591,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ## 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 535, spurious reduction of production constr_expression -> identifier +## In state 543, spurious reduction of production constr_expression -> identifier ## Expected '>' after multiplier expression. @@ -9600,8 +9600,8 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN UPPER RPAREN SEMICOLON UNREACHABL ## ## Ends in an error in state: 480. ## -## nested_statement -> IF LPAREN lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN lhs RPAREN statement @@ -9612,7 +9612,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN UPPER RPAREN SEMICOLON UNREACHABL program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER IDIVIDE REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER ELTPOW REALNUMERAL WHILE ## -## Ends in an error in state: 544. +## Ends in an error in state: 552. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -9654,7 +9654,7 @@ not program: FUNCTIONBLOCK LBRACE ARRAY WHILE program: DATABLOCK LBRACE ARRAY WHILE ## -## Ends in an error in state: 697. +## Ends in an error in state: 705. ## ## decl(top_var_type,no_assign) -> lhs . top_var_type id_and_optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR UNITVECTOR SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX LBRACK INT COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] @@ -9685,7 +9685,7 @@ program: DATABLOCK LBRACE REAL UPPER ASSIGN WHILE program: DATABLOCK LBRACE REAL UPPER ASSIGN UNREACHABLE WHILE program: DATABLOCK LBRACE REAL UPPER LBRACK IDENTIFIER RBRACK ASSIGN UNREACHABLE WHILE ## -## Ends in an error in state: 693. +## Ends in an error in state: 701. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier dims optional_assignment(no_assign) . SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -9703,23 +9703,23 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN UPPER RPAREN UPPER VECTOR ## ## Ends in an error in state: 404. ## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMESASSIGN TIMES TILDE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE ASSIGN ARROWASSIGN AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9776,3 +9776,64 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN UPPER RPAREN UPPER VECTOR ## Expected identifier after type in declaration. + + +program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK WHILE +## +## Ends in an error in state: 483. +## +## closure_def -> FUNCTIONBLOCK . return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## FUNCTIONBLOCK +## + +Expected function definition. + +program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UNREACHABLE +## +## Ends in an error in state: 484. +## +## closure_def -> FUNCTIONBLOCK return_type . decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## FUNCTIONBLOCK return_type +## + +Expected function definition. + +program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER WHILE +## +## Ends in an error in state: 485. +## +## closure_def -> FUNCTIONBLOCK return_type decl_identifier . LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## FUNCTIONBLOCK return_type decl_identifier +## + +Expected argument list. + +program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER LPAREN WHILE +## +## Ends in an error in state: 486. +## +## closure_def -> FUNCTIONBLOCK return_type decl_identifier LPAREN . loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## FUNCTIONBLOCK return_type decl_identifier LPAREN +## + +Expected argument list. + +program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER LPAREN RPAREN VOID +## +## Ends in an error in state: 488. +## +## closure_def -> FUNCTIONBLOCK return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## FUNCTIONBLOCK return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN +## + +Expected function body. \ No newline at end of file diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 206cdf4e70..958720d27e 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -192,6 +192,17 @@ function_def: } } +closure_def: + | FUNCTIONBLOCK rt=return_type name=decl_identifier LPAREN args=separated_list(COMMA, arg_decl) + RPAREN b=statement + { + grammar_logger "function_def" ; + {stmt=FunDef {returntype = rt; funname = name; + captures = Some (); arguments = args; body=b;}; + smeta={loc=Location_span.of_positions_exn $loc} + } + } + return_type: | VOID { grammar_logger "return_type VOID" ; Void } @@ -764,9 +775,13 @@ vardecl_or_statement: { grammar_logger "vardecl_or_statement_statement" ; s } | v=var_decl { grammar_logger "vardecl_or_statement_vardecl" ; v } + | f=closure_def + { grammar_logger "vardecl_or_statement_closuredef" ; f } top_vardecl_or_statement: | s=statement { grammar_logger "top_vardecl_or_statement_statement" ; s } | v=top_var_decl { grammar_logger "top_vardecl_or_statement_top_vardecl" ; v } + | f=closure_def + { grammar_logger "top_vardecl_or_statement_closuredef" ; f } diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 2fd9a7f04e..6cf930d1d3 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -385,7 +385,7 @@ and pp_compiler_internal_fn ut f ppf es = | Some FnMakeClosure -> ( match es with | {Expr.Fixed.pattern= Lit (Str, implname); _} :: args -> - gen_fun_app ppf (implname ^ "") args + gen_fun_app ppf (implname ^ "_cfunctor__") args | _ -> raise_s [%message "Missing closure constructor " (es : Expr.Typed.t list)] ) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 0f07d88e77..632b7b7a78 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -215,7 +215,7 @@ let pp_rs_functor ppf (fdrt, fdname, fdargs) = [%message "Ill-formed reduce_sum call! This is bug in the compiler."] let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = - let clsname = fdname ^ "_functor__" in + let clsname = fdname ^ "_cfunctor__" in let pp_member ppf (adlevel, name, type_) = pf ppf "%a %s;" pp_unsizedtype_local (adlevel, type_) name in @@ -233,9 +233,9 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = pf ppf "vars_count__(count_vars(@[%a@]))" (list ~sep:comma string) (List.map ~f:(fun (_, id, _) -> id ^ "__") fdcaptures) in - pf ppf "explicit %s(@[%a@])@ : @[%a%a {}@]" name - (list ~sep:comma pp) fdcaptures (list ~sep:comma pp_init) fdcaptures - pp_count () + pf ppf "%s(const %s&) = default ;@ " name name ; + pf ppf "%s(@[%a@])@ : @[%a%a {}@]" name (list ~sep:comma pp) + fdcaptures (list ~sep:comma pp_init) fdcaptures pp_count () in let pp_op ppf () = pf ppf "%a const @,{@,return %a;@,}@," (pp_signature true) @@ -247,10 +247,7 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = in let pp_api ppf () = let using_valueof ppf () = - pf ppf - "using ValueOf__ = \ - %s()))>;" - clsname + pf ppf "using ValueOf__ = %s;" clsname in let pp f = list ~sep:comma (fun ppf (_, id, _) -> pf ppf "%s(%s)" f id) in let valueof ppf () = @@ -264,25 +261,26 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = clsname (pp "deep_copy_vars") fdcaptures in let zeros ppf () = - pf ppf "void zero_adjoints__() const {@ %a@ }" - (list (fun ppf (_, id, _) -> pf ppf "zero_adjoints(%s);" id)) + pf ppf "void zero_adjoints__() {@ %a@ }" + (list ~sep:cut (fun ppf (_, id, _) -> + pf ppf "stan::math::zero_adjoints(%s);" id )) fdcaptures in let pp = list ~sep:comma (fun ppf (_, id, _) -> string ppf id) in let accumulate ppf () = pf ppf - "double accumulate_adjoints__(double *dest) const {@ return \ - accumulate_adjoints(@[dest%a%a@]);@ }" + "double* accumulate_adjoints__(double *dest) const {@ return \ + stan::math::accumulate_adjoints(@[dest%a%a@]);@ }" comma () pp fdcaptures in let save ppf () = pf ppf "stan::math::vari** save_varis__(stan::math::vari **dest) const {@ \ - return save_varis(@[dest%a%a@]);@ }" + return stan::math::save_varis(@[dest%a%a@]);@ }" comma () pp fdcaptures in pf ppf - "@%s@]@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ \ + "@[%s@]@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ \ @[%a@]@ @[%a@]@ " "using captured_scalar_t__ = local_scalar_t__;" using_valueof () valueof () deepcopy () zeros () accumulate () save () ; @@ -291,8 +289,7 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = pf ppf "@,@,template@,class %s {@,%a@,public:@,const \ size_t vars_count__;@ %a@ %a@ %a@ };@," - clsname (list pp_member) fdcaptures pp_ctor fdname pp_op () pp_api () ; - () + clsname (list pp_member) fdcaptures pp_ctor clsname pp_op () pp_api () let pp_forward_decl funs_used_in_reduce_sum ppf Program.({fdrt; fdname; fdcaptures; fdargs; fdbody; _}) = diff --git a/test/integration/bad/for_loops/stanc.expected b/test/integration/bad/for_loops/stanc.expected index 1db1ebbdf6..4c437f1aea 100644 --- a/test/integration/bad/for_loops/stanc.expected +++ b/test/integration/bad/for_loops/stanc.expected @@ -10,7 +10,7 @@ Semantic error in 'assign_to_loop_var1.stan', line 5, column 18 to column 24: 7: } ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc assign_to_loop_var2.stan @@ -24,7 +24,7 @@ Semantic error in 'assign_to_loop_var2.stan', line 5, column 18 to column 24: 7: } ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc assign_to_loop_var3.stan @@ -38,7 +38,7 @@ Semantic error in 'assign_to_loop_var3.stan', line 6, column 6 to column 15: 8: } ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc assign_to_loop_var4.stan @@ -52,7 +52,7 @@ Semantic error in 'assign_to_loop_var4.stan', line 5, column 6 to column 12: 7: } ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc assign_to_loop_var5.stan @@ -66,7 +66,7 @@ Semantic error in 'assign_to_loop_var5.stan', line 5, column 6 to column 14: 7: } ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc assign_to_loop_var6.stan @@ -80,7 +80,7 @@ Semantic error in 'assign_to_loop_var6.stan', line 4, column 4 to column 12: 6: } ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc assign_to_loop_var7.stan @@ -108,7 +108,7 @@ Semantic error in 'for_statements_bad_indices0.stan', line 5, column 20 to colum 7: return 0; ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc for_statements_bad_indices1.stan @@ -136,7 +136,7 @@ Semantic error in 'for_statements_bad_indices2.stan', line 5, column 20 to colum 7: return 0; ------------------------------------------------- -Cannot assign to function argument or loop identifier 'v'. +Cannot assign to function argument, captured variable or loop identifier 'v'. $ ../../../../../install/default/bin/stanc for_statements_bad_indices3.stan diff --git a/test/integration/bad/stanc.expected b/test/integration/bad/stanc.expected index 51a15397a8..983c7f822d 100644 --- a/test/integration/bad/stanc.expected +++ b/test/integration/bad/stanc.expected @@ -1235,7 +1235,7 @@ Semantic error in 'functions-bad13.stan', line 3, column 4 to column 10: 5: } ------------------------------------------------- -Cannot assign to function argument or loop identifier 'x'. +Cannot assign to function argument, captured variable or loop identifier 'x'. $ ../../../../install/default/bin/stanc functions-bad14.stan From 819fddeaa61d7511aedb30f4040b0449f524b6ad Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sat, 28 Nov 2020 11:56:36 +0200 Subject: [PATCH 05/24] user-defined higher-order functions --- src/frontend/Ast_to_Mir.ml | 3 +- src/frontend/Semantic_check.ml | 41 +- src/frontend/Symbol_table.ml | 4 +- src/frontend/Symbol_table.mli | 2 +- src/frontend/parser.messages | 937 +++--- src/frontend/parser.mly | 14 +- src/stan_math_backend/Expression_gen.ml | 2 +- src/stan_math_backend/Stan_math_code_gen.ml | 2 + src/stan_math_backend/Transform_Mir.ml | 15 +- src/tfp_backend/Code_gen.ml | 39 +- test/integration/bad/closures/dune | 1 + .../integration/bad/closures/forwarddecl.stan | 8 + test/integration/bad/closures/lpdf.stan | 6 + test/integration/bad/closures/mutate1.stan | 8 + test/integration/bad/closures/mutate2.stan | 8 + test/integration/bad/closures/rng.stan | 6 + test/integration/bad/closures/stanc.expected | 68 + .../bad/compound-assign/stanc.expected | 14 +- test/integration/bad/stanc.expected | 4 +- test/integration/good/code-gen/closures1.stan | 35 + test/integration/good/code-gen/closures2.stan | 30 + test/integration/good/code-gen/closures3.stan | 27 + test/integration/good/code-gen/closures4.stan | 19 + test/integration/good/code-gen/cpp.expected | 2675 +++++++++++++++++ 24 files changed, 3486 insertions(+), 482 deletions(-) create mode 100644 test/integration/bad/closures/dune create mode 100644 test/integration/bad/closures/forwarddecl.stan create mode 100644 test/integration/bad/closures/lpdf.stan create mode 100644 test/integration/bad/closures/mutate1.stan create mode 100644 test/integration/bad/closures/mutate2.stan create mode 100644 test/integration/bad/closures/rng.stan create mode 100644 test/integration/bad/closures/stanc.expected create mode 100644 test/integration/good/code-gen/closures1.stan create mode 100644 test/integration/good/code-gen/closures2.stan create mode 100644 test/integration/good/code-gen/closures3.stan create mode 100644 test/integration/good/code-gen/closures4.stan diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index 794a369dc7..e86fa85b0b 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -1009,7 +1009,8 @@ let trans_prog filename (p : Ast.typed_program) : Program.Typed.t = "_" ^ prog_name else prog_name in - { functions_block= map (trans_fun_def ud_dists) functionblock @ !closures + let functions = map (trans_fun_def ud_dists) functionblock in + { functions_block= functions @ !closures ; input_vars ; prepare_data ; log_prob diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 01ab6959fe..01327926fe 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -284,9 +284,10 @@ let semantic_check_fn_normal ~is_cond_dist ~loc id es = |> Semantic_error.illtyped_userdefined_fn_app loc id.name listedtypes rt |> error - | Some (_, UFun (_, ReturnType ut, _)) -> + | Some (_, UFun (_, ReturnType ut, is_closure)) -> + let kind = if is_closure then Closure else UserDefined in mk_typed_expression - ~expr:(mk_fun_app ~is_cond_dist (UserDefined, id, es)) + ~expr:(mk_fun_app ~is_cond_dist (kind, id, es)) ~ad_level:(expr_ad_lub es) ~type_:ut ~loc |> ok | Some _ -> @@ -959,11 +960,12 @@ let semantic_check_nrfn_target ~loc ~cf id = let semantic_check_nrfn_normal ~loc id es = Validate.( match Symbol_table.look vm id.name with - | Some (_, UFun (listedtypes, Void, _)) + | Some (_, UFun (listedtypes, Void, is_closure)) when UnsizedType.check_compatible_arguments_mod_conv id.name listedtypes (get_arg_types es) -> + let kind = if is_closure then Closure else UserDefined in mk_typed_statement - ~stmt:(NRFunApp (UserDefined, id, es)) + ~stmt:(NRFunApp (kind, id, es)) ~return_type:NoReturnType ~loc |> ok | Some (_, UFun (listedtypes, Void, _)) -> @@ -1603,13 +1605,13 @@ and semantic_check_fundef_decl ~loc ~is_closure id body = Symbol_table.set_is_assigned vm id.name ; ok ()) -and semantic_check_closure_id ~loc ~is_closure id = +and semantic_check_closure_id ~is_closure id = if not is_closure then Validate.ok () else - let f suffix = not (String.is_suffix ~suffix id) in + let f suffix = not (String.is_suffix ~suffix id.name) in if List.for_all ~f ["_rng"; "_lpdf"; "_lpmf"; "_lcdf"; "_lccdf"; "_lp"] then Validate.ok () - else Validate.error @@ Semantic_error.impure_closure loc + else Validate.error @@ Semantic_error.impure_closure id.id_loc and semantic_check_fundef_dist_rt ~loc id return_ty = Validate.( @@ -1703,13 +1705,13 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = let uarg_names = List.map ~f:(fun x -> x.name) uarg_identifiers in semantic_check_fundef_overloaded ~loc id uarg_types urt |> apply_const (semantic_check_fundef_decl ~loc ~is_closure id body) - |> apply_const (semantic_check_closure_id ~loc ~is_closure id.name) + |> apply_const (semantic_check_closure_id ~is_closure id) >>= fun () -> + (* WARNING: SIDE EFFECTING *) + Symbol_table.enter vm id.name + (Functions, UFun (uarg_types, urt, is_closure)) ; let body', captures = - Symbol_table.with_capturing_scope vm (fun vm -> - (* WARNING: SIDE EFFECTING *) - Symbol_table.enter vm id.name - (Functions, UFun (uarg_types, urt, is_closure)) ; + Symbol_table.with_capturing_scope vm (fun () -> (* Check that function args and loop identifiers are not modified in function. (passed by const ref)*) List.iter ~f:(Symbol_table.set_read_only vm) uarg_names ; @@ -1719,13 +1721,18 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = |> apply_const (semantic_check_pmf_fundef_first_arg_ty ~loc id uarg_types) >>= fun () -> - (* WARNING: SIDE EFFECTING *) - Symbol_table.begin_scope vm ; - List.map ~f:(fun x -> check_fresh_variable x false) uarg_identifiers + List.map + ~f:(fun (_, ut, x) -> + check_fresh_variable x false + |> apply_const + (semantic_check_closure_id + ~is_closure:(UnsizedType.is_fun_type ut) + x) ) + uargs |> sequence + |> map ~f:(List.iter ~f:Fn.id) |> apply_const (semantic_check_fundef_distinct_arg_ids ~loc uarg_names) - |> map ~f:(List.iter ~f:Fn.id) >>= fun () -> (* We treat DataOnly arguments as if they are data and AutoDiffable arguments as if they are parameters, for the purposes of type checking. *) @@ -1755,8 +1762,6 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = >>= fun ub -> semantic_check_fundef_return_tys ~loc id urt ub |> map ~f:(fun () -> - (* WARNING: SIDE EFFECTING *) - Symbol_table.end_scope vm ; let closure_info = if is_closure then let loc = id.id_loc.begin_loc in diff --git a/src/frontend/Symbol_table.ml b/src/frontend/Symbol_table.ml index b7d284353c..688a335083 100644 --- a/src/frontend/Symbol_table.ml +++ b/src/frontend/Symbol_table.ml @@ -62,7 +62,9 @@ let with_capturing_scope s f = let captures = !(s.captures) in let locals = !(s.locals) in s.locals := String.Set.empty ; - let x = f s in + begin_scope s ; + let x = f () in + end_scope s ; s.locals := locals ; let c = !(s.captures) in s.captures := captures ; diff --git a/src/frontend/Symbol_table.mli b/src/frontend/Symbol_table.mli index 952568015f..f853f94b09 100644 --- a/src/frontend/Symbol_table.mli +++ b/src/frontend/Symbol_table.mli @@ -19,7 +19,7 @@ val end_scope : 'a state -> unit (** Used to end a local scope, purging the symbol table of all symbols added in that scope *) val with_capturing_scope : - 'a state -> ('a state -> 'b) -> 'b * Core_kernel.String.Set.t + 'a state -> (unit -> 'b) -> 'b * Core_kernel.String.Set.t (** Used to record captures inside a closure *) val check_is_local : 'a state -> string -> bool diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index abc9ccffae..ec61d44736 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -12,7 +12,7 @@ Expected "functions {" or "data {" or "transformed data {" or "parameters {" or program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 687. +## Ends in an error in state: 697. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -68,7 +68,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 689. +## Ends in an error in state: 699. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -123,14 +123,14 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK WHILE ## -## Ends in an error in state: 686. +## Ends in an error in state: 696. ## ## top_var_type -> CHOLESKYFACTORCORR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCORR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -143,7 +143,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR WHILE ## -## Ends in an error in state: 685. +## Ends in an error in state: 695. ## ## top_var_type -> CHOLESKYFACTORCORR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCORR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -156,7 +156,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 676. +## Ends in an error in state: 686. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -212,7 +212,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 678. +## Ends in an error in state: 688. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -268,7 +268,7 @@ Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 679. +## Ends in an error in state: 689. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -323,14 +323,14 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 677. +## Ends in an error in state: 687. ## ## option(pair(COMMA,expression)) -> COMMA . lhs [ RBRACK ] ## option(pair(COMMA,expression)) -> COMMA . non_lhs [ RBRACK ] @@ -343,7 +343,7 @@ Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 682. +## Ends in an error in state: 692. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -398,14 +398,14 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" or "[" expression "," expression "]" for size of cholesky_factor_cov. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK WHILE ## -## Ends in an error in state: 675. +## Ends in an error in state: 685. ## ## top_var_type -> CHOLESKYFACTORCOV LBRACK . lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCOV LBRACK . non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -418,7 +418,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CHOLESKYFACTORCOV WHILE ## -## Ends in an error in state: 674. +## Ends in an error in state: 684. ## ## top_var_type -> CHOLESKYFACTORCOV . LBRACK lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CHOLESKYFACTORCOV . LBRACK non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -431,7 +431,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CORRMATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 670. +## Ends in an error in state: 680. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -487,7 +487,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 672. +## Ends in an error in state: 682. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -542,14 +542,14 @@ program: DATABLOCK LBRACE CORRMATRIX LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX LBRACK WHILE ## -## Ends in an error in state: 669. +## Ends in an error in state: 679. ## ## top_var_type -> CORRMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CORRMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -562,7 +562,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX WHILE ## -## Ends in an error in state: 668. +## Ends in an error in state: 678. ## ## top_var_type -> CORRMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> CORRMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -575,7 +575,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 664. +## Ends in an error in state: 674. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -631,7 +631,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 666. +## Ends in an error in state: 676. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -686,14 +686,14 @@ program: DATABLOCK LBRACE COVMATRIX LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK WHILE ## -## Ends in an error in state: 663. +## Ends in an error in state: 673. ## ## top_var_type -> COVMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> COVMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -706,7 +706,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX WHILE ## -## Ends in an error in state: 662. +## Ends in an error in state: 672. ## ## top_var_type -> COVMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> COVMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -719,7 +719,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE INT LABRACK WHILE ## -## Ends in an error in state: 660. +## Ends in an error in state: 670. ## ## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -731,7 +731,7 @@ Expected "lower = " expression or "upper = " expression for integer bounds. program: DATABLOCK LBRACE INT LBRACE ## -## Ends in an error in state: 659. +## Ends in an error in state: 669. ## ## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -743,7 +743,7 @@ Expected range constraint or identifier as part of top-level variable declaratio program: DATABLOCK LBRACE MATRIX LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 645. +## Ends in an error in state: 655. ## ## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -758,7 +758,7 @@ Expected "[" expression "," expression "]" for matrix sizes as part of top-level program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 649. +## Ends in an error in state: 659. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -814,7 +814,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE TILDE ## -## Ends in an error in state: 651. +## Ends in an error in state: 661. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -869,14 +869,14 @@ program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA WHILE ## -## Ends in an error in state: 648. +## Ends in an error in state: 658. ## ## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -889,7 +889,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 647. +## Ends in an error in state: 657. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -947,7 +947,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 655. +## Ends in an error in state: 665. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1003,7 +1003,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 657. +## Ends in an error in state: 667. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1058,14 +1058,14 @@ program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 654. +## Ends in an error in state: 664. ## ## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1078,7 +1078,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 653. +## Ends in an error in state: 663. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -1134,14 +1134,14 @@ program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK WHILE ## -## Ends in an error in state: 646. +## Ends in an error in state: 656. ## ## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1156,7 +1156,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX WHILE ## -## Ends in an error in state: 644. +## Ends in an error in state: 654. ## ## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1171,7 +1171,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE ORDERED LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 640. +## Ends in an error in state: 650. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1227,7 +1227,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 642. +## Ends in an error in state: 652. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1282,14 +1282,14 @@ program: DATABLOCK LBRACE ORDERED LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED LBRACK WHILE ## -## Ends in an error in state: 639. +## Ends in an error in state: 649. ## ## top_var_type -> ORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1302,7 +1302,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED WHILE ## -## Ends in an error in state: 638. +## Ends in an error in state: 648. ## ## top_var_type -> ORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1315,7 +1315,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 634. +## Ends in an error in state: 644. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1371,7 +1371,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 636. +## Ends in an error in state: 646. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1426,14 +1426,14 @@ program: DATABLOCK LBRACE POSITIVEORDERED LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK WHILE ## -## Ends in an error in state: 633. +## Ends in an error in state: 643. ## ## top_var_type -> POSITIVEORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> POSITIVEORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1446,7 +1446,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED WHILE ## -## Ends in an error in state: 632. +## Ends in an error in state: 642. ## ## top_var_type -> POSITIVEORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> POSITIVEORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1459,7 +1459,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE RBRACE WHILE ## -## Ends in an error in state: 714. +## Ends in an error in state: 724. ## ## 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 [ # ] ## @@ -1471,7 +1471,7 @@ Expected "transformed data {" or "parameters {" or "transformed parameters {" or program: DATABLOCK LBRACE REAL IDENTIFIER SEMICOLON WHILE ## -## Ends in an error in state: 703. +## Ends in an error in state: 713. ## ## list(top_var_decl_no_assign) -> top_var_decl_no_assign . list(top_var_decl_no_assign) [ RBRACE ] ## @@ -1483,7 +1483,7 @@ Only top-level variable declarations allowed in data and parameters blocks. program: DATABLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 694. +## Ends in an error in state: 704. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier . dims optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## id_and_optional_assignment(no_assign) -> decl_identifier . optional_assignment(no_assign) [ SEMICOLON ] @@ -1496,7 +1496,7 @@ program: DATABLOCK LBRACE REAL TRUNCATE WHILE program: DATABLOCK LBRACE REAL LBRACE ## -## Ends in an error in state: 630. +## Ends in an error in state: 640. ## ## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## @@ -1508,7 +1508,7 @@ Identifier expected after type in top-level variable declaration. program: DATABLOCK LBRACE ROWVECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 624. +## Ends in an error in state: 634. ## ## top_var_type -> ROWVECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ROWVECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1521,7 +1521,7 @@ Expected identifier as part of top-level variable declaration. program: DATABLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 626. +## Ends in an error in state: 636. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1577,7 +1577,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 628. +## Ends in an error in state: 638. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1632,14 +1632,14 @@ program: DATABLOCK LBRACE ROWVECTOR LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR LBRACK WHILE ## -## Ends in an error in state: 625. +## Ends in an error in state: 635. ## ## top_var_type -> ROWVECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ROWVECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1652,7 +1652,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR WHILE ## -## Ends in an error in state: 623. +## Ends in an error in state: 633. ## ## top_var_type -> ROWVECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> ROWVECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1665,7 +1665,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE SIMPLEX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 619. +## Ends in an error in state: 629. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1721,7 +1721,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 621. +## Ends in an error in state: 631. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1776,14 +1776,14 @@ program: DATABLOCK LBRACE SIMPLEX LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX LBRACK WHILE ## -## Ends in an error in state: 618. +## Ends in an error in state: 628. ## ## top_var_type -> SIMPLEX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> SIMPLEX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1796,7 +1796,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX WHILE ## -## Ends in an error in state: 617. +## Ends in an error in state: 627. ## ## top_var_type -> SIMPLEX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> SIMPLEX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1809,7 +1809,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE UNITVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 613. +## Ends in an error in state: 623. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1865,7 +1865,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 615. +## Ends in an error in state: 625. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1920,14 +1920,14 @@ program: DATABLOCK LBRACE UNITVECTOR LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR LBRACK WHILE ## -## Ends in an error in state: 612. +## Ends in an error in state: 622. ## ## top_var_type -> UNITVECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> UNITVECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1940,7 +1940,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR WHILE ## -## Ends in an error in state: 611. +## Ends in an error in state: 621. ## ## top_var_type -> UNITVECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> UNITVECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -1953,7 +1953,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 581. +## Ends in an error in state: 591. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -1979,7 +1979,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 585. +## Ends in an error in state: 595. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2003,14 +2003,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ## 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 543, spurious reduction of production constr_expression -> identifier +## In state 553, spurious reduction of production constr_expression -> identifier ## Expected ">" after "multiplier = " expression. program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ASSIGN WHILE ## -## Ends in an error in state: 584. +## Ends in an error in state: 594. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER ASSIGN . constr_expression [ RABRACK ] ## @@ -2022,7 +2022,7 @@ Expected "multiplier = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER WHILE ## -## Ends in an error in state: 583. +## Ends in an error in state: 593. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER . ASSIGN constr_expression [ RABRACK ] ## @@ -2034,7 +2034,7 @@ Expected "multiplier = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 582. +## Ends in an error in state: 592. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA . MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## @@ -2046,7 +2046,7 @@ Expected ">" or ", multiplier = " expression (not containing binary logical oper program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN WHILE ## -## Ends in an error in state: 580. +## Ends in an error in state: 590. ## ## offset_mult -> OFFSET ASSIGN . constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET ASSIGN . constr_expression [ RABRACK ] @@ -2059,7 +2059,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET WHILE ## -## Ends in an error in state: 579. +## Ends in an error in state: 589. ## ## offset_mult -> OFFSET . ASSIGN constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET . ASSIGN constr_expression [ RABRACK ] @@ -2072,7 +2072,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 595. +## Ends in an error in state: 605. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2098,7 +2098,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 599. +## Ends in an error in state: 609. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2122,14 +2122,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIG ## 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 543, spurious reduction of production constr_expression -> identifier +## In state 553, spurious reduction of production constr_expression -> identifier ## Expected ">" after "upper = " expression. program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIGN WHILE ## -## Ends in an error in state: 598. +## Ends in an error in state: 608. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER ASSIGN . constr_expression [ RABRACK ] ## @@ -2141,7 +2141,7 @@ Expected expression (not containing binary logical operators) after "upper = ". program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER WHILE ## -## Ends in an error in state: 597. +## Ends in an error in state: 607. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER . ASSIGN constr_expression [ RABRACK ] ## @@ -2153,7 +2153,7 @@ Expected "=" expression (not containing binary logical operators) after "upper". program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 596. +## Ends in an error in state: 606. ## ## range -> LOWER ASSIGN constr_expression COMMA . UPPER ASSIGN constr_expression [ RABRACK ] ## @@ -2165,7 +2165,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA WHILE program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN WHILE ## -## Ends in an error in state: 594. +## Ends in an error in state: 604. ## ## range -> LOWER ASSIGN . constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER ASSIGN . constr_expression [ RABRACK ] @@ -2178,7 +2178,7 @@ An expression (not containing binary logical operators) is expected for type low program: DATABLOCK LBRACE VECTOR LABRACK LOWER WHILE ## -## Ends in an error in state: 593. +## Ends in an error in state: 603. ## ## range -> LOWER . ASSIGN constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER . ASSIGN constr_expression [ RABRACK ] @@ -2191,7 +2191,7 @@ Expected "=" expression (not containing binary logical operators), after "lower" program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 604. +## Ends in an error in state: 614. ## ## top_var_type -> VECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> VECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2204,7 +2204,7 @@ Expected "[" expression "]" for vector size. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN WHILE ## -## Ends in an error in state: 587. +## Ends in an error in state: 597. ## ## offset_mult -> MULTIPLIER ASSIGN . constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER ASSIGN . constr_expression [ RABRACK ] @@ -2217,7 +2217,7 @@ Expected expression (not containing binary logical operators) after "multiplier program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER WHILE ## -## Ends in an error in state: 586. +## Ends in an error in state: 596. ## ## offset_mult -> MULTIPLIER . ASSIGN constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER . ASSIGN constr_expression [ RABRACK ] @@ -2230,7 +2230,7 @@ Expected "=" expression (not containing binary logical operators) ">" after "mul program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG REALNUMERAL WHILE ## -## Ends in an error in state: 544. +## Ends in an error in state: 554. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2255,7 +2255,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG WHILE ## -## Ends in an error in state: 542. +## Ends in an error in state: 552. ## ## constr_expression -> BANG . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2267,7 +2267,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 554. +## Ends in an error in state: 564. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2292,7 +2292,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS WHILE ## -## Ends in an error in state: 541. +## Ends in an error in state: 551. ## ## constr_expression -> MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2304,7 +2304,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 555. +## Ends in an error in state: 565. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2329,7 +2329,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS WHILE ## -## Ends in an error in state: 540. +## Ends in an error in state: 550. ## ## constr_expression -> PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2341,7 +2341,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE DIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 572. +## Ends in an error in state: 582. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2366,7 +2366,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE DIVIDE WHILE ## -## Ends in an error in state: 571. +## Ends in an error in state: 581. ## ## constr_expression -> constr_expression DIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2378,7 +2378,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTDIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 570. +## Ends in an error in state: 580. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2403,7 +2403,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTDIVIDE WHILE ## -## Ends in an error in state: 569. +## Ends in an error in state: 579. ## ## constr_expression -> constr_expression ELTDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2415,7 +2415,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTTIMES REALNUMERAL WHILE ## -## Ends in an error in state: 568. +## Ends in an error in state: 578. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2440,7 +2440,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTTIMES WHILE ## -## Ends in an error in state: 567. +## Ends in an error in state: 577. ## ## constr_expression -> constr_expression ELTTIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2452,7 +2452,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE HAT REALNUMERAL WHILE ## -## Ends in an error in state: 550. +## Ends in an error in state: 560. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2477,7 +2477,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE HAT WHILE ## -## Ends in an error in state: 549. +## Ends in an error in state: 559. ## ## constr_expression -> constr_expression HAT . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2489,7 +2489,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 546. +## Ends in an error in state: 556. ## ## constr_expression -> constr_expression LBRACK . indexes RBRACK [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2501,7 +2501,7 @@ Ill-formed expression. Expected expression followed by "]". program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LDIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 560. +## Ends in an error in state: 570. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2526,7 +2526,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LDIVIDE WHILE ## -## Ends in an error in state: 559. +## Ends in an error in state: 569. ## ## constr_expression -> constr_expression LDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2538,7 +2538,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 574. +## Ends in an error in state: 584. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2563,7 +2563,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MINUS WHILE ## -## Ends in an error in state: 573. +## Ends in an error in state: 583. ## ## constr_expression -> constr_expression MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2575,7 +2575,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MODULO REALNUMERAL WHILE ## -## Ends in an error in state: 566. +## Ends in an error in state: 576. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2600,7 +2600,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MODULO WHILE ## -## Ends in an error in state: 565. +## Ends in an error in state: 575. ## ## constr_expression -> constr_expression MODULO . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2612,7 +2612,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 564. +## Ends in an error in state: 574. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression PLUS constr_expression . [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2637,7 +2637,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE PLUS WHILE ## -## Ends in an error in state: 563. +## Ends in an error in state: 573. ## ## constr_expression -> constr_expression PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2649,7 +2649,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE TIMES REALNUMERAL WHILE ## -## Ends in an error in state: 558. +## Ends in an error in state: 568. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2674,7 +2674,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE TIMES WHILE ## -## Ends in an error in state: 557. +## Ends in an error in state: 567. ## ## constr_expression -> constr_expression TIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2686,7 +2686,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE WHILE ## -## Ends in an error in state: 543. +## Ends in an error in state: 553. ## ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## common_expression -> identifier . LPAREN lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2701,7 +2701,7 @@ Expression expected. Ill-formed expression. Suggested alternatives: a standalone program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN WHILE ## -## Ends in an error in state: 539. +## Ends in an error in state: 549. ## ## range -> UPPER ASSIGN . constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER ASSIGN . constr_expression [ RABRACK ] @@ -2714,7 +2714,7 @@ Expression (not containing binary logical operators) expected after "upper =". I program: DATABLOCK LBRACE VECTOR LABRACK UPPER WHILE ## -## Ends in an error in state: 538. +## Ends in an error in state: 548. ## ## range -> UPPER . ASSIGN constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER . ASSIGN constr_expression [ RABRACK ] @@ -2727,7 +2727,7 @@ Expect "=" expression ">" after seeing "upper". program: DATABLOCK LBRACE VECTOR LABRACK WHILE ## -## Ends in an error in state: 537. +## Ends in an error in state: 547. ## ## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## type_constraint -> LABRACK . offset_mult RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2740,7 +2740,7 @@ We expect to see "lower =", "upper =", "offset =" or "multiplier =" followed by program: DATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## -## Ends in an error in state: 691. +## Ends in an error in state: 701. ## ## decl(top_var_type,no_assign) -> top_var_type . decl_identifier dims optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## decl(top_var_type,no_assign) -> top_var_type . id_and_optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] @@ -2753,7 +2753,7 @@ We expect to see an identifier after a sized type. program: DATABLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 606. +## Ends in an error in state: 616. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2809,7 +2809,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 608. +## Ends in an error in state: 618. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2864,14 +2864,14 @@ program: DATABLOCK LBRACE VECTOR LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## "[" expression "]" expected for vector size. program: DATABLOCK LBRACE VECTOR LBRACK WHILE ## -## Ends in an error in state: 605. +## Ends in an error in state: 615. ## ## top_var_type -> VECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> VECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2884,7 +2884,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK WHILE program: DATABLOCK LBRACE VECTOR WHILE ## -## Ends in an error in state: 536. +## Ends in an error in state: 546. ## ## top_var_type -> VECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## top_var_type -> VECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -2897,7 +2897,7 @@ program: DATABLOCK LBRACE VECTOR WHILE program: DATABLOCK LBRACE WHILE ## -## Ends in an error in state: 535. +## Ends in an error in state: 545. ## ## data_block -> DATABLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2909,7 +2909,7 @@ Expected top-level variable declaration or "}". program: DATABLOCK WHILE ## -## Ends in an error in state: 534. +## Ends in an error in state: 544. ## ## data_block -> DATABLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -2921,7 +2921,7 @@ program: DATABLOCK WHILE program: FUNCTIONBLOCK LBRACE RBRACE COVMATRIX ## -## Ends in an error in state: 533. +## Ends in an error in state: 543. ## ## 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 [ # ] ## @@ -2947,7 +2947,7 @@ program: FUNCTIONBLOCK LBRACE VECTOR LBRACK WHILE ## ## Ends in an error in state: 10. ## -## unsized_dims -> LBRACK . list(COMMA) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_dims -> LBRACK . list(COMMA) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## LBRACK @@ -2957,9 +2957,9 @@ program: FUNCTIONBLOCK LBRACE VECTOR LBRACK WHILE program: FUNCTIONBLOCK LBRACE VECTOR LBRACE ## -## Ends in an error in state: 95. +## Ends in an error in state: 103. ## -## unsized_type -> basic_type . option(unsized_dims) [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_type -> basic_type . option(unsized_dims) [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## basic_type @@ -2969,7 +2969,7 @@ Either a number of unsized dimensions is expected as part of a function return t program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN RPAREN SEMICOLON WHILE ## -## Ends in an error in state: 530. +## Ends in an error in state: 540. ## ## list(function_def) -> function_def . list(function_def) [ RBRACE ] ## @@ -2983,7 +2983,8 @@ program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN DATABLOCK WHILE ## ## Ends in an error in state: 92. ## -## arg_decl -> option(DATABLOCK) . unsized_type decl_identifier [ RPAREN COMMA ] +## arg_type -> option(DATABLOCK) . unsized_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## arg_type -> option(DATABLOCK) . function_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## option(DATABLOCK) @@ -2993,7 +2994,7 @@ An identifier is expected as a function argument name. program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN RPAREN VOID ## -## Ends in an error in state: 99. +## Ends in an error in state: 107. ## ## function_def -> return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ VOID VECTOR ROWVECTOR REAL RBRACE MATRIX INT ARRAY ] ## @@ -3005,7 +3006,7 @@ Either "{" statement "}" is expected for a function definition or ";" for a func program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR IDENTIFIER COMMA WHILE ## -## Ends in an error in state: 491. +## Ends in an error in state: 501. ## ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl COMMA . separated_nonempty_list(COMMA,arg_decl) [ RPAREN ] ## @@ -3017,7 +3018,7 @@ An argument declaration (unsized type followed by identifier) is expected. program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR IDENTIFIER WHILE ## -## Ends in an error in state: 490. +## Ends in an error in state: 500. ## ## 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 ] @@ -3032,7 +3033,8 @@ program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR LBRACK RBRACK LBRACK ## ## Ends in an error in state: 93. ## -## arg_decl -> option(DATABLOCK) unsized_type . decl_identifier [ RPAREN COMMA ] +## arg_type -> option(DATABLOCK) unsized_type . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## return_type -> unsized_type . [ LPAREN ] ## ## The known suffix of the stack is as follows: ## option(DATABLOCK) unsized_type @@ -3102,7 +3104,7 @@ program: FUNCTIONBLOCK WHILE program: GENERATEDQUANTITIESBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 759. +## Ends in an error in state: 769. ## ## 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 [ # ] ## @@ -3114,7 +3116,7 @@ Expected end of file after end of generated quantities block. program: GENERATEDQUANTITIESBLOCK LBRACE VOID ## -## Ends in an error in state: 756. +## Ends in an error in state: 766. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -3126,7 +3128,7 @@ Variable declaration or statement or "}" expected in generated quantities block. program: GENERATEDQUANTITIESBLOCK WHILE ## -## Ends in an error in state: 755. +## Ends in an error in state: 765. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -3138,7 +3140,7 @@ Expected "{" after block keyword. program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 352. +## Ends in an error in state: 360. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3194,7 +3196,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE TILDE ## -## Ends in an error in state: 354. +## Ends in an error in state: 362. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3249,14 +3251,14 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## "[" expression "," expression "]" expected for matrix sizes. program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA WHILE ## -## Ends in an error in state: 351. +## Ends in an error in state: 359. ## ## sized_basic_type -> MATRIX LBRACK non_lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> MATRIX LBRACK non_lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3269,7 +3271,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA WHILE program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 350. +## Ends in an error in state: 358. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -3326,7 +3328,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 358. +## Ends in an error in state: 366. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3382,7 +3384,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 360. +## Ends in an error in state: 368. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3437,14 +3439,14 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## "[" expression "," expression "]" expected for matrix sizes. program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 357. +## Ends in an error in state: 365. ## ## sized_basic_type -> MATRIX LBRACK lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> MATRIX LBRACK lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3457,7 +3459,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA WHILE program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 356. +## Ends in an error in state: 364. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -3513,14 +3515,14 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## "[" expression "," expression "]" expected for matrix sizes. program: MODELBLOCK LBRACE MATRIX LBRACK WHILE ## -## Ends in an error in state: 349. +## Ends in an error in state: 357. ## ## sized_basic_type -> MATRIX LBRACK . lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> MATRIX LBRACK . lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3535,7 +3537,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK WHILE program: MODELBLOCK LBRACE MATRIX WHILE ## -## Ends in an error in state: 348. +## Ends in an error in state: 356. ## ## sized_basic_type -> MATRIX . LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> MATRIX . LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3550,7 +3552,7 @@ program: MODELBLOCK LBRACE MATRIX WHILE program: MODELBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 754. +## Ends in an error in state: 764. ## ## 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 [ # ] ## @@ -3562,7 +3564,7 @@ Expected "generated quantities {" or end of file after end of model block. program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 504. +## Ends in an error in state: 514. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3618,7 +3620,7 @@ Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 505. +## Ends in an error in state: 515. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3673,14 +3675,14 @@ program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN WHILE ## -## Ends in an error in state: 503. +## Ends in an error in state: 513. ## ## option(pair(ASSIGN,expression)) -> ASSIGN . lhs [ SEMICOLON ] ## option(pair(ASSIGN,expression)) -> ASSIGN . non_lhs [ SEMICOLON ] @@ -3693,7 +3695,7 @@ Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE RBRACE ## -## Ends in an error in state: 501. +## Ends in an error in state: 511. ## ## dims -> LBRACK separated_nonempty_list(COMMA,expression) . RBRACK [ SEMICOLON ASSIGN ] ## @@ -3704,15 +3706,15 @@ program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs ## Ill-formed array sizes. "[" (non-empty comma separated list of expressions) "]" expected to specify array sizes. program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 500. +## Ends in an error in state: 510. ## ## dims -> LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ SEMICOLON ASSIGN ] ## @@ -3724,7 +3726,7 @@ Ill-formed array sizes. "[" (non-empty comma separated list of expressions) "]" program: MODELBLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 499. +## Ends in an error in state: 509. ## ## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## id_and_optional_assignment(expression) -> decl_identifier . optional_assignment(expression) [ SEMICOLON ] @@ -3737,7 +3739,7 @@ program: MODELBLOCK LBRACE REAL TRUNCATE WHILE program: MODELBLOCK LBRACE REAL LBRACK ## -## Ends in an error in state: 496. +## Ends in an error in state: 506. ## ## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] @@ -3750,7 +3752,7 @@ Identifier expected after sized type in local (or model block) variable declarat program: MODELBLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 343. +## Ends in an error in state: 351. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3806,7 +3808,7 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE program: MODELBLOCK LBRACE ROWVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 345. +## Ends in an error in state: 353. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3861,14 +3863,14 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## "[" expression "]" expected for row_vector sizes. program: MODELBLOCK LBRACE ROWVECTOR LBRACK WHILE ## -## Ends in an error in state: 342. +## Ends in an error in state: 350. ## ## sized_basic_type -> ROWVECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> ROWVECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3881,7 +3883,7 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK WHILE program: MODELBLOCK LBRACE ROWVECTOR WHILE ## -## Ends in an error in state: 341. +## Ends in an error in state: 349. ## ## sized_basic_type -> ROWVECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> ROWVECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -3894,7 +3896,7 @@ program: MODELBLOCK LBRACE ROWVECTOR WHILE program: MODELBLOCK LBRACE SEMICOLON VOID ## -## Ends in an error in state: 493. +## Ends in an error in state: 503. ## ## list(vardecl_or_statement) -> vardecl_or_statement . list(vardecl_or_statement) [ RBRACE ] ## @@ -3906,7 +3908,7 @@ Variable declaration, statement or "}" expected. program: MODELBLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 337. +## Ends in an error in state: 345. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3962,7 +3964,7 @@ program: MODELBLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE program: MODELBLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 339. +## Ends in an error in state: 347. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4017,14 +4019,14 @@ program: MODELBLOCK LBRACE VECTOR LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## "[" expression "]" expected for vector sizes. program: MODELBLOCK LBRACE VECTOR LBRACK WHILE ## -## Ends in an error in state: 336. +## Ends in an error in state: 344. ## ## sized_basic_type -> VECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> VECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -4037,7 +4039,7 @@ program: MODELBLOCK LBRACE VECTOR LBRACK WHILE program: MODELBLOCK LBRACE VECTOR WHILE ## -## Ends in an error in state: 335. +## Ends in an error in state: 343. ## ## sized_basic_type -> VECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## sized_basic_type -> VECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] @@ -4050,7 +4052,7 @@ program: MODELBLOCK LBRACE VECTOR WHILE program: MODELBLOCK LBRACE VOID ## -## Ends in an error in state: 751. +## Ends in an error in state: 761. ## ## model_block -> MODELBLOCK LBRACE . list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4062,7 +4064,7 @@ Variable declaration, statement or "}" expected. program: MODELBLOCK WHILE ## -## Ends in an error in state: 750. +## Ends in an error in state: 760. ## ## model_block -> MODELBLOCK . LBRACE list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4074,7 +4076,7 @@ Expected "{" after "model". program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 743. +## Ends in an error in state: 753. ## ## 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 [ # ] ## @@ -4086,7 +4088,7 @@ program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN program: PARAMETERSBLOCK LBRACE WHILE ## -## Ends in an error in state: 739. +## Ends in an error in state: 749. ## ## parameters_block -> PARAMETERSBLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4098,7 +4100,7 @@ Expected top-level variable declaration or "}". program: PARAMETERSBLOCK WHILE ## -## Ends in an error in state: 738. +## Ends in an error in state: 748. ## ## parameters_block -> PARAMETERSBLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4110,7 +4112,7 @@ Expected "{" after "parameters". program: TRANSFORMEDDATABLOCK LBRACE BANG REALNUMERAL WHILE ## -## Ends in an error in state: 116. +## Ends in an error in state: 124. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -4166,7 +4168,7 @@ Ill-formed expression. Expression expected after "!". program: TRANSFORMEDDATABLOCK LBRACE BANG TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 290. +## Ends in an error in state: 298. ## ## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -4222,7 +4224,7 @@ Ill-formed expression. Expression expected after "!". program: TRANSFORMEDDATABLOCK LBRACE BANG WHILE ## -## Ends in an error in state: 115. +## Ends in an error in state: 123. ## ## non_lhs -> BANG . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> BANG . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -4235,7 +4237,7 @@ Ill-formed expression. Expression expected after "!". program: TRANSFORMEDDATABLOCK LBRACE BREAK WHILE ## -## Ends in an error in state: 383. +## Ends in an error in state: 391. ## ## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4247,7 +4249,7 @@ Expected ";" after "break". program: TRANSFORMEDDATABLOCK LBRACE CONTINUE WHILE ## -## Ends in an error in state: 381. +## Ends in an error in state: 389. ## ## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4259,7 +4261,7 @@ Expected ";" after "continue". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 460. +## Ends in an error in state: 468. ## ## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4271,7 +4273,7 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON REALNUMERAL WHILE ## -## Ends in an error in state: 459. +## Ends in an error in state: 467. ## ## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4327,7 +4329,7 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TRUNCATE RPAREN VOID ## -## Ends in an error in state: 463. +## Ends in an error in state: 471. ## ## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4339,7 +4341,7 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TRUNCATE TILDE ## -## Ends in an error in state: 462. +## Ends in an error in state: 470. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4394,14 +4396,14 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TR ## 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expected expression followed by ")" after "for (" identifier "in" expression ":". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON WHILE ## -## Ends in an error in state: 458. +## Ends in an error in state: 466. ## ## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4414,7 +4416,7 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 380. +## Ends in an error in state: 388. ## ## nested_statement -> FOR LPAREN identifier IN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4426,7 +4428,7 @@ Ill-formed statement. Expected statement after ")" for the loop body of the fore program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL WHILE ## -## Ends in an error in state: 379. +## Ends in an error in state: 387. ## ## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4484,7 +4486,7 @@ Ill-formed expression. Expected expression after "for (" identifier "in". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 470. +## Ends in an error in state: 478. ## ## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4496,7 +4498,7 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON REALNUMERAL WHILE ## -## Ends in an error in state: 469. +## Ends in an error in state: 477. ## ## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4552,7 +4554,7 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNCATE RPAREN VOID ## -## Ends in an error in state: 473. +## Ends in an error in state: 481. ## ## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4564,7 +4566,7 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNCATE TILDE ## -## Ends in an error in state: 472. +## Ends in an error in state: 480. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4619,14 +4621,14 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNC ## 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expected expression followed by ")" after "for (" identifier "in" expression ":". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON WHILE ## -## Ends in an error in state: 468. +## Ends in an error in state: 476. ## ## nested_statement -> FOR LPAREN identifier IN lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN identifier IN lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4639,7 +4641,7 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE RPAREN VOID ## -## Ends in an error in state: 466. +## Ends in an error in state: 474. ## ## nested_statement -> FOR LPAREN identifier IN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4651,7 +4653,7 @@ Ill-formed statement. Expected statement after ")" for the loop body of the fore program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE TILDE ## -## Ends in an error in state: 465. +## Ends in an error in state: 473. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## nested_statement -> FOR LPAREN identifier IN lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4708,14 +4710,14 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expected expression followed by ")" or ":" after "for (" identifier "in". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN WHILE ## -## Ends in an error in state: 378. +## Ends in an error in state: 386. ## ## nested_statement -> FOR LPAREN identifier IN . lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN identifier IN . lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4732,7 +4734,7 @@ Ill-formed expression. Expected expression followed by ")" or ":" after "for (" program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE WHILE ## -## Ends in an error in state: 377. +## Ends in an error in state: 385. ## ## nested_statement -> FOR LPAREN identifier . IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN identifier . IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4749,7 +4751,7 @@ Expected "in" after loop identifier. program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN WHILE ## -## Ends in an error in state: 376. +## Ends in an error in state: 384. ## ## nested_statement -> FOR LPAREN . identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR LPAREN . identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4766,7 +4768,7 @@ Expected (loop) identifier after "(". program: TRANSFORMEDDATABLOCK LBRACE FOR WHILE ## -## Ends in an error in state: 375. +## Ends in an error in state: 383. ## ## nested_statement -> FOR . LPAREN identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> FOR . LPAREN identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4783,7 +4785,7 @@ Expected "(" after "for". program: TRANSFORMEDDATABLOCK LBRACE GETLP LPAREN WHILE ## -## Ends in an error in state: 113. +## Ends in an error in state: 121. ## ## common_expression -> GETLP 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 DIVIDE COMMA COLON BAR AND ] ## @@ -4795,7 +4797,7 @@ Expected ")" after "get_lp(". program: TRANSFORMEDDATABLOCK LBRACE GETLP WHILE ## -## Ends in an error in state: 112. +## Ends in an error in state: 120. ## ## common_expression -> GETLP . 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 DIVIDE COMMA COLON BAR AND ] ## @@ -4807,7 +4809,7 @@ Expected "()" after "get_lp". program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON ELSE VOID ## -## Ends in an error in state: 476. +## Ends in an error in state: 484. ## ## nested_statement -> IF LPAREN non_lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4820,7 +4822,7 @@ Ill-formed statement. Expected statement after "else". program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON VOID program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON UNREACHABLE ## -## Ends in an error in state: 475. +## Ends in an error in state: 483. ## ## nested_statement -> IF LPAREN non_lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN non_lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4833,7 +4835,7 @@ Ill-formed block. Expected a statement, variable declaration, or just "}". program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 374. +## Ends in an error in state: 382. ## ## nested_statement -> IF LPAREN non_lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4846,7 +4848,7 @@ Ill-formed statement. Statement expected for true branch of conditional. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 373. +## Ends in an error in state: 381. ## ## nested_statement -> IF LPAREN non_lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4903,7 +4905,7 @@ Expected ")" after test expression of conditional control flow construct. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE RPAREN SEMICOLON ELSE VOID ## -## Ends in an error in state: 481. +## Ends in an error in state: 489. ## ## nested_statement -> IF LPAREN lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -4915,7 +4917,7 @@ Ill-formed statement. Expected statement after else. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE RPAREN VOID ## -## Ends in an error in state: 479. +## Ends in an error in state: 487. ## ## nested_statement -> IF LPAREN lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4928,7 +4930,7 @@ Ill-formed statement. Expected statement after ")" for true branch of conditiona program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 478. +## Ends in an error in state: 486. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## nested_statement -> IF LPAREN lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -4984,14 +4986,14 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expression expected after "(", for test of conditional control flow construct. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN WHILE ## -## Ends in an error in state: 372. +## Ends in an error in state: 380. ## ## nested_statement -> IF LPAREN . lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN . non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -5006,7 +5008,7 @@ Expected expression for test of conditional control flow construct. program: TRANSFORMEDDATABLOCK LBRACE IF WHILE ## -## Ends in an error in state: 371. +## Ends in an error in state: 379. ## ## nested_statement -> IF . LPAREN lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF . LPAREN non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -5021,7 +5023,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF WHILE program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN REALNUMERAL RPAREN WHILE ## -## Ends in an error in state: 366. +## Ends in an error in state: 374. ## ## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -5033,7 +5035,7 @@ Ill-formed statement. Expected ";" after ")". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 365. +## Ends in an error in state: 373. ## ## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5089,7 +5091,7 @@ Ill-formed statement. Expected expression followed by ");" after "(". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE RPAREN WHILE ## -## Ends in an error in state: 369. +## Ends in an error in state: 377. ## ## atomic_statement -> INCREMENTLOGPROB LPAREN lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -5101,7 +5103,7 @@ Ill-formed statement. Expected ";" after ")". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 368. +## Ends in an error in state: 376. ## ## atomic_statement -> INCREMENTLOGPROB LPAREN lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5156,14 +5158,14 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed statement. Expected expression followed by ");" after "(". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN WHILE ## -## Ends in an error in state: 364. +## Ends in an error in state: 372. ## ## atomic_statement -> INCREMENTLOGPROB LPAREN . lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> INCREMENTLOGPROB LPAREN . non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -5176,7 +5178,7 @@ Ill-formed statement. Expected expression followed by ");" after "(". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB WHILE ## -## Ends in an error in state: 363. +## Ends in an error in state: 371. ## ## atomic_statement -> INCREMENTLOGPROB . LPAREN lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> INCREMENTLOGPROB . LPAREN non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -5189,7 +5191,7 @@ Ill-formed statement. Expected "(" followed by an expression and ");", after "in program: TRANSFORMEDDATABLOCK LBRACE LBRACE REALNUMERAL COMMA WHILE ## -## Ends in an error in state: 255. +## Ends in an error in state: 263. ## ## separated_nonempty_list(COMMA,expression) -> non_lhs COMMA . separated_nonempty_list(COMMA,expression) [ RPAREN RBRACK RBRACE ] ## @@ -5201,7 +5203,7 @@ Ill-formed expression. Expected a comma-separated list of expressions. program: TRANSFORMEDDATABLOCK LBRACE LBRACE REALNUMERAL WHILE ## -## Ends in an error in state: 519. +## Ends in an error in state: 529. ## ## atomic_statement -> non_lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -5259,7 +5261,7 @@ Ill-formed phrase. Found an expression. This can be followed by a "~", a ",", a program: TRANSFORMEDDATABLOCK LBRACE LBRACE TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 522. +## Ends in an error in state: 532. ## ## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] @@ -5334,7 +5336,7 @@ Ill-formed phrase. Found an L-value. This can be followed by a "~", a ",", a "}" program: TRANSFORMEDDATABLOCK LBRACE LBRACE VOID ## -## Ends in an error in state: 334. +## Ends in an error in state: 342. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -5347,7 +5349,7 @@ Ill-formed phrase. "{" should be followed by a statement, variable declaration o program: TRANSFORMEDDATABLOCK LBRACE LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 257. +## Ends in an error in state: 265. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -5404,7 +5406,7 @@ Ill-formed phrase. Found an expression. This can be followed by a ",", a "}", a program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 259. +## Ends in an error in state: 267. ## ## separated_nonempty_list(COMMA,expression) -> lhs COMMA . separated_nonempty_list(COMMA,expression) [ RPAREN RBRACK RBRACE ] ## @@ -5417,7 +5419,7 @@ Ill-formed expression. We expect a comma separated list of expressions. program: DATABLOCK LBRACE ARRAY LBRACK UPPER RPAREN program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE RPAREN ## -## Ends in an error in state: 293. +## Ends in an error in state: 301. ## ## common_expression -> LBRACK loption(separated_nonempty_list(COMMA,expression)) . RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## @@ -5428,16 +5430,16 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 150, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 158, 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 "]". program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 258. +## Ends in an error in state: 266. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -5493,14 +5495,14 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. We found an L-value. Parse failed on token after the L-value. program: TRANSFORMEDDATABLOCK LBRACE LBRACK WHILE ## -## Ends in an error in state: 109. +## Ends in an error in state: 117. ## ## common_expression -> LBRACK . loption(separated_nonempty_list(COMMA,expression)) RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## @@ -5512,7 +5514,7 @@ Comma separated list of expressions followed by "]" expected after "[". program: TRANSFORMEDDATABLOCK LBRACE LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 295. +## Ends in an error in state: 303. ## ## common_expression -> LPAREN non_lhs . 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5568,7 +5570,7 @@ Expression or range of expressions followed by ")" expected after "(". program: TRANSFORMEDDATABLOCK LBRACE LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 297. +## Ends in an error in state: 305. ## ## common_expression -> LPAREN lhs . 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 DIVIDE COMMA COLON BAR AND ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5623,14 +5625,14 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found "(" followed by expression. Expect a "[", "," or ")" or an infix or postfix operator. program: TRANSFORMEDDATABLOCK LBRACE LPAREN WHILE ## -## Ends in an error in state: 108. +## Ends in an error in state: 116. ## ## common_expression -> LPAREN . lhs 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 DIVIDE COMMA COLON BAR AND ] ## common_expression -> LPAREN . non_lhs 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 DIVIDE COMMA COLON BAR AND ] @@ -5643,7 +5645,7 @@ Expression expected after "(". program: TRANSFORMEDDATABLOCK LBRACE MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 299. +## Ends in an error in state: 307. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -5699,7 +5701,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE MINUS TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 300. +## Ends in an error in state: 308. ## ## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -5755,7 +5757,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE MINUS WHILE ## -## Ends in an error in state: 107. +## Ends in an error in state: 115. ## ## non_lhs -> MINUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> MINUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -5768,7 +5770,7 @@ Ill-formed expression. Expect an expression after "-". program: TRANSFORMEDDATABLOCK LBRACE PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 301. +## Ends in an error in state: 309. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -5824,7 +5826,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE PLUS TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 302. +## Ends in an error in state: 310. ## ## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -5880,7 +5882,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE PLUS WHILE ## -## Ends in an error in state: 106. +## Ends in an error in state: 114. ## ## non_lhs -> PLUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> PLUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -5893,7 +5895,7 @@ Ill-formed expression. Expect an expression after "+". program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN STRINGLITERAL WHILE ## -## Ends in an error in state: 331. +## Ends in an error in state: 339. ## ## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] @@ -5906,7 +5908,7 @@ Expected a comma-separated list of expressions or strings followed by ");" after program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN TRUNCATE RPAREN WHILE ## -## Ends in an error in state: 332. +## Ends in an error in state: 340. ## ## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -5918,7 +5920,7 @@ Expected a ";" after "print(...)". program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN WHILE ## -## Ends in an error in state: 330. +## Ends in an error in state: 338. ## ## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -5930,7 +5932,7 @@ Expected a comma-separated list of expressions or strings followed by ");" after program: TRANSFORMEDDATABLOCK LBRACE PRINT WHILE ## -## Ends in an error in state: 329. +## Ends in an error in state: 337. ## ## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -5942,7 +5944,7 @@ Expected "(" followed by a comma-separated list of expressions or strings follow program: TRANSFORMEDDATABLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 737. +## Ends in an error in state: 747. ## ## 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 [ # ] ## @@ -5954,7 +5956,7 @@ Expected "parameters {", "transformed parameters {", "model {", "generated quant program: TRANSFORMEDDATABLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 721. +## Ends in an error in state: 731. ## ## decl(top_var_type,expression) -> top_var_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## id_and_optional_assignment(expression) -> decl_identifier . optional_assignment(expression) [ SEMICOLON ] @@ -6049,7 +6051,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL IDIVIDE REALNUMERAL WHILE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW UPPER LBRACK RBRACK WHILE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW REALNUMERAL WHILE ## -## Ends in an error in state: 128. +## Ends in an error in state: 136. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6117,7 +6119,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK TRUNCATE COLON WHILE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL AND REALNUMERAL WHILE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK WHILE ## -## Ends in an error in state: 118. +## Ends in an error in state: 126. ## ## non_lhs -> non_lhs LBRACK . indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## @@ -6160,7 +6162,7 @@ program: TRANSFORMEDDATABLOCK LBRACE UPPER IDIVIDE WHILE program: TRANSFORMEDDATABLOCK LBRACE UPPER ELTPOW WHILE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW WHILE ## -## Ends in an error in state: 127. +## Ends in an error in state: 135. ## ## non_lhs -> non_lhs ELTPOW . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs ELTPOW . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6182,7 +6184,7 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK TRUNCATE COLON WHILE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK TRUNCATE TILDE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK WHILE ## -## Ends in an error in state: 152. +## Ends in an error in state: 160. ## ## non_lhs -> non_lhs QMARK . lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs QMARK . lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6201,7 +6203,7 @@ For example, this returns 3.0: program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN REALNUMERAL WHILE program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 328. +## Ends in an error in state: 336. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6256,14 +6258,14 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Got an incomplete statement - are you missing a paren or semi-colon? program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 190. +## Ends in an error in state: 198. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6319,7 +6321,7 @@ Looks like program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL AND WHILE ## -## Ends in an error in state: 223. +## Ends in an error in state: 231. ## ## non_lhs -> non_lhs AND . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs AND . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6335,7 +6337,7 @@ Ill-formed expression. Expected expression after expression followed by "&&". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL IDIVIDE WHILE ## -## Ends in an error in state: 139. +## Ends in an error in state: 147. ## ## non_lhs -> non_lhs IDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs IDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6348,7 +6350,7 @@ Ill-formed expression. Expected expression after expression followed by "%/%". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL DIVIDE WHILE ## -## Ends in an error in state: 173. +## Ends in an error in state: 181. ## ## non_lhs -> non_lhs DIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs DIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6362,7 +6364,7 @@ Ill-formed expression. Expected expression after expression followed by "/". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTDIVIDE WHILE ## -## Ends in an error in state: 170. +## Ends in an error in state: 178. ## ## non_lhs -> non_lhs ELTDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs ELTDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6377,7 +6379,7 @@ Ill-formed expression. Expected expression after expression followed by "./". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTTIMES WHILE ## -## Ends in an error in state: 160. +## Ends in an error in state: 168. ## ## non_lhs -> non_lhs ELTTIMES . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs ELTTIMES . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6390,7 +6392,7 @@ Ill-formed expression. Expected expression after expression followed by ".*". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL EQUALS WHILE ## -## Ends in an error in state: 220. +## Ends in an error in state: 228. ## ## non_lhs -> non_lhs EQUALS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs EQUALS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6403,7 +6405,7 @@ Ill-formed expression. Expected expression after expression followed by "==". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL GEQ WHILE ## -## Ends in an error in state: 204. +## Ends in an error in state: 212. ## ## non_lhs -> non_lhs GEQ . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs GEQ . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6416,7 +6418,7 @@ Ill-formed expression. Expected expression after expression followed by ">=". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL HAT WHILE ## -## Ends in an error in state: 125. +## Ends in an error in state: 133. ## ## non_lhs -> non_lhs HAT . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs HAT . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6429,7 +6431,7 @@ Ill-formed expression. Expected expression after expression followed by "^". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LABRACK WHILE ## -## Ends in an error in state: 201. +## Ends in an error in state: 209. ## ## non_lhs -> non_lhs LABRACK . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs LABRACK . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6442,7 +6444,7 @@ Ill-formed expression. Expected expression after expression followed by "<". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON REALNUMERAL WHILE ## -## Ends in an error in state: 120. +## Ends in an error in state: 128. ## ## indexes -> COLON non_lhs . [ RBRACK COMMA ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6498,7 +6500,7 @@ Ill-formed phrase. Found ":" expression. We expect either an infix or postfix op program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON TRUNCATE TILDE ## -## Ends in an error in state: 287. +## Ends in an error in state: 295. ## ## indexes -> COLON lhs . [ RBRACK COMMA ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6553,14 +6555,14 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found ":" expression. We expect either an infix or postfix operator, or "," or or "[" or "]" next. program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON WHILE ## -## Ends in an error in state: 119. +## Ends in an error in state: 127. ## ## indexes -> COLON . [ RBRACK COMMA ] ## indexes -> COLON . lhs [ RBRACK COMMA ] @@ -6574,7 +6576,7 @@ Ill-formed expression. Expected expression or "]" or "," after ":". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COMMA WHILE ## -## Ends in an error in state: 282. +## Ends in an error in state: 290. ## ## indexes -> indexes COMMA . indexes [ RBRACK COMMA ] ## @@ -6586,7 +6588,7 @@ Expected index after indices followed by ",". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL COLON WHILE ## -## Ends in an error in state: 273. +## Ends in an error in state: 281. ## ## indexes -> non_lhs COLON . [ RBRACK COMMA ] ## indexes -> non_lhs COLON . lhs [ RBRACK COMMA ] @@ -6601,7 +6603,7 @@ Ill-formed expression. Expected expression or "]" or "," after ":". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA RBRACK MULTIPLIER ## -## Ends in an error in state: 401. +## Ends in an error in state: 409. ## ## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6613,7 +6615,7 @@ Expected ";" after "~"-statement (with optional truncation). program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA TRUNCATE COMMA ## -## Ends in an error in state: 396. +## Ends in an error in state: 404. ## ## truncation -> TRUNCATE LBRACK option(expression) COMMA option(expression) . RBRACK [ SEMICOLON ] ## @@ -6624,15 +6626,15 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TR ## 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 148, spurious reduction of production lhs -> identifier -## In state 399, spurious reduction of production option(expression) -> lhs +## In state 156, spurious reduction of production lhs -> identifier +## In state 407, spurious reduction of production option(expression) -> lhs ## Ill-formed truncation. Expect the format "T[" optional expression "," optional expression "];". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA WHILE ## -## Ends in an error in state: 395. +## Ends in an error in state: 403. ## ## truncation -> TRUNCATE LBRACK option(expression) COMMA . option(expression) RBRACK [ SEMICOLON ] ## @@ -6644,7 +6646,7 @@ Ill-formed truncation. Expect the format "T[" optional expression "," optional e program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 398. +## Ends in an error in state: 406. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6700,7 +6702,7 @@ Ill-formed expression. Found an expression. Expect a infix or postfix operator o program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK TRUNCATE RBRACK ## -## Ends in an error in state: 394. +## Ends in an error in state: 402. ## ## truncation -> TRUNCATE LBRACK option(expression) . COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -6711,15 +6713,15 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TR ## 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 148, spurious reduction of production lhs -> identifier -## In state 399, spurious reduction of production option(expression) -> lhs +## In state 156, spurious reduction of production lhs -> identifier +## In state 407, spurious reduction of production option(expression) -> lhs ## Ill-formed truncation. Expect the format "T[" optional expression "," optional expression "];". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 399. +## Ends in an error in state: 407. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6774,14 +6776,14 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TR ## 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. Found an expression. Expect a infix or postfix operator or "[" or "]" or "," next. program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 393. +## Ends in an error in state: 401. ## ## truncation -> TRUNCATE LBRACK . option(expression) COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -6793,7 +6795,7 @@ Ill-formed truncation. Expect the format "T[" optional expression "," optional e program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE WHILE ## -## Ends in an error in state: 392. +## Ends in an error in state: 400. ## ## truncation -> TRUNCATE . LBRACK option(expression) COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -6805,7 +6807,7 @@ Ill-formed truncation. Expect the format "T[" optional expression "," optional e program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN WHILE ## -## Ends in an error in state: 391. +## Ends in an error in state: 399. ## ## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6817,7 +6819,7 @@ Ill-formed "~"-statement. Expect either ";" or a truncation with the format "T[" program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN TRUNCATE RBRACK ## -## Ends in an error in state: 390. +## Ends in an error in state: 398. ## ## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6828,16 +6830,16 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN TRUNCATE ## 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 150, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 158, 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 ")". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 389. +## Ends in an error in state: 397. ## ## atomic_statement -> non_lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6849,7 +6851,7 @@ Ill-formed "~"-statement. Expect a comma separated list of expressions for argum program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE WHILE ## -## Ends in an error in state: 388. +## Ends in an error in state: 396. ## ## atomic_statement -> non_lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6861,7 +6863,7 @@ Ill-formed "~"-statement. Expect "(" after distribution name, followed by a comm program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE WHILE ## -## Ends in an error in state: 387. +## Ends in an error in state: 395. ## ## atomic_statement -> non_lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6873,7 +6875,7 @@ Ill-formed "~"-statement. Expect an distribution name after "~". program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN STRINGLITERAL WHILE ## -## Ends in an error in state: 322. +## Ends in an error in state: 330. ## ## atomic_statement -> REJECT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] @@ -6886,7 +6888,7 @@ Ill-formed printable. After "reject(", we expect a comma separated list of eithe program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE COMMA STRINGLITERAL WHILE ## -## Ends in an error in state: 326. +## Ends in an error in state: 334. ## ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## printables -> printables COMMA printables . [ RPAREN COMMA ] @@ -6899,7 +6901,7 @@ Ill-formed printable. After "print(" and "reject(", we expect a comma separated program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 325. +## Ends in an error in state: 333. ## ## printables -> printables COMMA . printables [ RPAREN COMMA ] ## @@ -6911,7 +6913,7 @@ Ill-formed printable. After "print(" and "reject(", we expect a comma separated program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE RPAREN WHILE ## -## Ends in an error in state: 323. +## Ends in an error in state: 331. ## ## atomic_statement -> REJECT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6923,7 +6925,7 @@ Ill-formed reject statement. After "reject(", we expect a comma separated list o program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN WHILE ## -## Ends in an error in state: 319. +## Ends in an error in state: 327. ## ## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6935,7 +6937,7 @@ Ill-formed reject statement. After "reject(", we expect a comma separated list o program: TRANSFORMEDDATABLOCK LBRACE REJECT WHILE ## -## Ends in an error in state: 318. +## Ends in an error in state: 326. ## ## atomic_statement -> REJECT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -6947,7 +6949,7 @@ Ill-formed reject statement. After "reject(", we expect a comma separated list o program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE TRUNCATE RPAREN ## -## Ends in an error in state: 291. +## Ends in an error in state: 299. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -6958,15 +6960,15 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE TRUNCATE 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs ## Expected either "," followed by expression or "}" next. program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE WHILE ## -## Ends in an error in state: 110. +## Ends in an error in state: 118. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -6978,7 +6980,7 @@ Expression expected after "{" in array expression. program: TRANSFORMEDDATABLOCK LBRACE RETURN REALNUMERAL WHILE ## -## Ends in an error in state: 314. +## Ends in an error in state: 322. ## ## atomic_statement -> RETURN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7034,7 +7036,7 @@ Ill formed expression followed by ";". Expect expression after "return". program: TRANSFORMEDDATABLOCK LBRACE RETURN TARGET WHILE ## -## Ends in an error in state: 102. +## Ends in an error in state: 110. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7046,7 +7048,7 @@ Ill formed expression. After "target", we expect "()". program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE LPAREN TRUNCATE COMMA IDENTIFIER RBRACK ## -## Ends in an error in state: 264. +## Ends in an error in state: 272. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7057,17 +7059,17 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE LPAREN TRUNCATE COMMA IDENT ## 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 260, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 150, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 268, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) +## In state 158, 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 "(". program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 149. +## Ends in an error in state: 157. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## common_expression -> identifier LPAREN . lhs 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 DIVIDE COMMA COLON BAR AND ] @@ -7081,7 +7083,7 @@ Ill-formed expression. In function application, expect comma-separated list of e program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE TILDE ## -## Ends in an error in state: 316. +## Ends in an error in state: 324. ## ## atomic_statement -> RETURN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7136,14 +7138,14 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed return statement. ";" or expression followed by ";" expected after "return". program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE WHILE ## -## Ends in an error in state: 148. +## Ends in an error in state: 156. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## common_expression -> identifier . LPAREN lhs 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 DIVIDE COMMA COLON BAR AND ] @@ -7158,7 +7160,7 @@ Ill-formed expression. Found identifier. There are many ways to complete this to program: TRANSFORMEDDATABLOCK LBRACE RETURN WHILE ## -## Ends in an error in state: 312. +## Ends in an error in state: 320. ## ## atomic_statement -> RETURN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> RETURN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -7172,7 +7174,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN WHILE program: TRANSFORMEDDATABLOCK LBRACE TARGET LPAREN WHILE ## -## Ends in an error in state: 103. +## Ends in an error in state: 111. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7184,7 +7186,7 @@ Ill-formed expression. Expected ")" after "target(". program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 307. +## Ends in an error in state: 315. ## ## atomic_statement -> TARGET PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7240,7 +7242,7 @@ Ill-formed expression. Expression followed by ";" expected after "target +=". program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 309. +## Ends in an error in state: 317. ## ## atomic_statement -> TARGET PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7295,14 +7297,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expression followed by ";" expected after "target +=". program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN WHILE ## -## Ends in an error in state: 306. +## Ends in an error in state: 314. ## ## atomic_statement -> TARGET PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> TARGET PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -7315,7 +7317,7 @@ Expected an expression followed by a ";", after "target +=". program: TRANSFORMEDDATABLOCK LBRACE TARGET WHILE ## -## Ends in an error in state: 305. +## Ends in an error in state: 313. ## ## atomic_statement -> TARGET . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> TARGET . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -7329,7 +7331,7 @@ Ill-formed phrase. Expect either "+=" or "()" after "target". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 448. +## Ends in an error in state: 456. ## ## atomic_statement -> lhs ARROWASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7385,7 +7387,7 @@ Ill-formed phrase. Found L-value "<-" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 450. +## Ends in an error in state: 458. ## ## atomic_statement -> lhs ARROWASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7440,14 +7442,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "<-" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN WHILE ## -## Ends in an error in state: 447. +## Ends in an error in state: 455. ## ## atomic_statement -> lhs ARROWASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs ARROWASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -7460,7 +7462,7 @@ Ill-formed expression. Found L-value "<-". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 443. +## Ends in an error in state: 451. ## ## atomic_statement -> lhs ASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7516,7 +7518,7 @@ Ill-formed phrase. Found L-value "=" expression. There are many ways in which th program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 445. +## Ends in an error in state: 453. ## ## atomic_statement -> lhs ASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7571,14 +7573,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN WHILE ## -## Ends in an error in state: 442. +## Ends in an error in state: 450. ## ## atomic_statement -> lhs ASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs ASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -7591,7 +7593,7 @@ Ill-formed expression. Found L-value "=". Expect an expression followed by ";" n program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 438. +## Ends in an error in state: 446. ## ## atomic_statement -> lhs DIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7647,7 +7649,7 @@ Ill-formed phrase. Found L-value "/=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 440. +## Ends in an error in state: 448. ## ## atomic_statement -> lhs DIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7702,14 +7704,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "/=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN WHILE ## -## Ends in an error in state: 437. +## Ends in an error in state: 445. ## ## atomic_statement -> lhs DIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs DIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -7722,7 +7724,7 @@ Ill-formed expression. Found L-value "/=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 433. +## Ends in an error in state: 441. ## ## atomic_statement -> lhs ELTDIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7778,7 +7780,7 @@ Ill-formed phrase. Found L-value "./=" expression. There are many ways in which program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 435. +## Ends in an error in state: 443. ## ## atomic_statement -> lhs ELTDIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7833,14 +7835,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "./=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN WHILE ## -## Ends in an error in state: 432. +## Ends in an error in state: 440. ## ## atomic_statement -> lhs ELTDIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs ELTDIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -7853,7 +7855,7 @@ Ill-formed expression. Found L-value "./=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 428. +## Ends in an error in state: 436. ## ## atomic_statement -> lhs ELTTIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7909,7 +7911,7 @@ Ill-formed phrase. Found L-value ".*=" expression. There are many ways in which program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 430. +## Ends in an error in state: 438. ## ## atomic_statement -> lhs ELTTIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7964,14 +7966,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value ".*=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL BAR TRUNCATE RBRACK ## -## Ends in an error in state: 262. +## Ends in an error in state: 270. ## ## common_expression -> identifier LPAREN non_lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7982,16 +7984,16 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL BAR TRUNCATE RB ## 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 150, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 158, 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 "|". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL BAR WHILE ## -## Ends in an error in state: 261. +## Ends in an error in state: 269. ## ## common_expression -> identifier LPAREN non_lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -8003,7 +8005,7 @@ Ill-formed conditional distribution evaluation. Expect comma-separated list of e program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 151. +## Ends in an error in state: 159. ## ## common_expression -> identifier LPAREN non_lhs . 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA BAR AND ] @@ -8061,7 +8063,7 @@ Ill-formed function application. Expect comma-separated list of expressions foll program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN RPAREN WHILE ## -## Ends in an error in state: 455. +## Ends in an error in state: 463. ## ## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -8074,7 +8076,7 @@ Ill-formed phrase. Found a well-formed function application. After this, there a program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE BAR TRUNCATE RBRACK ## -## Ends in an error in state: 268. +## Ends in an error in state: 276. ## ## common_expression -> identifier LPAREN lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -8085,16 +8087,16 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE BAR TRUNCATE RBRAC ## 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 150, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 158, 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 "|". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE BAR WHILE ## -## Ends in an error in state: 267. +## Ends in an error in state: 275. ## ## common_expression -> identifier LPAREN lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -8106,7 +8108,7 @@ Ill-formed conditional distribution evaluation. Expect comma-separated list of e program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE COMMA IDENTIFIER RBRACK ## -## Ends in an error in state: 454. +## Ends in an error in state: 462. ## ## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -8118,17 +8120,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE COMMA IDENTIFIER R ## 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 260, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 150, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 268, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) +## In state 158, 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 "(". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 266. +## Ends in an error in state: 274. ## ## common_expression -> identifier LPAREN lhs . 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 DIVIDE COMMA COLON BAR AND ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA BAR AND ] @@ -8185,14 +8187,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed function application. Expect comma-separated list of expressions followed by ")" after "(". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 453. +## Ends in an error in state: 461. ## ## atomic_statement -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -8207,7 +8209,7 @@ Ill-formed function application. Expect comma-separated list of expressions foll program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 423. +## Ends in an error in state: 431. ## ## atomic_statement -> lhs MINUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8263,7 +8265,7 @@ Ill-formed phrase. Found L-value "-=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 425. +## Ends in an error in state: 433. ## ## atomic_statement -> lhs MINUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8318,14 +8320,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "-=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN WHILE ## -## Ends in an error in state: 422. +## Ends in an error in state: 430. ## ## atomic_statement -> lhs MINUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs MINUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8338,7 +8340,7 @@ Ill-formed expression. Found L-value "-=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 418. +## Ends in an error in state: 426. ## ## atomic_statement -> lhs PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8394,7 +8396,7 @@ Ill-formed phrase. Found L-value "+=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 420. +## Ends in an error in state: 428. ## ## atomic_statement -> lhs PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8449,14 +8451,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "+=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN WHILE ## -## Ends in an error in state: 417. +## Ends in an error in state: 425. ## ## atomic_statement -> lhs PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8469,7 +8471,7 @@ Ill-formed expression. Found L-value "+=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE RBRACE ## -## Ends in an error in state: 728. +## Ends in an error in state: 738. ## ## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8541,14 +8543,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE 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 452, spurious reduction of production lhs -> identifier +## In state 460, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value. This can be completed in many ways. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA RBRACK MULTIPLIER ## -## Ends in an error in state: 415. +## Ends in an error in state: 423. ## ## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8560,7 +8562,7 @@ Ill-formed "~"-statement. Expected ";". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN RPAREN WHILE ## -## Ends in an error in state: 414. +## Ends in an error in state: 422. ## ## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8572,7 +8574,7 @@ Ill-formed "~"-statement. Expected ";" or "T[" optional expression "," optional program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN TRUNCATE RBRACK ## -## Ends in an error in state: 413. +## Ends in an error in state: 421. ## ## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8583,16 +8585,16 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN TRUNCATE RBR ## 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 148, spurious reduction of production lhs -> identifier -## In state 258, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 150, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 156, spurious reduction of production lhs -> identifier +## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed "~"-statement. Expected "," or ")". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 412. +## Ends in an error in state: 420. ## ## atomic_statement -> lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8604,7 +8606,7 @@ Ill-formed "~"-statement. Expected comma-separated list of expressions followed program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE WHILE ## -## Ends in an error in state: 411. +## Ends in an error in state: 419. ## ## atomic_statement -> lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8616,7 +8618,7 @@ Ill-formed "~"-statement. Expected "(" followed by a comma-separated list of exp program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE WHILE ## -## Ends in an error in state: 410. +## Ends in an error in state: 418. ## ## atomic_statement -> lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8628,7 +8630,7 @@ Ill-formed "~"-statement. Expected identifier for distribution name after "~". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 406. +## Ends in an error in state: 414. ## ## atomic_statement -> lhs TIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8684,7 +8686,7 @@ Ill-formed phrase. Found L-value "*=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 408. +## Ends in an error in state: 416. ## ## atomic_statement -> lhs TIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8739,14 +8741,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "*=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN WHILE ## -## Ends in an error in state: 405. +## Ends in an error in state: 413. ## ## atomic_statement -> lhs TIMESASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs TIMESASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8759,7 +8761,7 @@ Ill-formed expression. Found L-value "*=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE WHILE ## -## Ends in an error in state: 452. +## Ends in an error in state: 460. ## ## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -8775,7 +8777,7 @@ Ill-formed statement or expression. A statement or expression could be expected program: TRANSFORMEDDATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## -## Ends in an error in state: 718. +## Ends in an error in state: 728. ## ## decl(top_var_type,expression) -> top_var_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8788,7 +8790,7 @@ Ill-formed top-level variable declaration. Expect an identifier next. program: TRANSFORMEDDATABLOCK LBRACE VOID ## -## Ends in an error in state: 716. +## Ends in an error in state: 726. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -8800,7 +8802,7 @@ Expect a statement or top-level variable declaration. program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 304. +## Ends in an error in state: 312. ## ## nested_statement -> WHILE LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8812,7 +8814,7 @@ Ill-formed statement. We expect a statement after ")", for the body of the while program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 303. +## Ends in an error in state: 311. ## ## nested_statement -> WHILE LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8868,7 +8870,7 @@ Ill-formed expression. We expect an expression after "(" for the test of the whi program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE RPAREN VOID ## -## Ends in an error in state: 525. +## Ends in an error in state: 535. ## ## nested_statement -> WHILE LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -8880,7 +8882,7 @@ Ill-formed statement. We expect a statement after ")", for the body of the while program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 524. +## Ends in an error in state: 534. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## nested_statement -> WHILE LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8935,14 +8937,14 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE 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 148, spurious reduction of production lhs -> identifier +## In state 156, spurious reduction of production lhs -> identifier ## Ill-formed expression. We expect an expression after "(" for the test of the while-loop. program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN WHILE ## -## Ends in an error in state: 101. +## Ends in an error in state: 109. ## ## nested_statement -> WHILE LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> WHILE LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8955,7 +8957,7 @@ Ill-formed expression. We expect an expression after "(" for the test of the whi program: TRANSFORMEDDATABLOCK LBRACE WHILE WHILE ## -## Ends in an error in state: 100. +## Ends in an error in state: 108. ## ## nested_statement -> WHILE . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> WHILE . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -8968,7 +8970,7 @@ After "while", we expect "(" expression ")" statement. program: TRANSFORMEDDATABLOCK WHILE ## -## Ends in an error in state: 715. +## Ends in an error in state: 725. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -8980,7 +8982,7 @@ We expect "{" after "transformed data". program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 749. +## Ends in an error in state: 759. ## ## 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 [ # ] ## @@ -8992,7 +8994,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN program: TRANSFORMEDPARAMETERSBLOCK LBRACE VOID ## -## Ends in an error in state: 745. +## Ends in an error in state: 755. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -9004,7 +9006,7 @@ Expect a statement or top-level variable declaration. program: TRANSFORMEDPARAMETERSBLOCK WHILE ## -## Ends in an error in state: 744. +## Ends in an error in state: 754. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -9016,7 +9018,7 @@ We expect "{" after "transformed parameters". program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE RBRACK ARROWASSIGN ## -## Ends in an error in state: 508. +## Ends in an error in state: 518. ## ## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] ## @@ -9028,7 +9030,7 @@ Expected ";" or "=" expression ";". program: DATABLOCK LBRACE REAL TRUNCATE LBRACK IDENTIFIER RBRACK WHILE ## -## Ends in an error in state: 700. +## Ends in an error in state: 710. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier dims . optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -9040,7 +9042,7 @@ Expected ";". program: TRANSFORMEDDATABLOCK LBRACE REAL TRUNCATE LBRACK IDENTIFIER RBRACK ARROWASSIGN ## -## Ends in an error in state: 722. +## Ends in an error in state: 732. ## ## decl(top_var_type,expression) -> top_var_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -9412,7 +9414,7 @@ Expected identifier, but found reserved keyword 'get_lp' program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 556. +## Ends in an error in state: 566. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -9438,7 +9440,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 575. +## Ends in an error in state: 585. ## ## range -> UPPER ASSIGN constr_expression COMMA . LOWER ASSIGN constr_expression [ RABRACK ] ## @@ -9450,7 +9452,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER WHILE ## -## Ends in an error in state: 576. +## Ends in an error in state: 586. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER . ASSIGN constr_expression [ RABRACK ] ## @@ -9462,7 +9464,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIGN WHILE ## -## Ends in an error in state: 577. +## Ends in an error in state: 587. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER ASSIGN . constr_expression [ RABRACK ] ## @@ -9474,7 +9476,7 @@ Numerical expression expected after '=' in a lower expression. program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 578. +## Ends in an error in state: 588. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -9498,14 +9500,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIG ## 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 543, spurious reduction of production constr_expression -> identifier +## In state 553, spurious reduction of production constr_expression -> identifier ## Expected '>' after lower expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 588. +## Ends in an error in state: 598. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -9531,7 +9533,7 @@ Expected '>' after multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 589. +## Ends in an error in state: 599. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA . OFFSET ASSIGN constr_expression [ RABRACK ] ## @@ -9543,7 +9545,7 @@ Expected '>' or offset expression after multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET WHILE ## -## Ends in an error in state: 590. +## Ends in an error in state: 600. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET . ASSIGN constr_expression [ RABRACK ] ## @@ -9555,7 +9557,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ASSIGN WHILE ## -## Ends in an error in state: 591. +## Ends in an error in state: 601. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET ASSIGN . constr_expression [ RABRACK ] ## @@ -9567,7 +9569,7 @@ Numerical expression expected after '=' in a multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 592. +## Ends in an error in state: 602. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -9591,14 +9593,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ## 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 543, spurious reduction of production constr_expression -> identifier +## In state 553, spurious reduction of production constr_expression -> identifier ## Expected '>' after multiplier expression. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN UPPER RPAREN SEMICOLON UNREACHABLE ## -## Ends in an error in state: 480. +## Ends in an error in state: 488. ## ## nested_statement -> IF LPAREN lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## nested_statement -> IF LPAREN lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -9612,7 +9614,7 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN UPPER RPAREN SEMICOLON UNREACHABL program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER IDIVIDE REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER ELTPOW REALNUMERAL WHILE ## -## Ends in an error in state: 552. +## Ends in an error in state: 562. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -9638,7 +9640,7 @@ Missing an ">"? Constraints on a vector declaration should be of the form program: TRANSFORMEDDATABLOCK LBRACE UPPER LBRACK WHILE ## -## Ends in an error in state: 131. +## Ends in an error in state: 139. ## ## lhs -> lhs LBRACK . indexes RBRACK [ VECTOR UNITVECTOR TRANSPOSE TIMESASSIGN TIMES TILDE SIMPLEX SEMICOLON RPAREN ROWVECTOR REAL RBRACK RBRACE RABRACK QMARK POSITIVEORDERED PLUSASSIGN PLUS ORDERED OR NEQUALS MODULO MINUSASSIGN MINUS MATRIX LEQ LDIVIDE LBRACK LABRACK INT IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE COVMATRIX CORRMATRIX COMMA COLON CHOLESKYFACTORCOV CHOLESKYFACTORCORR BAR ASSIGN ARROWASSIGN AND ] ## @@ -9654,7 +9656,7 @@ not program: FUNCTIONBLOCK LBRACE ARRAY WHILE program: DATABLOCK LBRACE ARRAY WHILE ## -## Ends in an error in state: 705. +## Ends in an error in state: 715. ## ## decl(top_var_type,no_assign) -> lhs . top_var_type id_and_optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR UNITVECTOR SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX LBRACK INT COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] @@ -9673,7 +9675,7 @@ program: FUNCTIONBLOCK LBRACE ARRAY LBRACK RBRACK WHILE ## ## Ends in an error in state: 16. ## -## unsized_type -> ARRAY always(unsized_dims) . basic_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_type -> ARRAY always(unsized_dims) . basic_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ARRAY always(unsized_dims) @@ -9685,7 +9687,7 @@ program: DATABLOCK LBRACE REAL UPPER ASSIGN WHILE program: DATABLOCK LBRACE REAL UPPER ASSIGN UNREACHABLE WHILE program: DATABLOCK LBRACE REAL UPPER LBRACK IDENTIFIER RBRACK ASSIGN UNREACHABLE WHILE ## -## Ends in an error in state: 701. +## Ends in an error in state: 711. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier dims optional_assignment(no_assign) . SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -9701,7 +9703,7 @@ program: DATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK VECTOR LBRACK INTNUMERA program: TRANSFORMEDDATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK VECTOR LBRACK INTNUMERAL RBRACK AND program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN UPPER RPAREN UPPER VECTOR ## -## Ends in an error in state: 404. +## Ends in an error in state: 412. ## ## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] @@ -9772,7 +9774,7 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN UPPER RPAREN UPPER VECTOR ## 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 452, spurious reduction of production lhs -> identifier +## In state 460, spurious reduction of production lhs -> identifier ## Expected identifier after type in declaration. @@ -9780,7 +9782,7 @@ Expected identifier after type in declaration. program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK WHILE ## -## Ends in an error in state: 483. +## Ends in an error in state: 491. ## ## closure_def -> FUNCTIONBLOCK . return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -9792,7 +9794,7 @@ Expected function definition. program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UNREACHABLE ## -## Ends in an error in state: 484. +## Ends in an error in state: 492. ## ## closure_def -> FUNCTIONBLOCK return_type . decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -9804,7 +9806,7 @@ Expected function definition. program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER WHILE ## -## Ends in an error in state: 485. +## Ends in an error in state: 493. ## ## closure_def -> FUNCTIONBLOCK return_type decl_identifier . LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -9816,7 +9818,7 @@ Expected argument list. program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER LPAREN WHILE ## -## Ends in an error in state: 486. +## Ends in an error in state: 494. ## ## closure_def -> FUNCTIONBLOCK return_type decl_identifier LPAREN . loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -9828,7 +9830,7 @@ Expected argument list. program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER LPAREN RPAREN VOID ## -## Ends in an error in state: 488. +## Ends in an error in state: 496. ## ## closure_def -> FUNCTIONBLOCK return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## @@ -9836,4 +9838,81 @@ program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER LPAREN RPAREN VOID ## FUNCTIONBLOCK return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN ## -Expected function body. \ No newline at end of file +Expected function body. + +program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID WHILE +## +## Ends in an error in state: 94. +## +## function_type -> return_type . LPAREN loption(separated_nonempty_list(COMMA,arg_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## return_type +## + +(Non-void) type expected in function argument declaration. + +program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID LPAREN WHILE +## +## Ends in an error in state: 95. +## +## function_type -> return_type LPAREN . loption(separated_nonempty_list(COMMA,arg_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## return_type LPAREN +## + +Expected type. + +program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID LPAREN VECTOR WHILE +## +## Ends in an error in state: 99. +## +## separated_nonempty_list(COMMA,arg_type) -> arg_type . [ RPAREN ] +## separated_nonempty_list(COMMA,arg_type) -> arg_type . COMMA separated_nonempty_list(COMMA,arg_type) [ RPAREN ] +## +## The known suffix of the stack is as follows: +## arg_type +## +## WARNING: This example involves spurious reductions. +## 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 103, spurious reduction of production option(unsized_dims) -> +## In state 105, spurious reduction of production unsized_type -> basic_type option(unsized_dims) +## In state 93, spurious reduction of production arg_type -> option(DATABLOCK) unsized_type +## + +TODO: PARSER MESSAGE NEEDED HERE. (error state 99) + +program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID LPAREN VECTOR COMMA WHILE +## +## Ends in an error in state: 100. +## +## separated_nonempty_list(COMMA,arg_type) -> arg_type COMMA . separated_nonempty_list(COMMA,arg_type) [ RPAREN ] +## +## The known suffix of the stack is as follows: +## arg_type COMMA +## + +Expected argument type. + +program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VECTOR RPAREN +## +## Ends in an error in state: 498. +## +## arg_decl -> arg_type . decl_identifier [ RPAREN COMMA ] +## +## The known suffix of the stack is as follows: +## arg_type +## +## WARNING: This example involves spurious reductions. +## 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 103, spurious reduction of production option(unsized_dims) -> +## In state 105, spurious reduction of production unsized_type -> basic_type option(unsized_dims) +## In state 93, spurious reduction of production arg_type -> option(DATABLOCK) unsized_type +## + +Expected identitifer. \ No newline at end of file diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 958720d27e..dce927ce83 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -210,9 +210,19 @@ return_type: { grammar_logger "return_type unsized_type" ; ReturnType ut } arg_decl: - | od=option(DATABLOCK) ut=unsized_type id=decl_identifier + | tp=arg_type id=decl_identifier { grammar_logger "arg_decl" ; - match od with None -> (UnsizedType.AutoDiffable, ut, id) | _ -> (DataOnly, ut, id) } + match tp with (ad, ut) -> (ad, ut, id) } + +arg_type: + | od=option(DATABLOCK) ut=unsized_type + { match od with None -> (UnsizedType.AutoDiffable, ut) | _ -> (DataOnly, ut) } + | od=option(DATABLOCK) ut=function_type + { match od with None -> (UnsizedType.AutoDiffable, ut) | _ -> (DataOnly, ut) } + +function_type: + | rt=return_type LPAREN args=separated_list(COMMA, arg_type) RPAREN + { grammar_logger "function_type" ; UnsizedType.UFun (args, rt, true) } always(x): | x=x diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 6cf930d1d3..e783ee6b57 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -89,7 +89,7 @@ let%expect_test "promote_unsized" = let rec pp_unsizedtype_custom_scalar ppf (scalar, ut) = match ut with - | UnsizedType.UInt | UReal -> string ppf scalar + | UnsizedType.UInt | UReal | UFun _ -> string ppf scalar | UArray t -> pf ppf "std::vector<%a>" pp_unsizedtype_custom_scalar (scalar, t) | UMatrix -> pf ppf "Eigen::Matrix<%s, -1, -1>" scalar diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 632b7b7a78..5426d41a56 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -432,6 +432,7 @@ let pp_ctor ppf p = let data_idents = List.map ~f:fst p.input_vars |> String.Set.of_list in let pp_stmt_topdecl_size_only ppf (Stmt.Fixed.({pattern; meta}) as s) = match pattern with + | Decl {decl_type= Unsized ut; _} when UnsizedType.is_fun_type ut -> () | Decl {decl_id; decl_type; _} when decl_id <> "pos__" -> ( match decl_type with | Sized st -> @@ -464,6 +465,7 @@ let pp_ctor ppf p = let rec top_level_decls Stmt.Fixed.({pattern; _}) = match pattern with + | Decl {decl_type= Unsized ut; _} when UnsizedType.is_fun_type ut -> [] | Decl d when d.decl_id <> "pos__" -> [(d.decl_id, Type.to_unsized d.decl_type, UnsizedType.DataOnly)] | SList stmts -> List.concat_map ~f:top_level_decls stmts diff --git a/src/stan_math_backend/Transform_Mir.ml b/src/stan_math_backend/Transform_Mir.ml index a6f3b9df8f..a67fb75a02 100644 --- a/src/stan_math_backend/Transform_Mir.ml +++ b/src/stan_math_backend/Transform_Mir.ml @@ -576,19 +576,28 @@ let trans_prog (p : Program.Typed.t) = ; meta= Expr.Typed.Meta.empty } ) ; meta= Location_span.empty } ] ) in + let recreate_closures = + (* closures cannot be model class members like other transformed data + recreate them at the start of every block. *) + List.filter p.prepare_data ~f:(function + | Stmt.Fixed.({pattern= Decl {decl_type= Unsized ut; _}; _}) + |{pattern= Assignment ((_, ut, _), _); _} -> + UnsizedType.is_fun_type ut + | _ -> false ) + in let p = { p with - log_prob + log_prob= recreate_closures @ log_prob ; prog_name= escape_name p.prog_name ; prepare_data= init_pos @ (p.prepare_data |> add_reads p.input_vars data_read) @ to_matrix_cl_stmts ; transform_inits= - init_pos + recreate_closures @ init_pos @ (p.transform_inits |> add_reads constrained_params data_read) @ List.map ~f:gen_write_unconstrained free_params - ; generate_quantities } + ; generate_quantities= recreate_closures @ generate_quantities } in Program.( p diff --git a/src/tfp_backend/Code_gen.ml b/src/tfp_backend/Code_gen.ml index 45fda18d6e..f2f110fee3 100644 --- a/src/tfp_backend/Code_gen.ml +++ b/src/tfp_backend/Code_gen.ml @@ -3,6 +3,7 @@ open Middle open Fmt let is_multi_index = function Index.MultiIndex _ -> true | _ -> false +let closures = ref String.Map.empty let pp_call ppf (name, pp_arg, args) = pf ppf "%s(@[%a@])" name (list ~sep:comma pp_arg) args @@ -65,6 +66,13 @@ and pp_paren ppf expr = let rec pp_stmt ppf s = match s.Stmt.Fixed.pattern with + | Assignment + ( (lhs, _, []) + , { pattern= + FunApp (CompilerInternal, fn, {pattern= Lit (Str, impl); _} :: _); _ + } ) + when fn = Internal_fun.to_string FnMakeClosure -> + pp_fundef ppf {(Map.find_exn !closures impl) with Program.fdname= lhs} | Assignment ((lhs, _, indices), rhs) -> pf ppf "%s%a = %a" lhs pp_indices indices pp_expr rhs | TargetPE rhs -> pf ppf "target += tf__.reduce_sum(%a)" pp_expr rhs @@ -87,13 +95,22 @@ let rec pp_stmt ppf s = -> raise_s [%message "Not implemented" (s : Stmt.Located.t)] -let pp_method ppf name params intro ?(outro = []) ppbody = +and pp_method ppf name params intro ?(outro = []) ppbody = pf ppf "@[def %a:@," pp_call_str (name, params) ; (list ~sep:cut string) ppf (intro @ [""]) ; ppbody ppf ; if not (List.is_empty outro) then pf ppf "@ %a" (list ~sep:cut string) outro ; pf ppf "@, @]" +and pp_fundef ppf {Program.fdname; fdargs; fdbody; _} = + let no_body_default : Stmt.Located.t = + {pattern= Stmt.Fixed.Pattern.Skip; meta= Location_span.empty} + in + pp_method ppf fdname + (List.map ~f:(fun (_, name, _) -> name) fdargs) + [] + (fun ppf -> pp_stmt ppf (Option.value ~default:no_body_default fdbody)) + let rec pp_cast prefix ppf (name, st) = match st with | SizedType.SArray (t, _) -> pp_cast prefix ppf (name, t) @@ -255,15 +272,6 @@ let pp_methods ppf p = pf ppf "@ %a" pp_bijectors p ; pf ppf "@ %a" pp_param_names p -let pp_fundef ppf {Program.fdname; fdargs; fdbody; _} = - let no_body_default : Stmt.Located.t = - {pattern= Stmt.Fixed.Pattern.Skip; meta= Location_span.empty} - in - pp_method ppf fdname - (List.map ~f:(fun (_, name, _) -> name) fdargs) - [] - (fun ppf -> pp_stmt ppf (Option.value ~default:no_body_default fdbody)) - let imports = {| import numpy as np__ @@ -275,8 +283,17 @@ from tensorflow.python.ops.parallel_for import pfor as pfor__ |} let pp_prog ppf (p : Program.Typed.t) = + let functions = + List.filter + ~f:(fun data -> + if Option.is_some data.Program.fdcaptures then ( + closures := Map.add_exn !closures ~key:data.fdname ~data ; + false ) + else true ) + p.functions_block + in pf ppf "@[%s@,%a@,class %s(tfd__.Distribution):@,@[%a@]@]" imports - (list ~sep:cut pp_fundef) p.functions_block p.prog_name pp_methods p ; + (list ~sep:cut pp_fundef) functions p.prog_name pp_methods p ; pf ppf "@ model = %s" p.prog_name (* Major work to do: diff --git a/test/integration/bad/closures/dune b/test/integration/bad/closures/dune new file mode 100644 index 0000000000..856a7fccef --- /dev/null +++ b/test/integration/bad/closures/dune @@ -0,0 +1 @@ +(include ../dune) diff --git a/test/integration/bad/closures/forwarddecl.stan b/test/integration/bad/closures/forwarddecl.stan new file mode 100644 index 0000000000..e19bb08dcc --- /dev/null +++ b/test/integration/bad/closures/forwarddecl.stan @@ -0,0 +1,8 @@ +model { + functions + real foo(real x, real y); + functions + real foo(real x, real y) { + return sqrt(squar(x)+square(y)); + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/lpdf.stan b/test/integration/bad/closures/lpdf.stan new file mode 100644 index 0000000000..5104f94fa8 --- /dev/null +++ b/test/integration/bad/closures/lpdf.stan @@ -0,0 +1,6 @@ +transformed parameters { + functions + real foo_lpdf(real x, real y) { + return normal_lpdf(x|y,1); + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/mutate1.stan b/test/integration/bad/closures/mutate1.stan new file mode 100644 index 0000000000..e135d8e20c --- /dev/null +++ b/test/integration/bad/closures/mutate1.stan @@ -0,0 +1,8 @@ +model { + real x = 0.0; + functions + real foo(real y) { + x = 2.0; + return x + y; + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/mutate2.stan b/test/integration/bad/closures/mutate2.stan new file mode 100644 index 0000000000..3ad652cc8b --- /dev/null +++ b/test/integration/bad/closures/mutate2.stan @@ -0,0 +1,8 @@ +model { + real x = 0.0; + functions + real foo(real y) { + return x + y; + } + x = 2.0; +} \ No newline at end of file diff --git a/test/integration/bad/closures/rng.stan b/test/integration/bad/closures/rng.stan new file mode 100644 index 0000000000..d93ad16e44 --- /dev/null +++ b/test/integration/bad/closures/rng.stan @@ -0,0 +1,6 @@ +model { + functions + real foo_rng(real x, real y) { + return normal_rng(x|y,1); + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/stanc.expected b/test/integration/bad/closures/stanc.expected new file mode 100644 index 0000000000..a4efa01b43 --- /dev/null +++ b/test/integration/bad/closures/stanc.expected @@ -0,0 +1,68 @@ + $ ../../../../../install/default/bin/stanc forwarddecl.stan + +Semantic error in 'forwarddecl.stan', line 2, column 4 to line 3, column 29: + ------------------------------------------------- + 1: model { + 2: functions + ^ + 3: real foo(real x, real y); + 4: functions + ------------------------------------------------- + +Local function is declared without specifying a definition. + + $ ../../../../../install/default/bin/stanc lpdf.stan + +Semantic error in 'lpdf.stan', line 3, column 9 to column 17: + ------------------------------------------------- + 1: transformed parameters { + 2: functions + 3: real foo_lpdf(real x, real y) { + ^ + 4: return normal_lpdf(x|y,1); + 5: } + ------------------------------------------------- + +Local function cannot have suffix _rng, _lpdf, _lpmf, _lcdf, _lccdf, or _lp. + + $ ../../../../../install/default/bin/stanc mutate1.stan + +Semantic error in 'mutate1.stan', line 5, column 8 to column 16: + ------------------------------------------------- + 3: functions + 4: real foo(real y) { + 5: x = 2.0; + ^ + 6: return x + y; + 7: } + ------------------------------------------------- + +Cannot assign to function argument, captured variable or loop identifier 'x'. + + $ ../../../../../install/default/bin/stanc mutate2.stan + +Semantic error in 'mutate2.stan', line 7, column 4 to column 12: + ------------------------------------------------- + 5: return x + y; + 6: } + 7: x = 2.0; + ^ + 8: } + ------------------------------------------------- + +Cannot assign to function argument, captured variable or loop identifier 'x'. + + $ ../../../../../install/default/bin/stanc rng.stan + +Semantic error in 'rng.stan', line 3, column 9 to column 16: + ------------------------------------------------- + 1: model { + 2: functions + 3: real foo_rng(real x, real y) { + ^ + 4: return normal_rng(x|y,1); + 5: } + ------------------------------------------------- + +Local function cannot have suffix _rng, _lpdf, _lpmf, _lcdf, _lccdf, or _lp. + diff --git a/test/integration/bad/compound-assign/stanc.expected b/test/integration/bad/compound-assign/stanc.expected index 9d70e1f414..07f9080a87 100644 --- a/test/integration/bad/compound-assign/stanc.expected +++ b/test/integration/bad/compound-assign/stanc.expected @@ -75,19 +75,7 @@ Semantic error in 'plus_equals_bad_var_lhs.stan', line 3, column 4 to column 14: 5: } ------------------------------------------------- -Ill-typed arguments supplied to assignment operator +=: lhs has type (real) => real and rhs has type real. Available signatures: -(int, int) => void -(real, int) => void -(real, real) => void -(vector, int) => void -(vector, real) => void -(vector, vector) => void -(row_vector, int) => void -(row_vector, real) => void -(row_vector, row_vector) => void -(matrix, int) => void -(matrix, real) => void -(matrix, matrix) => void +Cannot assign to function argument, captured variable or loop identifier 'foo'. $ ../../../../../install/default/bin/stanc plus_equals_bad_var_lhs2.stan diff --git a/test/integration/bad/stanc.expected b/test/integration/bad/stanc.expected index 983c7f822d..619709b280 100644 --- a/test/integration/bad/stanc.expected +++ b/test/integration/bad/stanc.expected @@ -1156,11 +1156,11 @@ Function bodies must contain a return statement of correct type in every branch. $ ../../../../install/default/bin/stanc functions-bad0.stan -Syntax error in 'functions-bad0.stan', line 2, column 10 to column 11, parsing error: +Syntax error in 'functions-bad0.stan', line 2, column 11 to column 15, parsing error: ------------------------------------------------- 1: functions { 2: real foo(void x) { - ^ + ^ 3: return 1.0; 4: } ------------------------------------------------- diff --git a/test/integration/good/code-gen/closures1.stan b/test/integration/good/code-gen/closures1.stan new file mode 100644 index 0000000000..412c0fc16f --- /dev/null +++ b/test/integration/good/code-gen/closures1.stan @@ -0,0 +1,35 @@ +data { + int N; + real x; + real y[N]; + vector[N] v; +} +transformed data { + functions + real foo(real z, row_vector r) { + real rs = sum(r); + real ys = sum(y); + real vs = sum(v); + return z + rs + x + ys + vs; + } +} +parameters { + real p; + real pa[N]; + vector[N] pv; +} +model { + functions + real bar(real z, row_vector r) { + real rs = sum(r); + real ys = sum(y); + real vs = sum(v); + real pas = sum(pa); + real pvs = sum(pv); + return z + rs + x + ys + vs + p + pas + pvs; + } + target += foo(0.0,[1.0]); + target += foo(p,[1.0]); + target += bar(0.0,[1.0]); + target += bar(p,[1.0]); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/closures2.stan b/test/integration/good/code-gen/closures2.stan new file mode 100644 index 0000000000..bbdce9b215 --- /dev/null +++ b/test/integration/good/code-gen/closures2.stan @@ -0,0 +1,30 @@ +transformed data { + functions + real foo(real x) { + return x; + } + functions + real bar(real y) { + return foo(y); + } +} +parameters { + real alpha; +} +transformed parameters { + functions + real baz(real y) { + return foo(y); + } + functions + real goo(real s) { + functions + real gar(real b) { + return b; + } + return gar(s); + } + real s1 = bar(1.0); + real s2 = baz(1.0); + real s3 = goo(1.0); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/closures3.stan b/test/integration/good/code-gen/closures3.stan new file mode 100644 index 0000000000..72a9bbef26 --- /dev/null +++ b/test/integration/good/code-gen/closures3.stan @@ -0,0 +1,27 @@ +functions { + real foo(real(real) g, real x) { + functions + real g2(real y) { + return g(y) * x; + } + return g2(1.0); + } +} +transformed data { + real x = 2.0; + functions + real bar(real y) { + return x*y; + } + real z = foo(bar, 1.0); +} +parameters { + real p; +} +transformed parameters { + functions + real baz(real y) { + return p*y; + } + real w = foo(baz, 1.0); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/closures4.stan b/test/integration/good/code-gen/closures4.stan new file mode 100644 index 0000000000..9acfd4cf6d --- /dev/null +++ b/test/integration/good/code-gen/closures4.stan @@ -0,0 +1,19 @@ +functions { + vector[] integrate(vector[] k, vector init, real[] ts) { + functions + vector harmonic(real t, vector y) { + return -k[1] .* y; + } + return ode_rk45(harmonic, init, 0, ts); + } +} +data { + vector[2] k[1]; + real ts[5]; +} +parameters { + vector[2] init; +} +transformed parameters { + vector[2] y[5] = integrate(k, init, ts); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 8f0f3b9f3f..ab12c6d076 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -858,6 +858,2681 @@ stan::model::model_base& new_model( + $ ../../../../../install/default/bin/stanc --print-cpp closures1.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures1_model_namespace { + + +inline void validate_positive_index(const char* var_name, const char* expr, + int val) { + if (val < 1) { + std::stringstream msg; + msg << "Found dimension size less than one in simplex declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + +inline void validate_unit_vector_index(const char* var_name, const char* expr, + int val) { + if (val <= 1) { + std::stringstream msg; + if (val == 1) { + msg << "Found dimension size one in unit vector declaration." + << " One-dimensional unit vector is discrete" + << " but the target distribution must be continuous." + << " variable=" << var_name << "; dimension size expression=" << expr; + } else { + msg << "Found dimension size less than one in unit vector declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + } + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + + +using std::istream; +using std::string; +using std::stringstream; +using std::vector; +using std::pow; +using stan::io::dump; +using stan::math::lgamma; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; +using stan::math::pow; + +static int current_statement__ = 0; +static const std::vector locations_array__ = {" (found before start of program)", + " (in 'closures1.stan', line 8, column 4 to line 14, column 5)", + " (in 'closures1.stan', line 17, column 4 to column 11)", + " (in 'closures1.stan', line 18, column 4 to column 15)", + " (in 'closures1.stan', line 19, column 4 to column 17)", + " (in 'closures1.stan', line 22, column 4 to line 30, column 5)", + " (in 'closures1.stan', line 31, column 4 to column 29)", + " (in 'closures1.stan', line 32, column 4 to column 27)", + " (in 'closures1.stan', line 33, column 4 to column 29)", + " (in 'closures1.stan', line 34, column 4 to column 27)", + " (in 'closures1.stan', line 2, column 4 to column 10)", + " (in 'closures1.stan', line 3, column 4 to column 11)", + " (in 'closures1.stan', line 4, column 11 to column 12)", + " (in 'closures1.stan', line 4, column 4 to column 14)", + " (in 'closures1.stan', line 5, column 11 to column 12)", + " (in 'closures1.stan', line 5, column 4 to column 16)", + " (in 'closures1.stan', line 18, column 12 to column 13)", + " (in 'closures1.stan', line 19, column 11 to column 12)", + " (in 'closures1.stan', line 24, column 8 to column 25)", + " (in 'closures1.stan', line 25, column 8 to column 25)", + " (in 'closures1.stan', line 26, column 8 to column 25)", + " (in 'closures1.stan', line 27, column 8 to column 27)", + " (in 'closures1.stan', line 28, column 8 to column 27)", + " (in 'closures1.stan', line 29, column 8 to column 52)", + " (in 'closures1.stan', line 23, column 35 to line 30, column 5)", + " (in 'closures1.stan', line 10, column 8 to column 25)", + " (in 'closures1.stan', line 11, column 8 to column 25)", + " (in 'closures1.stan', line 12, column 8 to column 25)", + " (in 'closures1.stan', line 13, column 8 to column 36)", + " (in 'closures1.stan', line 9, column 35 to line 14, column 5)"}; + +template +stan::promote_args_t +bar_L23C9_impl__(const T0__& p, const std::vector& pa, + const Eigen::Matrix& pv, + const Eigen::Matrix& v, const double& x, + const std::vector& y, const T6__& z, + const Eigen::Matrix& r, std::ostream* pstream__) ; + +template +class bar_L23C9_cfunctor__ { +local_scalar_t__ p; +std::vector pa; +Eigen::Matrix pv; +Eigen::Matrix v; +double x; +std::vector y; +public: +const size_t vars_count__; +bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; +bar_L23C9_cfunctor__(const local_scalar_t__& p__, + const std::vector& pa__, + const Eigen::Matrix& pv__, + const Eigen::Matrix& v__, + const double& x__, const std::vector& y__) +: p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), + vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& z, + const Eigen::Matrix& r) const +{ +return bar_L23C9_impl__(p, pa, pv, v, x, y, z, r, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = bar_L23C9_cfunctor__; +auto value_of__() const { +return ValueOf__(value_of(p), value_of(pa), value_of(pv), value_of(v), + value_of(x), value_of(y)); } +auto deep_copy_vars__() const { +return bar_L23C9_cfunctor__(deep_copy_vars(p), + deep_copy_vars(pa), + deep_copy_vars(pv), + deep_copy_vars(v), + deep_copy_vars(x), + deep_copy_vars(y)); } +void zero_adjoints__() { stan::math::zero_adjoints(p); +stan::math::zero_adjoints(pa);stan::math::zero_adjoints(pv); +stan::math::zero_adjoints(v);stan::math::zero_adjoints(x); +stan::math::zero_adjoints(y); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, p, pa, pv, v, x, y); } + +}; + +template +stan::promote_args_t +foo_L9C9_impl__(const Eigen::Matrix& v, const double& x, + const std::vector& y, const T3__& z, + const Eigen::Matrix& r, std::ostream* pstream__) ; + +template +class foo_L9C9_cfunctor__ { +Eigen::Matrix v; +double x; +std::vector y; +public: +const size_t vars_count__; +foo_L9C9_cfunctor__(const foo_L9C9_cfunctor__&) = default ; +foo_L9C9_cfunctor__(const Eigen::Matrix& v__, + const double& x__, const std::vector& y__) +: v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& z, + const Eigen::Matrix& r) const +{ +return foo_L9C9_impl__(v, x, y, z, r, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = foo_L9C9_cfunctor__; +auto value_of__() const { +return ValueOf__(value_of(v), value_of(x), value_of(y)); } +auto deep_copy_vars__() const { +return foo_L9C9_cfunctor__(deep_copy_vars(v), + deep_copy_vars(x), + deep_copy_vars(y)); } +void zero_adjoints__() { stan::math::zero_adjoints(v); +stan::math::zero_adjoints(x);stan::math::zero_adjoints(y); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, v, x, y); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, v, x, y); } + +}; + +template +stan::promote_args_t +bar_L23C9_impl__(const T0__& p, const std::vector& pa, + const Eigen::Matrix& pv, + const Eigen::Matrix& v, const double& x, + const std::vector& y, const T6__& z, + const Eigen::Matrix& r, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + local_scalar_t__ rs; + rs = DUMMY_VAR__; + + current_statement__ = 18; + rs = sum(r); + local_scalar_t__ ys; + ys = DUMMY_VAR__; + + current_statement__ = 19; + ys = sum(y); + local_scalar_t__ vs; + vs = DUMMY_VAR__; + + current_statement__ = 20; + vs = sum(v); + local_scalar_t__ pas; + pas = DUMMY_VAR__; + + current_statement__ = 21; + pas = sum(pa); + local_scalar_t__ pvs; + pvs = DUMMY_VAR__; + + current_statement__ = 22; + pvs = sum(pv); + current_statement__ = 23; + return (((((((z + rs) + x) + ys) + vs) + p) + pas) + pvs); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_L9C9_impl__(const Eigen::Matrix& v, const double& x, + const std::vector& y, const T3__& z, + const Eigen::Matrix& r, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + local_scalar_t__ rs; + rs = DUMMY_VAR__; + + current_statement__ = 25; + rs = sum(r); + local_scalar_t__ ys; + ys = DUMMY_VAR__; + + current_statement__ = 26; + ys = sum(y); + local_scalar_t__ vs; + vs = DUMMY_VAR__; + + current_statement__ = 27; + vs = sum(v); + current_statement__ = 28; + return ((((z + rs) + x) + ys) + vs); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures1_model final : public model_base_crtp { + + private: + int N; + double x; + std::vector y; + Eigen::Matrix v; + + public: + ~closures1_model() final { } + + std::string model_name() const final { return "closures1_model"; } + + std::vector model_compile_info() const { + std::vector stanc_info; + stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); + stanc_info.push_back("stancflags = --print-cpp"); + return stanc_info; + } + + + closures1_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "closures1_model_namespace::closures1_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 10; + context__.validate_dims("data initialization","N","int", + context__.to_vec()); + N = std::numeric_limits::min(); + + current_statement__ = 10; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 11; + context__.validate_dims("data initialization","x","double", + context__.to_vec()); + x = std::numeric_limits::quiet_NaN(); + + current_statement__ = 11; + x = context__.vals_r("x")[(1 - 1)]; + current_statement__ = 12; + validate_non_negative_index("y", "N", N); + current_statement__ = 13; + context__.validate_dims("data initialization","y","double", + context__.to_vec(N)); + y = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 13; + assign(y, nil_index_list(), context__.vals_r("y"), + "assigning variable y"); + current_statement__ = 14; + validate_non_negative_index("v", "N", N); + current_statement__ = 15; + context__.validate_dims("data initialization","v","double", + context__.to_vec(N)); + v = Eigen::Matrix(N); + stan::math::fill(v, std::numeric_limits::quiet_NaN()); + + { + std::vector v_flat__; + current_statement__ = 15; + assign(v_flat__, nil_index_list(), context__.vals_r("v"), + "assigning variable v_flat__"); + current_statement__ = 15; + pos__ = 1; + current_statement__ = 15; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 15; + assign(v, cons_list(index_uni(sym1__), nil_index_list()), + v_flat__[(pos__ - 1)], "assigning variable v"); + current_statement__ = 15; + pos__ = (pos__ + 1);} + } + + current_statement__ = 1; + auto foo = foo_L9C9_cfunctor__(v, x, y); + current_statement__ = 16; + validate_non_negative_index("pa", "N", N); + current_statement__ = 17; + validate_non_negative_index("pv", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + num_params_r__ += 1; + num_params_r__ += N; + num_params_r__ += N; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template + inline T__ log_prob(std::vector& params_r__, + std::vector& params_i__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + static const char* function__ = "closures1_model_namespace::log_prob"; +(void) function__; // suppress unused var warning + + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + + current_statement__ = 1; + auto foo = foo_L9C9_cfunctor__(v, x, y); + local_scalar_t__ p; + p = DUMMY_VAR__; + + current_statement__ = 2; + p = in__.scalar(); + std::vector pa; + pa = std::vector(N, DUMMY_VAR__); + + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 3; + assign(pa, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable pa");} + Eigen::Matrix pv; + pv = Eigen::Matrix(N); + stan::math::fill(pv, DUMMY_VAR__); + + current_statement__ = 4; + pv = in__.vector(N); + { + + current_statement__ = 5; + auto bar = bar_L23C9_cfunctor__(p, pa, pv, v, x, y); + current_statement__ = 6; + lp_accum__.add( + foo(pstream__, 0.0, stan::math::to_row_vector( + stan::math::array_builder().add(1.0).array()))); + current_statement__ = 7; + lp_accum__.add( + foo(pstream__, p, stan::math::to_row_vector( + stan::math::array_builder().add(1.0).array()))); + current_statement__ = 8; + lp_accum__.add( + bar(pstream__, 0.0, stan::math::to_row_vector( + stan::math::array_builder().add(1.0).array()))); + current_statement__ = 9; + lp_accum__.add( + bar(pstream__, p, stan::math::to_row_vector( + stan::math::array_builder().add(1.0).array()))); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob() + + template + inline void write_array(RNG& base_rng__, std::vector& params_r__, + std::vector& params_i__, + std::vector& vars__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + static const char* function__ = "closures1_model_namespace::write_array"; +(void) function__; // suppress unused var warning + + (void) function__; // suppress unused var warning + + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + + current_statement__ = 1; + auto foo = foo_L9C9_cfunctor__(v, x, y); + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = in__.scalar(); + std::vector pa; + pa = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 3; + assign(pa, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable pa");} + Eigen::Matrix pv; + pv = Eigen::Matrix(N); + stan::math::fill(pv, std::numeric_limits::quiet_NaN()); + + current_statement__ = 4; + pv = in__.vector(N); + vars__.emplace_back(p); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pa[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pv[(sym1__ - 1)]);} + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array() + + inline void transform_inits(const stan::io::var_context& context__, + std::vector& params_i__, + std::vector& vars__, + std::ostream* pstream__) const + final { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + + current_statement__ = 1; + auto foo = foo_L9C9_cfunctor__(v, x, y); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = context__.vals_r("p")[(1 - 1)]; + std::vector pa; + pa = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + assign(pa, nil_index_list(), context__.vals_r("pa"), + "assigning variable pa"); + Eigen::Matrix pv; + pv = Eigen::Matrix(N); + stan::math::fill(pv, std::numeric_limits::quiet_NaN()); + + { + std::vector pv_flat__; + current_statement__ = 4; + assign(pv_flat__, nil_index_list(), context__.vals_r("pv"), + "assigning variable pv_flat__"); + current_statement__ = 4; + pos__ = 1; + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 4; + assign(pv, cons_list(index_uni(sym1__), nil_index_list()), + pv_flat__[(pos__ - 1)], "assigning variable pv"); + current_statement__ = 4; + pos__ = (pos__ + 1);} + } + vars__.emplace_back(p); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pa[(sym1__ - 1)]);} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pv[(sym1__ - 1)]);} + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("p"); + names__.emplace_back("pa"); + names__.emplace_back("pv"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const + final { + dimss__.clear(); + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{static_cast(N)}); + + dimss__.emplace_back(std::vector{static_cast(N)}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pa" + '.' + std::to_string(sym1__)); + }} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pv" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pa" + '.' + std::to_string(sym1__)); + }} + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pv" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"pa\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"pv\",\"type\":{\"name\":\"vector\",\"length\":" << N << "},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"pa\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"pv\",\"type\":{\"name\":\"vector\",\"length\":" << N << "},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng__, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream = nullptr) const { + std::vector params_r_vec(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r_vec[i] = params_r(i); + std::vector vars_vec; + std::vector params_i_vec; + write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, + emit_transformed_parameters__, emit_generated_quantities__, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) + vars(i) = vars_vec[i]; + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + std::vector vec_params_r; + vec_params_r.reserve(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + vec_params_r.push_back(params_r(i)); + std::vector vec_params_i; + return log_prob(vec_params_r, vec_params_i, pstream); + } + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream__ = nullptr) const { + std::vector params_r_vec; + std::vector params_i_vec; + transform_inits(context, params_i_vec, params_r_vec, pstream__); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r(i) = params_r_vec[i]; + } + +}; +} +using stan_model = closures1_model_namespace::closures1_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +#endif + + + + $ ../../../../../install/default/bin/stanc --print-cpp closures2.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures2_model_namespace { + + +inline void validate_positive_index(const char* var_name, const char* expr, + int val) { + if (val < 1) { + std::stringstream msg; + msg << "Found dimension size less than one in simplex declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + +inline void validate_unit_vector_index(const char* var_name, const char* expr, + int val) { + if (val <= 1) { + std::stringstream msg; + if (val == 1) { + msg << "Found dimension size one in unit vector declaration." + << " One-dimensional unit vector is discrete" + << " but the target distribution must be continuous." + << " variable=" << var_name << "; dimension size expression=" << expr; + } else { + msg << "Found dimension size less than one in unit vector declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + } + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + + +using std::istream; +using std::string; +using std::stringstream; +using std::vector; +using std::pow; +using stan::io::dump; +using stan::math::lgamma; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; +using stan::math::pow; + +static int current_statement__ = 0; +static const std::vector locations_array__ = {" (found before start of program)", + " (in 'closures2.stan', line 2, column 4 to line 5, column 5)", + " (in 'closures2.stan', line 6, column 4 to line 9, column 5)", + " (in 'closures2.stan', line 12, column 4 to column 15)", + " (in 'closures2.stan', line 15, column 4 to line 18, column 5)", + " (in 'closures2.stan', line 19, column 4 to line 26, column 5)", + " (in 'closures2.stan', line 27, column 4 to column 23)", + " (in 'closures2.stan', line 28, column 4 to column 23)", + " (in 'closures2.stan', line 29, column 4 to column 23)", + " (in 'closures2.stan', line 8, column 8 to column 22)", + " (in 'closures2.stan', line 7, column 21 to line 9, column 5)", + " (in 'closures2.stan', line 4, column 8 to column 17)", + " (in 'closures2.stan', line 3, column 21 to line 5, column 5)", + " (in 'closures2.stan', line 17, column 8 to column 22)", + " (in 'closures2.stan', line 16, column 21 to line 18, column 5)", + " (in 'closures2.stan', line 21, column 8 to line 24, column 9)", + " (in 'closures2.stan', line 25, column 8 to column 22)", + " (in 'closures2.stan', line 20, column 21 to line 26, column 5)"}; + +template +stan::promote_args_t +bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; + +template +class bar_L7C9_cfunctor__ { +local_scalar_t__ foo; +public: +const size_t vars_count__; +bar_L7C9_cfunctor__(const bar_L7C9_cfunctor__&) = default ; +bar_L7C9_cfunctor__(const local_scalar_t__& foo__) +: foo(foo__), vars_count__(count_vars(foo__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& y) const +{ +return bar_L7C9_impl__(foo, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = bar_L7C9_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(foo)); } +auto deep_copy_vars__() const { +return bar_L7C9_cfunctor__(deep_copy_vars(foo)); } +void zero_adjoints__() { stan::math::zero_adjoints(foo); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, foo); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, foo); } + +}; + +template +stan::promote_args_t +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; + +template +class foo_L3C9_cfunctor__ { + +public: +const size_t vars_count__; +foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; +foo_L3C9_cfunctor__() +: , vars_count__(count_vars()) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& x) const +{ +return foo_L3C9_impl__(x, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = foo_L3C9_cfunctor__; +auto value_of__() const { return ValueOf__(); } +auto deep_copy_vars__() const { +return foo_L3C9_cfunctor__(); } +void zero_adjoints__() { } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, ); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, ); } + +}; + +template +stan::promote_args_t +baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; + +template +class baz_L16C9_cfunctor__ { +local_scalar_t__ foo; +public: +const size_t vars_count__; +baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; +baz_L16C9_cfunctor__(const local_scalar_t__& foo__) +: foo(foo__), vars_count__(count_vars(foo__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& y) const +{ +return baz_L16C9_impl__(foo, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = baz_L16C9_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(foo)); } +auto deep_copy_vars__() const { +return baz_L16C9_cfunctor__(deep_copy_vars(foo)); } +void zero_adjoints__() { stan::math::zero_adjoints(foo); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, foo); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, foo); } + +}; + +template +stan::promote_args_t +goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; + +template +class goo_L20C9_cfunctor__ { + +public: +const size_t vars_count__; +goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; +goo_L20C9_cfunctor__() +: , vars_count__(count_vars()) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& s) const +{ +return goo_L20C9_impl__(s, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = goo_L20C9_cfunctor__; +auto value_of__() const { return ValueOf__(); } +auto deep_copy_vars__() const { +return goo_L20C9_cfunctor__(); } +void zero_adjoints__() { } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, ); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, ); } + +}; + +template +stan::promote_args_t +baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; + +template +class baz_L16C9_cfunctor__ { +local_scalar_t__ foo; +public: +const size_t vars_count__; +baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; +baz_L16C9_cfunctor__(const local_scalar_t__& foo__) +: foo(foo__), vars_count__(count_vars(foo__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& y) const +{ +return baz_L16C9_impl__(foo, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = baz_L16C9_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(foo)); } +auto deep_copy_vars__() const { +return baz_L16C9_cfunctor__(deep_copy_vars(foo)); } +void zero_adjoints__() { stan::math::zero_adjoints(foo); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, foo); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, foo); } + +}; + +template +stan::promote_args_t +goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; + +template +class goo_L20C9_cfunctor__ { + +public: +const size_t vars_count__; +goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; +goo_L20C9_cfunctor__() +: , vars_count__(count_vars()) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& s) const +{ +return goo_L20C9_impl__(s, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = goo_L20C9_cfunctor__; +auto value_of__() const { return ValueOf__(); } +auto deep_copy_vars__() const { +return goo_L20C9_cfunctor__(); } +void zero_adjoints__() { } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, ); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, ); } + +}; + +template +stan::promote_args_t +bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 9; + return foo(pstream__, y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 11; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 13; + return foo(pstream__, y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + + current_statement__ = 15; + auto gar = gar_L22C13_cfunctor__(); + current_statement__ = 16; + return gar(pstream__, s); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 13; + return foo(pstream__, y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + + current_statement__ = 15; + auto gar = gar_L22C13_cfunctor__(); + current_statement__ = 16; + return gar(pstream__, s); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures2_model final : public model_base_crtp { + + private: + + + public: + ~closures2_model() final { } + + std::string model_name() const final { return "closures2_model"; } + + std::vector model_compile_info() const { + std::vector stanc_info; + stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); + stanc_info.push_back("stancflags = --print-cpp"); + return stanc_info; + } + + + closures2_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "closures2_model_namespace::closures2_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + + current_statement__ = 1; + auto foo = foo_L3C9_cfunctor__(); + + current_statement__ = 2; + auto bar = bar_L7C9_cfunctor__(foo); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + num_params_r__ += 1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template + inline T__ log_prob(std::vector& params_r__, + std::vector& params_i__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + static const char* function__ = "closures2_model_namespace::log_prob"; +(void) function__; // suppress unused var warning + + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + + current_statement__ = 1; + auto foo = foo_L3C9_cfunctor__(); + + current_statement__ = 2; + auto bar = bar_L7C9_cfunctor__(foo); + local_scalar_t__ alpha; + alpha = DUMMY_VAR__; + + current_statement__ = 3; + alpha = in__.scalar(); + + current_statement__ = 4; + auto baz = baz_L16C9_cfunctor__(foo); + + current_statement__ = 5; + auto goo = goo_L20C9_cfunctor__(); + local_scalar_t__ s1; + s1 = DUMMY_VAR__; + + current_statement__ = 6; + s1 = bar(pstream__, 1.0); + local_scalar_t__ s2; + s2 = DUMMY_VAR__; + + current_statement__ = 7; + s2 = baz(pstream__, 1.0); + local_scalar_t__ s3; + s3 = DUMMY_VAR__; + + current_statement__ = 8; + s3 = goo(pstream__, 1.0); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob() + + template + inline void write_array(RNG& base_rng__, std::vector& params_r__, + std::vector& params_i__, + std::vector& vars__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + static const char* function__ = "closures2_model_namespace::write_array"; +(void) function__; // suppress unused var warning + + (void) function__; // suppress unused var warning + + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + + current_statement__ = 1; + auto foo = foo_L3C9_cfunctor__(); + + current_statement__ = 2; + auto bar = bar_L7C9_cfunctor__(foo); + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + alpha = in__.scalar(); + + + double s1; + s1 = std::numeric_limits::quiet_NaN(); + + double s2; + s2 = std::numeric_limits::quiet_NaN(); + + double s3; + s3 = std::numeric_limits::quiet_NaN(); + + vars__.emplace_back(alpha); + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 4; + auto baz = baz_L16C9_cfunctor__(foo); + current_statement__ = 5; + auto goo = goo_L20C9_cfunctor__(); + current_statement__ = 6; + s1 = bar(pstream__, 1.0); + current_statement__ = 7; + s2 = baz(pstream__, 1.0); + current_statement__ = 8; + s3 = goo(pstream__, 1.0); + if (emit_transformed_parameters__) { + vars__.emplace_back(s1); + vars__.emplace_back(s2); + vars__.emplace_back(s3); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array() + + inline void transform_inits(const stan::io::var_context& context__, + std::vector& params_i__, + std::vector& vars__, + std::ostream* pstream__) const + final { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + + current_statement__ = 1; + auto foo = foo_L3C9_cfunctor__(); + + current_statement__ = 2; + auto bar = bar_L7C9_cfunctor__(foo); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + alpha = context__.vals_r("alpha")[(1 - 1)]; + vars__.emplace_back(alpha); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("alpha"); + names__.emplace_back("s1"); + names__.emplace_back("s2"); + names__.emplace_back("s3"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const + final { + dimss__.clear(); + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "alpha"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s1"); + param_names__.emplace_back(std::string() + "s2"); + param_names__.emplace_back(std::string() + "s3"); + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "alpha"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s1"); + param_names__.emplace_back(std::string() + "s2"); + param_names__.emplace_back(std::string() + "s3"); + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"s1\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s2\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s3\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"s1\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s2\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s3\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng__, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream = nullptr) const { + std::vector params_r_vec(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r_vec[i] = params_r(i); + std::vector vars_vec; + std::vector params_i_vec; + write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, + emit_transformed_parameters__, emit_generated_quantities__, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) + vars(i) = vars_vec[i]; + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + std::vector vec_params_r; + vec_params_r.reserve(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + vec_params_r.push_back(params_r(i)); + std::vector vec_params_i; + return log_prob(vec_params_r, vec_params_i, pstream); + } + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream__ = nullptr) const { + std::vector params_r_vec; + std::vector params_i_vec; + transform_inits(context, params_i_vec, params_r_vec, pstream__); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r(i) = params_r_vec[i]; + } + +}; +} +using stan_model = closures2_model_namespace::closures2_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +#endif + + + + $ ../../../../../install/default/bin/stanc --print-cpp closures3.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures3_model_namespace { + + +inline void validate_positive_index(const char* var_name, const char* expr, + int val) { + if (val < 1) { + std::stringstream msg; + msg << "Found dimension size less than one in simplex declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + +inline void validate_unit_vector_index(const char* var_name, const char* expr, + int val) { + if (val <= 1) { + std::stringstream msg; + if (val == 1) { + msg << "Found dimension size one in unit vector declaration." + << " One-dimensional unit vector is discrete" + << " but the target distribution must be continuous." + << " variable=" << var_name << "; dimension size expression=" << expr; + } else { + msg << "Found dimension size less than one in unit vector declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + } + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + + +using std::istream; +using std::string; +using std::stringstream; +using std::vector; +using std::pow; +using stan::io::dump; +using stan::math::lgamma; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; +using stan::math::pow; + +static int current_statement__ = 0; +static const std::vector locations_array__ = {" (found before start of program)", + " (in 'closures3.stan', line 12, column 4 to line 15, column 5)", + " (in 'closures3.stan', line 19, column 4 to column 11)", + " (in 'closures3.stan', line 22, column 4 to line 25, column 5)", + " (in 'closures3.stan', line 26, column 4 to column 27)", + " (in 'closures3.stan', line 11, column 4 to column 17)", + " (in 'closures3.stan', line 16, column 4 to column 27)", + " (in 'closures3.stan', line 3, column 8 to line 6, column 9)", + " (in 'closures3.stan', line 7, column 8 to column 23)", + " (in 'closures3.stan', line 2, column 35 to line 8, column 5)", + " (in 'closures3.stan', line 5, column 12 to column 28)", + " (in 'closures3.stan', line 4, column 24 to line 6, column 9)", + " (in 'closures3.stan', line 14, column 8 to column 19)", + " (in 'closures3.stan', line 13, column 21 to line 15, column 5)", + " (in 'closures3.stan', line 24, column 8 to column 19)", + " (in 'closures3.stan', line 23, column 21 to line 25, column 5)"}; + +template +stan::promote_args_t +foo(const T0__& g, const T1__& x, std::ostream* pstream__) ; + +struct foo_functor__ { +template +stan::promote_args_t +operator()(const T0__& g, const T1__& x, std::ostream* pstream__) const +{ +return foo(g, x, pstream__); +} +}; + +template +stan::promote_args_t +g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, + std::ostream* pstream__) ; + +template +class g2_L4C13_cfunctor__ { +local_scalar_t__ g; +local_scalar_t__ x; +public: +const size_t vars_count__; +g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; +g2_L4C13_cfunctor__(const local_scalar_t__& g__, const local_scalar_t__& x__) +: g(g__), x(x__), vars_count__(count_vars(g__, x__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& y) const +{ +return g2_L4C13_impl__(g, x, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = g2_L4C13_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(g), value_of(x)); } +auto deep_copy_vars__() const { +return g2_L4C13_cfunctor__(deep_copy_vars(g), + deep_copy_vars(x)); } +void zero_adjoints__() { stan::math::zero_adjoints(g); +stan::math::zero_adjoints(x); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, g, x); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, g, x); } + +}; + +template +stan::promote_args_t +bar_L13C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; + +template +class bar_L13C9_cfunctor__ { +double x; +public: +const size_t vars_count__; +bar_L13C9_cfunctor__(const bar_L13C9_cfunctor__&) = default ; +bar_L13C9_cfunctor__(const double& x__) +: x(x__), vars_count__(count_vars(x__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& y) const +{ +return bar_L13C9_impl__(x, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = bar_L13C9_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(x)); } +auto deep_copy_vars__() const { +return bar_L13C9_cfunctor__(deep_copy_vars(x)); } +void zero_adjoints__() { stan::math::zero_adjoints(x); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, x); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, x); } + +}; + +template +stan::promote_args_t +baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; + +template +class baz_L23C9_cfunctor__ { +local_scalar_t__ p; +public: +const size_t vars_count__; +baz_L23C9_cfunctor__(const baz_L23C9_cfunctor__&) = default ; +baz_L23C9_cfunctor__(const local_scalar_t__& p__) +: p(p__), vars_count__(count_vars(p__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& y) const +{ +return baz_L23C9_impl__(p, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = baz_L23C9_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(p)); } +auto deep_copy_vars__() const { +return baz_L23C9_cfunctor__(deep_copy_vars(p)); } +void zero_adjoints__() { stan::math::zero_adjoints(p); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, p); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, p); } + +}; + +template +stan::promote_args_t +baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; + +template +class baz_L23C9_cfunctor__ { +local_scalar_t__ p; +public: +const size_t vars_count__; +baz_L23C9_cfunctor__(const baz_L23C9_cfunctor__&) = default ; +baz_L23C9_cfunctor__(const local_scalar_t__& p__) +: p(p__), vars_count__(count_vars(p__)) {} +template +stan::promote_args_t +operator()(std::ostream* pstream__, const T0__& y) const +{ +return baz_L23C9_impl__(p, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = baz_L23C9_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(p)); } +auto deep_copy_vars__() const { +return baz_L23C9_cfunctor__(deep_copy_vars(p)); } +void zero_adjoints__() { stan::math::zero_adjoints(p); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, p); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, p); } + +}; + +template +stan::promote_args_t +foo(const T0__& g, const T1__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + + current_statement__ = 7; + auto g2 = g2_L4C13_cfunctor__(g, x); + current_statement__ = 8; + return g2(pstream__, 1.0); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 10; + return (g(pstream__, y) * x); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +bar_L13C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 12; + return (x * y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 14; + return (p * y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 14; + return (p * y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures3_model final : public model_base_crtp { + + private: + double x; + double z; + + public: + ~closures3_model() final { } + + std::string model_name() const final { return "closures3_model"; } + + std::vector model_compile_info() const { + std::vector stanc_info; + stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); + stanc_info.push_back("stancflags = --print-cpp"); + return stanc_info; + } + + + closures3_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "closures3_model_namespace::closures3_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 5; + x = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + x = 2.0; + + current_statement__ = 1; + auto bar = bar_L13C9_cfunctor__(x); + current_statement__ = 6; + z = std::numeric_limits::quiet_NaN(); + + current_statement__ = 6; + z = foo(bar, 1.0, pstream__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + num_params_r__ += 1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template + inline T__ log_prob(std::vector& params_r__, + std::vector& params_i__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + static const char* function__ = "closures3_model_namespace::log_prob"; +(void) function__; // suppress unused var warning + + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + + current_statement__ = 1; + auto bar = bar_L13C9_cfunctor__(x); + local_scalar_t__ p; + p = DUMMY_VAR__; + + current_statement__ = 2; + p = in__.scalar(); + + current_statement__ = 3; + auto baz = baz_L23C9_cfunctor__(p); + local_scalar_t__ w; + w = DUMMY_VAR__; + + current_statement__ = 4; + w = foo(baz, 1.0, pstream__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob() + + template + inline void write_array(RNG& base_rng__, std::vector& params_r__, + std::vector& params_i__, + std::vector& vars__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + static const char* function__ = "closures3_model_namespace::write_array"; +(void) function__; // suppress unused var warning + + (void) function__; // suppress unused var warning + + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + + current_statement__ = 1; + auto bar = bar_L13C9_cfunctor__(x); + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = in__.scalar(); + + double w; + w = std::numeric_limits::quiet_NaN(); + + vars__.emplace_back(p); + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 3; + auto baz = baz_L23C9_cfunctor__(p); + current_statement__ = 4; + w = foo(baz, 1.0, pstream__); + if (emit_transformed_parameters__) { + vars__.emplace_back(w); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array() + + inline void transform_inits(const stan::io::var_context& context__, + std::vector& params_i__, + std::vector& vars__, + std::ostream* pstream__) const + final { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + + current_statement__ = 1; + auto bar = bar_L13C9_cfunctor__(x); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = context__.vals_r("p")[(1 - 1)]; + vars__.emplace_back(p); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("p"); + names__.emplace_back("w"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const + final { + dimss__.clear(); + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "w"); + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "w"); + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng__, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream = nullptr) const { + std::vector params_r_vec(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r_vec[i] = params_r(i); + std::vector vars_vec; + std::vector params_i_vec; + write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, + emit_transformed_parameters__, emit_generated_quantities__, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) + vars(i) = vars_vec[i]; + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + std::vector vec_params_r; + vec_params_r.reserve(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + vec_params_r.push_back(params_r(i)); + std::vector vec_params_i; + return log_prob(vec_params_r, vec_params_i, pstream); + } + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream__ = nullptr) const { + std::vector params_r_vec; + std::vector params_i_vec; + transform_inits(context, params_i_vec, params_r_vec, pstream__); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r(i) = params_r_vec[i]; + } + +}; +} +using stan_model = closures3_model_namespace::closures3_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +#endif + + + + $ ../../../../../install/default/bin/stanc --print-cpp closures4.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures4_model_namespace { + + +inline void validate_positive_index(const char* var_name, const char* expr, + int val) { + if (val < 1) { + std::stringstream msg; + msg << "Found dimension size less than one in simplex declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + +inline void validate_unit_vector_index(const char* var_name, const char* expr, + int val) { + if (val <= 1) { + std::stringstream msg; + if (val == 1) { + msg << "Found dimension size one in unit vector declaration." + << " One-dimensional unit vector is discrete" + << " but the target distribution must be continuous." + << " variable=" << var_name << "; dimension size expression=" << expr; + } else { + msg << "Found dimension size less than one in unit vector declaration" + << "; variable=" << var_name << "; dimension size expression=" << expr + << "; expression value=" << val; + } + std::string msg_str(msg.str()); + throw std::invalid_argument(msg_str.c_str()); + } +} + + +using std::istream; +using std::string; +using std::stringstream; +using std::vector; +using std::pow; +using stan::io::dump; +using stan::math::lgamma; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; +using stan::math::pow; + +static int current_statement__ = 0; +static const std::vector locations_array__ = {" (found before start of program)", + " (in 'closures4.stan', line 15, column 4 to column 19)", + " (in 'closures4.stan', line 18, column 4 to column 44)", + " (in 'closures4.stan', line 11, column 4 to column 19)", + " (in 'closures4.stan', line 12, column 4 to column 15)", + " (in 'closures4.stan', line 3, column 8 to line 6, column 9)", + " (in 'closures4.stan', line 7, column 8 to column 47)", + " (in 'closures4.stan', line 2, column 59 to line 8, column 5)", + " (in 'closures4.stan', line 5, column 12 to column 30)", + " (in 'closures4.stan', line 4, column 42 to line 6, column 9)"}; + +template +std::vector, -1, 1>> +integrate(const std::vector>& k, + const Eigen::Matrix& init, + const std::vector& ts, std::ostream* pstream__) ; + +struct integrate_functor__ { +template +std::vector, -1, 1>> +operator()(const std::vector>& k, + const Eigen::Matrix& init, + const std::vector& ts, std::ostream* pstream__) const +{ +return integrate(k, init, ts, pstream__); +} +}; + +template +Eigen::Matrix, -1, 1> +harmonic_L4C15_impl__(const std::vector>& k, + const T1__& t, const Eigen::Matrix& y, + std::ostream* pstream__) ; + +template +class harmonic_L4C15_cfunctor__ { +std::vector> k; +public: +const size_t vars_count__; +harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; +harmonic_L4C15_cfunctor__(const std::vector>& k__) +: k(k__), vars_count__(count_vars(k__)) {} +template +Eigen::Matrix, -1, 1> +operator()(std::ostream* pstream__, const T0__& t, + const Eigen::Matrix& y) const +{ +return harmonic_L4C15_impl__(k, t, y, pstream__); +} + +using captured_scalar_t__ = local_scalar_t__; +using ValueOf__ = harmonic_L4C15_cfunctor__; +auto value_of__() const { return ValueOf__(value_of(k)); } +auto deep_copy_vars__() const { +return harmonic_L4C15_cfunctor__(deep_copy_vars(k)); } +void zero_adjoints__() { stan::math::zero_adjoints(k); } +double* accumulate_adjoints__(double *dest) const { +return stan::math::accumulate_adjoints(dest, k); } +stan::math::vari** save_varis__(stan::math::vari **dest) const { +return stan::math::save_varis(dest, k); } + +}; + +template +std::vector, -1, 1>> +integrate(const std::vector>& k, + const Eigen::Matrix& init, + const std::vector& ts, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + + current_statement__ = 5; + auto harmonic = harmonic_L4C15_cfunctor__(k); + current_statement__ = 6; + return ode_rk45(harmonic, init, 0, ts, pstream__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, -1, 1> +harmonic_L4C15_impl__(const std::vector>& k, + const T1__& t, const Eigen::Matrix& y, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + current_statement__ = 8; + return elt_multiply(minus(k[(1 - 1)]), y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures4_model final : public model_base_crtp { + + private: + std::vector> k; + std::vector ts; + + public: + ~closures4_model() final { } + + std::string model_name() const final { return "closures4_model"; } + + std::vector model_compile_info() const { + std::vector stanc_info; + stanc_info.push_back("stanc_version = %%NAME%%3 %%VERSION%%"); + stanc_info.push_back("stancflags = --print-cpp"); + return stanc_info; + } + + + closures4_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "closures4_model_namespace::closures4_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 3; + context__.validate_dims("data initialization","k","double", + context__.to_vec(1, 2)); + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, std::numeric_limits::quiet_NaN()); + + { + std::vector k_flat__; + current_statement__ = 3; + assign(k_flat__, nil_index_list(), context__.vals_r("k"), + "assigning variable k_flat__"); + current_statement__ = 3; + pos__ = 1; + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 3; + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + current_statement__ = 3; + assign(k, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + k_flat__[(pos__ - 1)], "assigning variable k"); + current_statement__ = 3; + pos__ = (pos__ + 1);}} + } + current_statement__ = 4; + context__.validate_dims("data initialization","ts","double", + context__.to_vec(5)); + ts = std::vector(5, std::numeric_limits::quiet_NaN()); + + current_statement__ = 4; + assign(ts, nil_index_list(), context__.vals_r("ts"), + "assigning variable ts"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + num_params_r__ += 2; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template + inline T__ log_prob(std::vector& params_r__, + std::vector& params_i__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + static const char* function__ = "closures4_model_namespace::log_prob"; +(void) function__; // suppress unused var warning + + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, DUMMY_VAR__); + + current_statement__ = 1; + init = in__.vector(2); + std::vector> y; + y = std::vector>(5, Eigen::Matrix(2)); + stan::math::fill(y, DUMMY_VAR__); + + current_statement__ = 2; + assign(y, nil_index_list(), integrate(k, init, ts, pstream__), + "assigning variable y"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob() + + template + inline void write_array(RNG& base_rng__, std::vector& params_r__, + std::vector& params_i__, + std::vector& vars__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + static const char* function__ = "closures4_model_namespace::write_array"; +(void) function__; // suppress unused var warning + + (void) function__; // suppress unused var warning + + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + + + try { + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + init = in__.vector(2); + std::vector> y; + y = std::vector>(5, Eigen::Matrix(2)); + stan::math::fill(y, std::numeric_limits::quiet_NaN()); + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(init[(sym1__ - 1)]);} + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 2; + assign(y, nil_index_list(), integrate(k, init, ts, pstream__), + "assigning variable y"); + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back(y[(sym2__ - 1)][(sym1__ - 1)]);}} + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array() + + inline void transform_inits(const stan::io::var_context& context__, + std::vector& params_i__, + std::vector& vars__, + std::ostream* pstream__) const + final { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, std::numeric_limits::quiet_NaN()); + + { + std::vector init_flat__; + current_statement__ = 1; + assign(init_flat__, nil_index_list(), context__.vals_r("init"), + "assigning variable init_flat__"); + current_statement__ = 1; + pos__ = 1; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 1; + assign(init, cons_list(index_uni(sym1__), nil_index_list()), + init_flat__[(pos__ - 1)], "assigning variable init"); + current_statement__ = 1; + pos__ = (pos__ + 1);} + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(init[(sym1__ - 1)]);} + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("init"); + names__.emplace_back("y"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const + final { + dimss__.clear(); + dimss__.emplace_back(std::vector{static_cast(2)}); + + dimss__.emplace_back(std::vector{static_cast(5), + static_cast(2)}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" << 2 << "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" << 5 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + stringstream s__; + s__ << "[{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" << 2 << "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" << 5 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng__, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true, + std::ostream* pstream = nullptr) const { + std::vector params_r_vec(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r_vec[i] = params_r(i); + std::vector vars_vec; + std::vector params_i_vec; + write_array(base_rng__, params_r_vec, params_i_vec, vars_vec, + emit_transformed_parameters__, emit_generated_quantities__, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) + vars(i) = vars_vec[i]; + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + std::vector vec_params_r; + vec_params_r.reserve(params_r.size()); + for (int i = 0; i < params_r.size(); ++i) + vec_params_r.push_back(params_r(i)); + std::vector vec_params_i; + return log_prob(vec_params_r, vec_params_i, pstream); + } + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream__ = nullptr) const { + std::vector params_r_vec; + std::vector params_i_vec; + transform_inits(context, params_i_vec, params_r_vec, pstream__); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) + params_r(i) = params_r_vec[i]; + } + +}; +} +using stan_model = closures4_model_namespace::closures4_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +#endif + + + $ ../../../../../install/default/bin/stanc --print-cpp eight_schools_ncp.stan // Code generated by %%NAME%% %%VERSION%% From c2e1e51310a108e35c18b9dd8de88509ff4b6891 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sat, 28 Nov 2020 18:46:01 +0200 Subject: [PATCH 06/24] fix closures that capture closures --- src/frontend/Ast_to_Mir.ml | 40 +- src/stan_math_backend/Expression_gen.ml | 2 +- src/stan_math_backend/Stan_math_code_gen.ml | 146 +-- test/integration/good/code-gen/cpp.expected | 931 +++++++++----------- 4 files changed, 545 insertions(+), 574 deletions(-) diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index e86fa85b0b..dcb02a7561 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -35,7 +35,7 @@ let%expect_test "format_number1" = format_number ".123_456" |> print_endline ; [%expect ".123456"] -let closures = ref [] +let closures = ref String.Map.empty let rec op_to_funapp op args = let argtypes = @@ -667,21 +667,25 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = ; captures= Some (implname, captures) ; arguments ; body } -> - closures := - Program. - { fdrt= - (match returntype with Void -> None | ReturnType ut -> Some ut) - ; fdname= implname - ; fdcaptures= - Some (List.map ~f:(fun (ad, ty, id) -> (ad, id, ty)) captures) - ; fdargs= List.map ~f:trans_arg arguments - ; fdbody= - trans_stmt ud_dists - {dconstrain= None; dadlevel= AutoDiffable} - body - |> unwrap_block_or_skip - ; fdloc= ts.smeta.loc } - :: !closures ; + if Map.find !closures implname = None then + closures := + String.Map.add_exn !closures ~key:implname + ~data: + { Program.fdrt= + ( match returntype with + | Void -> None + | ReturnType ut -> Some ut ) + ; fdname= implname + ; fdcaptures= + Some + (List.map ~f:(fun (ad, ty, id) -> (ad, id, ty)) captures) + ; fdargs= List.map ~f:trans_arg arguments + ; fdbody= + trans_stmt ud_dists + {dconstrain= None; dadlevel= AutoDiffable} + body + |> unwrap_block_or_skip + ; fdloc= ts.smeta.loc } ; let arguments = List.map ~f:(fun (ad, ut, _) -> (ad, ut)) arguments in let type_ = UnsizedType.UFun (arguments, returntype, true) in let captures = @@ -903,7 +907,7 @@ let migrate_checks_to_end_of_block stmts = not_checks @ checks let trans_prog filename (p : Ast.typed_program) : Program.Typed.t = - closures := [] ; + closures := String.Map.empty ; let {Ast.functionblock; datablock; transformeddatablock; modelblock; _} = p in @@ -1010,7 +1014,7 @@ let trans_prog filename (p : Ast.typed_program) : Program.Typed.t = else prog_name in let functions = map (trans_fun_def ud_dists) functionblock in - { functions_block= functions @ !closures + { functions_block= functions @ List.map ~f:snd (Map.to_alist !closures) ; input_vars ; prepare_data ; log_prob diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index e783ee6b57..e337fcb437 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -385,7 +385,7 @@ and pp_compiler_internal_fn ut f ppf es = | Some FnMakeClosure -> ( match es with | {Expr.Fixed.pattern= Lit (Str, implname); _} :: args -> - gen_fun_app ppf (implname ^ "_cfunctor__") args + gen_fun_app ppf (implname ^ "_make__") args | _ -> raise_s [%message "Missing closure constructor " (es : Expr.Typed.t list)] ) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 5426d41a56..1de6a11bea 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -61,23 +61,30 @@ let arg_needs_template = function @param args A pack of `Program.fun_arg_decl` containing functions to detect templates. @return A list of arguments with template parameter names added. *) -let maybe_templated_arg_types (args : Program.fun_arg_decl) = +let maybe_templated_arg_types prefix (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i a -> match arg_needs_template a with - | true -> Some (sprintf "T%d__" i) + | true -> Some (sprintf "%s%d__" prefix i) | false -> None ) +let maybe_templated_arg_scalars prefix (args : Program.fun_arg_decl) = + List.mapi args ~f:(fun i (ad, id, ty) -> + if not (arg_needs_template (ad, id, ty)) then None + else if UnsizedType.is_fun_type ty then + Some (sprintf "typename %s%d__::captured_scalar_t__" prefix i) + else Some (sprintf "%s%d__" prefix i) ) + let%expect_test "arg types templated correctly" = [(AutoDiffable, "xreal", UReal); (DataOnly, "yint", UInt)] - |> maybe_templated_arg_types |> List.filter_opt |> String.concat ~sep:"," - |> print_endline ; + |> maybe_templated_arg_types "T" + |> List.filter_opt |> String.concat ~sep:"," |> print_endline ; [%expect {| T0__ |}] (** Print the code for promoting stan real types @param ppf A pretty printer @param args A pack of arguments to detect whether they need to use the promotion rules. *) -let pp_promoted_scalar ppf (s, args) = +let pp_promoted_scalar ppf args = match args with | [] -> pf ppf "double" | _ -> @@ -91,15 +98,12 @@ let pp_promoted_scalar ppf (s, args) = pf ppf "stan::promote_args_t<%a%a>" (list ~sep:comma string) hd go tl in - promote_args_chunked ppf - List.( - chunks_of ~length:5 - (filter_opt (s :: maybe_templated_arg_types args))) + promote_args_chunked ppf List.(chunks_of ~length:5 (filter_opt args)) (** Pretty-prints a function's return-type, taking into account templated argument promotion.*) -let pp_returntype ppf arg_types (rt, s) = - let scalar = strf "%a" pp_promoted_scalar (s, arg_types) in +let pp_returntype ppf arg_types rt = + let scalar = strf "%a" pp_promoted_scalar arg_types in match rt with | Some ut when UnsizedType.contains_int ut -> pf ppf "%a@," pp_unsizedtype_custom_scalar ("int", ut) @@ -143,8 +147,8 @@ let typename = ( ^ ) "typename " (** Construct an object with it's needed templates for function signatures. @param fdargs A sexp list of strings representing C++ types. *) -let get_templates_and_args fdargs = - let argtypetemplates = maybe_templated_arg_types fdargs in +let get_templates_and_args prefix fdargs = + let argtypetemplates = maybe_templated_arg_types prefix fdargs in ( List.filter_opt argtypetemplates , List.map ~f:(fun a -> strf "%a" pp_arg a) @@ -161,8 +165,7 @@ let pp_template_decorator ppf = function let mk_extra_args templates args = List.map ~f:(fun (t, v) -> t ^ "& " ^ v) (List.zip_exn templates args) -let pp_signature is_closure ppf (fdrt, fdname, fdargs) = - let scalar = if is_closure then Some "local_scalar_t__" else None in +let pp_signature captures ppf (fdrt, fdname, fdargs) = let is_lp = is_user_lp fdname in let is_dist = is_user_dist fdname in let is_rng = String.is_suffix fdname ~suffix:"_rng" in @@ -171,16 +174,21 @@ let pp_signature is_closure ppf (fdrt, fdname, fdargs) = else if is_rng then (["base_rng__"], ["RNG"]) else ([], []) in - let argtypetemplates, args = get_templates_and_args fdargs in + let argtypetemplates, args = get_templates_and_args "T" fdargs in let templates = (if is_dist || is_lp then ["bool propto__"] else []) @ List.(map ~f:typename (argtypetemplates @ extra_templates)) in pp_template_decorator ppf templates ; - pp_returntype ppf fdargs (fdrt, scalar) ; + let rt_templates = + match captures with + | Some c -> c @ maybe_templated_arg_scalars "T" fdargs + | None -> maybe_templated_arg_scalars "T" fdargs + in + pp_returntype ppf rt_templates fdrt ; let arg_strs = args @ mk_extra_args extra_templates extra in let arg_strs = - if is_closure then "std::ostream* pstream__" :: arg_strs + if captures <> None then "std::ostream* pstream__" :: arg_strs else arg_strs @ ["std::ostream* pstream__"] in pf ppf "%s(@[%a@]) " fdname (list ~sep:comma string) arg_strs @@ -191,7 +199,7 @@ let pp_rs_functor ppf (fdrt, fdname, fdargs) = (* Produces the reduce_sum functors that has the pstream argument as the third and not last argument *) let is_dist = is_user_dist fdname in - let argtypetemplates, args = get_templates_and_args fdargs in + let argtypetemplates, args = get_templates_and_args "T" fdargs in let templates = List.map ~f:typename argtypetemplates in let pp_template_propto ppf maybe = if maybe then pf ppf "template @ " @@ -200,7 +208,7 @@ let pp_rs_functor ppf (fdrt, fdname, fdargs) = let first_three, rest = List.split_n args 3 in let arg_strs = first_three @ ["std::ostream* pstream__"] @ rest in pp_template_decorator ppf templates ; - pp_returntype ppf fdargs (fdrt, None) ; + pp_returntype ppf (maybe_templated_arg_scalars "T" fdargs) fdrt ; pf ppf "%s(@[%a@])" name (list ~sep:comma string) arg_strs in pf ppf "@,@,%astruct %s%s {@,%a const @,{@,return %a;@,}@,};@," @@ -216,29 +224,37 @@ let pp_rs_functor ppf (fdrt, fdname, fdargs) = let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = let clsname = fdname ^ "_cfunctor__" in - let pp_member ppf (adlevel, name, type_) = - pf ppf "%a %s;" pp_unsizedtype_local (adlevel, type_) name + let pp_member ppf (i, (adlevel, name, type_)) = + let scalar = + if arg_needs_template (adlevel, name, type_) then sprintf "F%d__" i + else "double" + in + pf ppf "%a %s;" pp_unsizedtype_custom_scalar (scalar, type_) name + in + let templates, ctor_args = get_templates_and_args "F" fdcaptures in + let pp_template ppf b = + if not (List.is_empty templates) then ( + if b then pf ppf "template" ; + pf ppf "<@[%a@]>" (list ~sep:comma string) + (if b then List.map ~f:typename templates else templates) ; + if b then pf ppf "@," ) in let pp_ctor ppf name = - let scalar = function - | UnsizedType.DataOnly -> None - | AutoDiffable -> Some "local_scalar_t__" - in - let pp ppf = function - | (ad, _, _) as arg -> pf ppf "%a__" pp_arg (scalar ad, arg) - in let pp_init ppf (_, id, _) = pf ppf "%s(%s__)" id id in let pp_count ppf () = - if not (List.is_empty fdargs) then comma ppf () ; + if not (List.is_empty fdcaptures) then comma ppf () ; pf ppf "vars_count__(count_vars(@[%a@]))" (list ~sep:comma string) (List.map ~f:(fun (_, id, _) -> id ^ "__") fdcaptures) in - pf ppf "%s(const %s&) = default ;@ " name name ; - pf ppf "%s(@[%a@])@ : @[%a%a {}@]" name (list ~sep:comma pp) - fdcaptures (list ~sep:comma pp_init) fdcaptures pp_count () + pf ppf "%s(const %s%a&) = default ;@ " name name pp_template false ; + pf ppf "%s(%s%a&&) = default ;@ " name name pp_template false ; + pf ppf "%s(@[%a@])@ : @[%a%a {}@]" name + (list ~sep:comma (fun ppf s -> pf ppf "%s__" s)) + ctor_args (list ~sep:comma pp_init) fdcaptures pp_count () in let pp_op ppf () = - pf ppf "%a const @,{@,return %a;@,}@," (pp_signature true) + pf ppf "%a const @,{@,return %a;@,}" + (pp_signature (Some (maybe_templated_arg_scalars "F" fdcaptures))) (fdrt, "operator()", fdargs) pp_call_str ( fdname ^ "_impl__" @@ -246,56 +262,74 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = @ ["pstream__"] ) in let pp_api ppf () = - let using_valueof ppf () = - pf ppf "using ValueOf__ = %s;" clsname + let pp_using ppf () = + if List.is_empty templates then ( + pf ppf "using captured_scalar_t__ = double;@," ; + pf ppf "using ValueOf__ = %s;" clsname ) + else ( + pf ppf "using captured_scalar_t__ = stan::return_type_t%a;@," + pp_template false ; + let templates = + List.filter_mapi fdcaptures ~f:(fun i (ad, id, ty) -> + if not (arg_needs_template (ad, id, ty)) then None + else if UnsizedType.is_fun_type ty then + Some (sprintf "typename F%d__::ValueOf__" i) + else Some "double" ) + in + pf ppf "using ValueOf__ = %s<@[%a@]>;" clsname (list ~sep:comma string) + templates ) in let pp f = list ~sep:comma (fun ppf (_, id, _) -> pf ppf "%s(%s)" f id) in let valueof ppf () = - pf ppf "auto value_of__() const {@ return ValueOf__(@[%a@]);@ }" + pf ppf "auto value_of__() const {@ return ValueOf__(%a);@ }" (pp "value_of") fdcaptures in let deepcopy ppf () = - pf ppf - "auto deep_copy_vars__() const {@ return \ - %s(@[%a@]);@ }" - clsname (pp "deep_copy_vars") fdcaptures + pf ppf "auto deep_copy_vars__() const {@ return %s%a(%a);@ }" clsname + pp_template false (pp "deep_copy_vars") fdcaptures in let zeros ppf () = - pf ppf "void zero_adjoints__() {@ %a@ }" + pf ppf "void zero_adjoints__() {@ @[%a@]@ }" (list ~sep:cut (fun ppf (_, id, _) -> pf ppf "stan::math::zero_adjoints(%s);" id )) fdcaptures in let pp = list ~sep:comma (fun ppf (_, id, _) -> string ppf id) in + let comma ppf () = if not (List.is_empty fdcaptures) then comma ppf () in let accumulate ppf () = pf ppf "double* accumulate_adjoints__(double *dest) const {@ return \ - stan::math::accumulate_adjoints(@[dest%a%a@]);@ }" + stan::math::accumulate_adjoints(dest%a%a);@ }" comma () pp fdcaptures in let save ppf () = pf ppf "stan::math::vari** save_varis__(stan::math::vari **dest) const {@ \ - return stan::math::save_varis(@[dest%a%a@]);@ }" + return stan::math::save_varis(dest%a%a);@ }" comma () pp fdcaptures in pf ppf - "@[%s@]@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ \ - @[%a@]@ @[%a@]@ " - "using captured_scalar_t__ = local_scalar_t__;" using_valueof () valueof - () deepcopy () zeros () accumulate () save () ; + "@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ \ + @[%a@]@ " + pp_using () valueof () deepcopy () zeros () accumulate () save () ; () in pf ppf - "@,@,template@,class %s {@,%a@,public:@,const \ - size_t vars_count__;@ %a@ %a@ %a@ };@," - clsname (list pp_member) fdcaptures pp_ctor clsname pp_op () pp_api () + "@,@,%a@[class %s {@,@[%a@]@,public:@,const size_t vars_count__;@ \ + %a@ %a@ %a@ @]};@," + pp_template true clsname (list ~sep:cut pp_member) + (List.mapi ~f:(fun i a -> (i, a)) fdcaptures) + pp_ctor clsname pp_op () pp_api () ; + pf ppf "%aauto %s_make__(@[%a@]) {@ return %s%a(@[%a@]);@ }@," pp_template + true fdname (list ~sep:comma string) ctor_args clsname pp_template false + (list ~sep:comma string) + (List.map ~f:(fun (_, id, _) -> id) fdcaptures) let pp_forward_decl funs_used_in_reduce_sum ppf Program.({fdrt; fdname; fdcaptures; fdargs; fdbody; _}) = match fdcaptures with | None -> - pf ppf "%a;" (pp_signature false) (fdrt, fdname, fdargs) ; + pf ppf "%a;" (pp_signature None) (fdrt, fdname, fdargs) ; if fdbody <> None then ( if Set.mem funs_used_in_reduce_sum fdname then pp_rs_functor ppf (fdrt, fdname, fdargs) ; @@ -305,13 +339,13 @@ let pp_forward_decl funs_used_in_reduce_sum ppf || String.is_suffix fdname ~suffix:"_rng" ) then pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname - functor_suffix (pp_signature false) + functor_suffix (pp_signature None) (fdrt, "operator()", fdargs) pp_call_str ( fdname , List.map ~f:(fun (_, name, _) -> name) fdargs @ ["pstream__"] ) ) | Some captures -> - pf ppf "%a ;" (pp_signature false) + pf ppf "%a ;" (pp_signature None) (fdrt, fdname ^ "_impl__", captures @ fdargs) ; pp_closure ppf (fdrt, fdname, captures, fdargs) @@ -326,7 +360,7 @@ let get_impl = function let pp_function_body ppf (fdrt, fdname, fdargs, fdbody) = let pp_body ppf (Stmt.Fixed.({pattern; _}) as fdbody) = pf ppf "@[using local_scalar_t__ = %a;@]@," pp_promoted_scalar - (None, fdargs) ; + (maybe_templated_arg_scalars "T" fdargs) ; if not (is_user_lp fdname || is_user_dist fdname) then ( pf ppf "const static bool propto__ = true;@;" ; pf ppf "(void) propto__;@;" ) ; @@ -343,7 +377,7 @@ let pp_function_body ppf (fdrt, fdname, fdargs, fdbody) = pp_located_error ppf (pp_statement, blocked_fdbody) ; pf ppf "@ " in - pp_signature false ppf (fdrt, fdname, fdargs) ; + pp_signature None ppf (fdrt, fdname, fdargs) ; pp_block ppf (pp_body, fdbody) (* Creates functions outside the model namespaces which only call the ones diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index ab12c6d076..805d6c7ba0 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -959,55 +959,61 @@ bar_L23C9_impl__(const T0__& p, const std::vector& pa, const std::vector& y, const T6__& z, const Eigen::Matrix& r, std::ostream* pstream__) ; -template +template class bar_L23C9_cfunctor__ { -local_scalar_t__ p; -std::vector pa; -Eigen::Matrix pv; -Eigen::Matrix v; -double x; -std::vector y; -public: -const size_t vars_count__; -bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; -bar_L23C9_cfunctor__(const local_scalar_t__& p__, - const std::vector& pa__, - const Eigen::Matrix& pv__, - const Eigen::Matrix& v__, - const double& x__, const std::vector& y__) -: p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), - vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} -template -stan::promote_args_t pa; + Eigen::Matrix pv; + Eigen::Matrix v; + double x; + std::vector y; + public: + const size_t vars_count__; + bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; + bar_L23C9_cfunctor__(bar_L23C9_cfunctor__&&) = default ; + bar_L23C9_cfunctor__(const F0__& p__, const std::vector& pa__, + const Eigen::Matrix& pv__, + const Eigen::Matrix& v__, + const double& x__, const std::vector& y__) + : p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), + vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} + template + stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& z, - const Eigen::Matrix& r) const -{ -return bar_L23C9_impl__(p, pa, pv, v, x, y, z, r, pstream__); -} - -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = bar_L23C9_cfunctor__; -auto value_of__() const { -return ValueOf__(value_of(p), value_of(pa), value_of(pv), value_of(v), - value_of(x), value_of(y)); } -auto deep_copy_vars__() const { -return bar_L23C9_cfunctor__(deep_copy_vars(p), - deep_copy_vars(pa), - deep_copy_vars(pv), - deep_copy_vars(v), - deep_copy_vars(x), - deep_copy_vars(y)); } -void zero_adjoints__() { stan::math::zero_adjoints(p); -stan::math::zero_adjoints(pa);stan::math::zero_adjoints(pv); -stan::math::zero_adjoints(v);stan::math::zero_adjoints(x); -stan::math::zero_adjoints(y); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, p, pa, pv, v, x, y); } - -}; + operator()(std::ostream* pstream__, const T0__& z, + const Eigen::Matrix& r) const + { + return bar_L23C9_impl__(p, pa, pv, v, x, y, z, r, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = bar_L23C9_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(p), value_of(pa), + value_of(pv), value_of(v), value_of(x), value_of(y)); } + auto deep_copy_vars__() const { + return bar_L23C9_cfunctor__(deep_copy_vars(p), + deep_copy_vars(pa), deep_copy_vars(pv), deep_copy_vars(v), + deep_copy_vars(x), deep_copy_vars(y)); } + void zero_adjoints__() { + stan::math::zero_adjoints(p); + stan::math::zero_adjoints(pa); + stan::math::zero_adjoints(pv); + stan::math::zero_adjoints(v); + stan::math::zero_adjoints(x); + stan::math::zero_adjoints(y); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, p, pa, pv, v, x, y); } + + }; +template +auto bar_L23C9_make__(const F0__& p, const std::vector& pa, + const Eigen::Matrix& pv, + const Eigen::Matrix& v, const double& x, + const std::vector& y) { +return bar_L23C9_cfunctor__(p, pa, pv, v, x, y); +} template stan::promote_args_t& v, const double& x, const std::vector& y, const T3__& z, const Eigen::Matrix& r, std::ostream* pstream__) ; -template class foo_L9C9_cfunctor__ { -Eigen::Matrix v; -double x; -std::vector y; -public: -const size_t vars_count__; -foo_L9C9_cfunctor__(const foo_L9C9_cfunctor__&) = default ; -foo_L9C9_cfunctor__(const Eigen::Matrix& v__, - const double& x__, const std::vector& y__) -: v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} -template -stan::promote_args_t v; + double x; + std::vector y; + public: + const size_t vars_count__; + foo_L9C9_cfunctor__(const foo_L9C9_cfunctor__&) = default ; + foo_L9C9_cfunctor__(foo_L9C9_cfunctor__&&) = default ; + foo_L9C9_cfunctor__(const Eigen::Matrix& v__, + const double& x__, const std::vector& y__) + : v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} + template + stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& z, - const Eigen::Matrix& r) const -{ -return foo_L9C9_impl__(v, x, y, z, r, pstream__); -} - -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = foo_L9C9_cfunctor__; -auto value_of__() const { -return ValueOf__(value_of(v), value_of(x), value_of(y)); } -auto deep_copy_vars__() const { -return foo_L9C9_cfunctor__(deep_copy_vars(v), - deep_copy_vars(x), - deep_copy_vars(y)); } -void zero_adjoints__() { stan::math::zero_adjoints(v); -stan::math::zero_adjoints(x);stan::math::zero_adjoints(y); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, v, x, y); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, v, x, y); } - -}; + operator()(std::ostream* pstream__, const T0__& z, + const Eigen::Matrix& r) const + { + return foo_L9C9_impl__(v, x, y, z, r, pstream__); + } + + using captured_scalar_t__ = double;using ValueOf__ = foo_L9C9_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(v), value_of(x), + value_of(y)); } + auto deep_copy_vars__() const { + return foo_L9C9_cfunctor__(deep_copy_vars(v), deep_copy_vars(x), + deep_copy_vars(y)); } + void zero_adjoints__() { + stan::math::zero_adjoints(v); + stan::math::zero_adjoints(x); + stan::math::zero_adjoints(y); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, v, x, y); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, v, x, y); } + + }; +auto foo_L9C9_make__(const Eigen::Matrix& v, const double& x, + const std::vector& y) { +return foo_L9C9_cfunctor__(v, x, y); +} template @@ -1231,7 +1241,7 @@ class closures1_model final : public model_base_crtp { } current_statement__ = 1; - auto foo = foo_L9C9_cfunctor__(v, x, y); + auto foo = foo_L9C9_make__(v, x, y); current_statement__ = 16; validate_non_negative_index("pa", "N", N); current_statement__ = 17; @@ -1271,7 +1281,7 @@ class closures1_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo = foo_L9C9_cfunctor__(v, x, y); + auto foo = foo_L9C9_make__(v, x, y); local_scalar_t__ p; p = DUMMY_VAR__; @@ -1294,7 +1304,7 @@ class closures1_model final : public model_base_crtp { { current_statement__ = 5; - auto bar = bar_L23C9_cfunctor__(p, pa, pv, v, x, y); + auto bar = bar_L23C9_make__(p, pa, pv, v, x, y); current_statement__ = 6; lp_accum__.add( foo(pstream__, 0.0, stan::math::to_row_vector( @@ -1346,7 +1356,7 @@ class closures1_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo = foo_L9C9_cfunctor__(v, x, y); + auto foo = foo_L9C9_make__(v, x, y); double p; p = std::numeric_limits::quiet_NaN(); @@ -1397,7 +1407,7 @@ class closures1_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo = foo_L9C9_cfunctor__(v, x, y); + auto foo = foo_L9C9_make__(v, x, y); int pos__; pos__ = std::numeric_limits::min(); @@ -1658,220 +1668,199 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'closures2.stan', line 29, column 4 to column 23)", " (in 'closures2.stan', line 8, column 8 to column 22)", " (in 'closures2.stan', line 7, column 21 to line 9, column 5)", - " (in 'closures2.stan', line 4, column 8 to column 17)", - " (in 'closures2.stan', line 3, column 21 to line 5, column 5)", " (in 'closures2.stan', line 17, column 8 to column 22)", " (in 'closures2.stan', line 16, column 21 to line 18, column 5)", + " (in 'closures2.stan', line 4, column 8 to column 17)", + " (in 'closures2.stan', line 3, column 21 to line 5, column 5)", + " (in 'closures2.stan', line 23, column 12 to column 21)", + " (in 'closures2.stan', line 22, column 25 to line 24, column 9)", " (in 'closures2.stan', line 21, column 8 to line 24, column 9)", " (in 'closures2.stan', line 25, column 8 to column 22)", " (in 'closures2.stan', line 20, column 21 to line 26, column 5)"}; template -stan::promote_args_t bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; -template +template class bar_L7C9_cfunctor__ { -local_scalar_t__ foo; -public: -const size_t vars_count__; -bar_L7C9_cfunctor__(const bar_L7C9_cfunctor__&) = default ; -bar_L7C9_cfunctor__(const local_scalar_t__& foo__) -: foo(foo__), vars_count__(count_vars(foo__)) {} -template -stan::promote_args_t&) = default ; + bar_L7C9_cfunctor__(bar_L7C9_cfunctor__&&) = default ; + bar_L7C9_cfunctor__(const F0__& foo__) + : foo(foo__), vars_count__(count_vars(foo__)) {} + template + stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& y) const -{ -return bar_L7C9_impl__(foo, y, pstream__); -} - -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = bar_L7C9_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(foo)); } -auto deep_copy_vars__() const { -return bar_L7C9_cfunctor__(deep_copy_vars(foo)); } -void zero_adjoints__() { stan::math::zero_adjoints(foo); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, foo); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, foo); } - -}; - -template -stan::promote_args_t -foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; - -template -class foo_L3C9_cfunctor__ { - -public: -const size_t vars_count__; -foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; -foo_L3C9_cfunctor__() -: , vars_count__(count_vars()) {} -template -stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& x) const -{ -return foo_L3C9_impl__(x, pstream__); + operator()(std::ostream* pstream__, const T0__& y) const + { + return bar_L7C9_impl__(foo, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = bar_L7C9_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(foo)); } + auto deep_copy_vars__() const { + return bar_L7C9_cfunctor__(deep_copy_vars(foo)); } + void zero_adjoints__() { stan::math::zero_adjoints(foo); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, foo); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, foo); } + + }; +template +auto bar_L7C9_make__(const F0__& foo) { +return bar_L7C9_cfunctor__(foo); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = foo_L3C9_cfunctor__; -auto value_of__() const { return ValueOf__(); } -auto deep_copy_vars__() const { -return foo_L3C9_cfunctor__(); } -void zero_adjoints__() { } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, ); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, ); } - -}; - template -stan::promote_args_t baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; -template +template class baz_L16C9_cfunctor__ { -local_scalar_t__ foo; -public: -const size_t vars_count__; -baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; -baz_L16C9_cfunctor__(const local_scalar_t__& foo__) -: foo(foo__), vars_count__(count_vars(foo__)) {} -template -stan::promote_args_t&) = default ; + baz_L16C9_cfunctor__(baz_L16C9_cfunctor__&&) = default ; + baz_L16C9_cfunctor__(const F0__& foo__) + : foo(foo__), vars_count__(count_vars(foo__)) {} + template + stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& y) const -{ -return baz_L16C9_impl__(foo, y, pstream__); + operator()(std::ostream* pstream__, const T0__& y) const + { + return baz_L16C9_impl__(foo, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = baz_L16C9_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(foo)); } + auto deep_copy_vars__() const { + return baz_L16C9_cfunctor__(deep_copy_vars(foo)); } + void zero_adjoints__() { stan::math::zero_adjoints(foo); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, foo); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, foo); } + + }; +template +auto baz_L16C9_make__(const F0__& foo) { +return baz_L16C9_cfunctor__(foo); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = baz_L16C9_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(foo)); } -auto deep_copy_vars__() const { -return baz_L16C9_cfunctor__(deep_copy_vars(foo)); } -void zero_adjoints__() { stan::math::zero_adjoints(foo); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, foo); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, foo); } - -}; - template stan::promote_args_t -goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; - -template -class goo_L20C9_cfunctor__ { +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; -public: -const size_t vars_count__; -goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; -goo_L20C9_cfunctor__() -: , vars_count__(count_vars()) {} -template -stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& s) const -{ -return goo_L20C9_impl__(s, pstream__); +class foo_L3C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; + foo_L3C9_cfunctor__(foo_L3C9_cfunctor__&&) = default ; + foo_L3C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const + { + return foo_L3C9_impl__(x, pstream__); + } + + using captured_scalar_t__ = double;using ValueOf__ = foo_L3C9_cfunctor__; + auto value_of__() const { return ValueOf__(); } + auto deep_copy_vars__() const { return foo_L3C9_cfunctor__(); } + void zero_adjoints__() { } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); } + + }; +auto foo_L3C9_make__() { +return foo_L3C9_cfunctor__(); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = goo_L20C9_cfunctor__; -auto value_of__() const { return ValueOf__(); } -auto deep_copy_vars__() const { -return goo_L20C9_cfunctor__(); } -void zero_adjoints__() { } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, ); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, ); } - -}; - -template -stan::promote_args_t -baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; - -template -class baz_L16C9_cfunctor__ { -local_scalar_t__ foo; -public: -const size_t vars_count__; -baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; -baz_L16C9_cfunctor__(const local_scalar_t__& foo__) -: foo(foo__), vars_count__(count_vars(foo__)) {} template -stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& y) const -{ -return baz_L16C9_impl__(foo, y, pstream__); +stan::promote_args_t +gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) ; + +class gar_L22C13_cfunctor__ { + + public: + const size_t vars_count__; + gar_L22C13_cfunctor__(const gar_L22C13_cfunctor__&) = default ; + gar_L22C13_cfunctor__(gar_L22C13_cfunctor__&&) = default ; + gar_L22C13_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& b) const + { + return gar_L22C13_impl__(b, pstream__); + } + + using captured_scalar_t__ = double;using ValueOf__ = gar_L22C13_cfunctor__; + auto value_of__() const { return ValueOf__(); } + auto deep_copy_vars__() const { return gar_L22C13_cfunctor__(); } + void zero_adjoints__() { } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); } + + }; +auto gar_L22C13_make__() { +return gar_L22C13_cfunctor__(); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = baz_L16C9_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(foo)); } -auto deep_copy_vars__() const { -return baz_L16C9_cfunctor__(deep_copy_vars(foo)); } -void zero_adjoints__() { stan::math::zero_adjoints(foo); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, foo); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, foo); } - -}; - template stan::promote_args_t goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; -template class goo_L20C9_cfunctor__ { - -public: -const size_t vars_count__; -goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; -goo_L20C9_cfunctor__() -: , vars_count__(count_vars()) {} -template -stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& s) const -{ -return goo_L20C9_impl__(s, pstream__); + + public: + const size_t vars_count__; + goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; + goo_L20C9_cfunctor__(goo_L20C9_cfunctor__&&) = default ; + goo_L20C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& s) const + { + return goo_L20C9_impl__(s, pstream__); + } + + using captured_scalar_t__ = double;using ValueOf__ = goo_L20C9_cfunctor__; + auto value_of__() const { return ValueOf__(); } + auto deep_copy_vars__() const { return goo_L20C9_cfunctor__(); } + void zero_adjoints__() { } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); } + + }; +auto goo_L20C9_make__() { +return goo_L20C9_cfunctor__(); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = goo_L20C9_cfunctor__; -auto value_of__() const { return ValueOf__(); } -auto deep_copy_vars__() const { -return goo_L20C9_cfunctor__(); } -void zero_adjoints__() { } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, ); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, ); } - -}; - template -stan::promote_args_t bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::promote_args_t; const static bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -1886,38 +1875,20 @@ bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } -} -template -stan::promote_args_t -foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 11; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } template -stan::promote_args_t baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::promote_args_t; const static bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 13; + current_statement__ = 11; return foo(pstream__, y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1928,7 +1899,7 @@ baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { } template stan::promote_args_t -goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; const static bool propto__ = true; (void) propto__; @@ -1936,11 +1907,8 @@ goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { - - current_statement__ = 15; - auto gar = gar_L22C13_cfunctor__(); - current_statement__ = 16; - return gar(pstream__, s); + current_statement__ = 13; + return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1948,19 +1916,18 @@ goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { } } -template -stan::promote_args_t -baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +stan::promote_args_t +gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; const static bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 13; - return foo(pstream__, y); + current_statement__ = 15; + return b; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1979,9 +1946,9 @@ goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { try { - current_statement__ = 15; - auto gar = gar_L22C13_cfunctor__(); - current_statement__ = 16; + current_statement__ = 17; + auto gar = gar_L22C13_make__(); + current_statement__ = 18; return gar(pstream__, s); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2027,10 +1994,10 @@ class closures2_model final : public model_base_crtp { pos__ = 1; current_statement__ = 1; - auto foo = foo_L3C9_cfunctor__(); + auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_cfunctor__(foo); + auto bar = bar_L7C9_make__(foo); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2064,10 +2031,10 @@ class closures2_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo = foo_L3C9_cfunctor__(); + auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_cfunctor__(foo); + auto bar = bar_L7C9_make__(foo); local_scalar_t__ alpha; alpha = DUMMY_VAR__; @@ -2075,10 +2042,10 @@ class closures2_model final : public model_base_crtp { alpha = in__.scalar(); current_statement__ = 4; - auto baz = baz_L16C9_cfunctor__(foo); + auto baz = baz_L16C9_make__(foo); current_statement__ = 5; - auto goo = goo_L20C9_cfunctor__(); + auto goo = goo_L20C9_make__(); local_scalar_t__ s1; s1 = DUMMY_VAR__; @@ -2128,10 +2095,10 @@ class closures2_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo = foo_L3C9_cfunctor__(); + auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_cfunctor__(foo); + auto bar = bar_L7C9_make__(foo); double alpha; alpha = std::numeric_limits::quiet_NaN(); @@ -2154,9 +2121,9 @@ class closures2_model final : public model_base_crtp { return ; } current_statement__ = 4; - auto baz = baz_L16C9_cfunctor__(foo); + auto baz = baz_L16C9_make__(foo); current_statement__ = 5; - auto goo = goo_L20C9_cfunctor__(); + auto goo = goo_L20C9_make__(); current_statement__ = 6; s1 = bar(pstream__, 1.0); current_statement__ = 7; @@ -2190,10 +2157,10 @@ class closures2_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo = foo_L3C9_cfunctor__(); + auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_cfunctor__(foo); + auto bar = bar_L7C9_make__(foo); int pos__; pos__ = std::numeric_limits::min(); @@ -2415,21 +2382,21 @@ static const std::vector locations_array__ = {" (found before start of p " (in 'closures3.stan', line 3, column 8 to line 6, column 9)", " (in 'closures3.stan', line 7, column 8 to column 23)", " (in 'closures3.stan', line 2, column 35 to line 8, column 5)", - " (in 'closures3.stan', line 5, column 12 to column 28)", - " (in 'closures3.stan', line 4, column 24 to line 6, column 9)", " (in 'closures3.stan', line 14, column 8 to column 19)", " (in 'closures3.stan', line 13, column 21 to line 15, column 5)", " (in 'closures3.stan', line 24, column 8 to column 19)", - " (in 'closures3.stan', line 23, column 21 to line 25, column 5)"}; + " (in 'closures3.stan', line 23, column 21 to line 25, column 5)", + " (in 'closures3.stan', line 5, column 12 to column 28)", + " (in 'closures3.stan', line 4, column 24 to line 6, column 9)"}; template -stan::promote_args_t foo(const T0__& g, const T1__& x, std::ostream* pstream__) ; struct foo_functor__ { template -stan::promote_args_t operator()(const T0__& g, const T1__& x, std::ostream* pstream__) const { @@ -2437,150 +2404,129 @@ return foo(g, x, pstream__); } }; -template -stan::promote_args_t -g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, - std::ostream* pstream__) ; - -template -class g2_L4C13_cfunctor__ { -local_scalar_t__ g; -local_scalar_t__ x; -public: -const size_t vars_count__; -g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; -g2_L4C13_cfunctor__(const local_scalar_t__& g__, const local_scalar_t__& x__) -: g(g__), x(x__), vars_count__(count_vars(g__, x__)) {} -template -stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& y) const -{ -return g2_L4C13_impl__(g, x, y, pstream__); -} - -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = g2_L4C13_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(g), value_of(x)); } -auto deep_copy_vars__() const { -return g2_L4C13_cfunctor__(deep_copy_vars(g), - deep_copy_vars(x)); } -void zero_adjoints__() { stan::math::zero_adjoints(g); -stan::math::zero_adjoints(x); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, g, x); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, g, x); } - -}; - template stan::promote_args_t bar_L13C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; -template class bar_L13C9_cfunctor__ { -double x; -public: -const size_t vars_count__; -bar_L13C9_cfunctor__(const bar_L13C9_cfunctor__&) = default ; -bar_L13C9_cfunctor__(const double& x__) -: x(x__), vars_count__(count_vars(x__)) {} -template -stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& y) const -{ -return bar_L13C9_impl__(x, y, pstream__); + double x; + public: + const size_t vars_count__; + bar_L13C9_cfunctor__(const bar_L13C9_cfunctor__&) = default ; + bar_L13C9_cfunctor__(bar_L13C9_cfunctor__&&) = default ; + bar_L13C9_cfunctor__(const double& x__) + : x(x__), vars_count__(count_vars(x__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y) const + { + return bar_L13C9_impl__(x, y, pstream__); + } + + using captured_scalar_t__ = double;using ValueOf__ = bar_L13C9_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(x)); } + auto deep_copy_vars__() const { + return bar_L13C9_cfunctor__(deep_copy_vars(x)); } + void zero_adjoints__() { stan::math::zero_adjoints(x); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, x); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, x); } + + }; +auto bar_L13C9_make__(const double& x) { +return bar_L13C9_cfunctor__(x); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = bar_L13C9_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(x)); } -auto deep_copy_vars__() const { -return bar_L13C9_cfunctor__(deep_copy_vars(x)); } -void zero_adjoints__() { stan::math::zero_adjoints(x); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, x); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, x); } - -}; - template stan::promote_args_t baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; -template +template class baz_L23C9_cfunctor__ { -local_scalar_t__ p; -public: -const size_t vars_count__; -baz_L23C9_cfunctor__(const baz_L23C9_cfunctor__&) = default ; -baz_L23C9_cfunctor__(const local_scalar_t__& p__) -: p(p__), vars_count__(count_vars(p__)) {} -template -stan::promote_args_t&) = default ; + baz_L23C9_cfunctor__(baz_L23C9_cfunctor__&&) = default ; + baz_L23C9_cfunctor__(const F0__& p__) + : p(p__), vars_count__(count_vars(p__)) {} + template + stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& y) const -{ -return baz_L23C9_impl__(p, y, pstream__); + operator()(std::ostream* pstream__, const T0__& y) const + { + return baz_L23C9_impl__(p, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = baz_L23C9_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(p)); } + auto deep_copy_vars__() const { + return baz_L23C9_cfunctor__(deep_copy_vars(p)); } + void zero_adjoints__() { stan::math::zero_adjoints(p); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, p); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, p); } + + }; +template +auto baz_L23C9_make__(const F0__& p) { +return baz_L23C9_cfunctor__(p); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = baz_L23C9_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(p)); } -auto deep_copy_vars__() const { -return baz_L23C9_cfunctor__(deep_copy_vars(p)); } -void zero_adjoints__() { stan::math::zero_adjoints(p); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, p); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, p); } - -}; - -template -stan::promote_args_t -baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; +template +stan::promote_args_t +g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, + std::ostream* pstream__) ; -template -class baz_L23C9_cfunctor__ { -local_scalar_t__ p; -public: -const size_t vars_count__; -baz_L23C9_cfunctor__(const baz_L23C9_cfunctor__&) = default ; -baz_L23C9_cfunctor__(const local_scalar_t__& p__) -: p(p__), vars_count__(count_vars(p__)) {} -template -stan::promote_args_t +class g2_L4C13_cfunctor__ { + F0__ g; + F1__ x; + public: + const size_t vars_count__; + g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; + g2_L4C13_cfunctor__(g2_L4C13_cfunctor__&&) = default ; + g2_L4C13_cfunctor__(const F0__& g__, const F1__& x__) + : g(g__), x(x__), vars_count__(count_vars(g__, x__)) {} + template + stan::promote_args_t -operator()(std::ostream* pstream__, const T0__& y) const -{ -return baz_L23C9_impl__(p, y, pstream__); + operator()(std::ostream* pstream__, const T0__& y) const + { + return g2_L4C13_impl__(g, x, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = g2_L4C13_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(g), value_of(x)); } + auto deep_copy_vars__() const { + return g2_L4C13_cfunctor__(deep_copy_vars(g), + deep_copy_vars(x)); } + void zero_adjoints__() { + stan::math::zero_adjoints(g); + stan::math::zero_adjoints(x); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, g, x); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, g, x); } + + }; +template +auto g2_L4C13_make__(const F0__& g, const F1__& x) { +return g2_L4C13_cfunctor__(g, x); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = baz_L23C9_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(p)); } -auto deep_copy_vars__() const { -return baz_L23C9_cfunctor__(deep_copy_vars(p)); } -void zero_adjoints__() { stan::math::zero_adjoints(p); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, p); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, p); } - -}; - template -stan::promote_args_t foo(const T0__& g, const T1__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::promote_args_t; const static bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -2589,7 +2535,7 @@ foo(const T0__& g, const T1__& x, std::ostream* pstream__) { try { current_statement__ = 7; - auto g2 = g2_L4C13_cfunctor__(g, x); + auto g2 = g2_L4C13_make__(g, x); current_statement__ = 8; return g2(pstream__, 1.0); } catch (const std::exception& e) { @@ -2598,27 +2544,6 @@ foo(const T0__& g, const T1__& x, std::ostream* pstream__) { throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } -} -template -stan::promote_args_t -g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - - try { - current_statement__ = 10; - return (g(pstream__, y) * x); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } template stan::promote_args_t @@ -2630,7 +2555,7 @@ bar_L13C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 12; + current_statement__ = 10; return (x * y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2650,7 +2575,7 @@ baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 14; + current_statement__ = 12; return (p * y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2659,11 +2584,14 @@ baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { } } -template -stan::promote_args_t -baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +stan::promote_args_t +g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; const static bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -2671,7 +2599,7 @@ baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { try { current_statement__ = 14; - return (p * y); + return (g(pstream__, y) * x); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2722,7 +2650,7 @@ class closures3_model final : public model_base_crtp { x = 2.0; current_statement__ = 1; - auto bar = bar_L13C9_cfunctor__(x); + auto bar = bar_L13C9_make__(x); current_statement__ = 6; z = std::numeric_limits::quiet_NaN(); @@ -2761,7 +2689,7 @@ class closures3_model final : public model_base_crtp { try { current_statement__ = 1; - auto bar = bar_L13C9_cfunctor__(x); + auto bar = bar_L13C9_make__(x); local_scalar_t__ p; p = DUMMY_VAR__; @@ -2769,7 +2697,7 @@ class closures3_model final : public model_base_crtp { p = in__.scalar(); current_statement__ = 3; - auto baz = baz_L23C9_cfunctor__(p); + auto baz = baz_L23C9_make__(p); local_scalar_t__ w; w = DUMMY_VAR__; @@ -2809,7 +2737,7 @@ class closures3_model final : public model_base_crtp { try { current_statement__ = 1; - auto bar = bar_L13C9_cfunctor__(x); + auto bar = bar_L13C9_make__(x); double p; p = std::numeric_limits::quiet_NaN(); @@ -2825,7 +2753,7 @@ class closures3_model final : public model_base_crtp { return ; } current_statement__ = 3; - auto baz = baz_L23C9_cfunctor__(p); + auto baz = baz_L23C9_make__(p); current_statement__ = 4; w = foo(baz, 1.0, pstream__); if (emit_transformed_parameters__) { @@ -2853,7 +2781,7 @@ class closures3_model final : public model_base_crtp { try { current_statement__ = 1; - auto bar = bar_L13C9_cfunctor__(x); + auto bar = bar_L13C9_make__(x); int pos__; pos__ = std::numeric_limits::min(); @@ -3092,36 +3020,41 @@ harmonic_L4C15_impl__(const std::vector>& k, const T1__& t, const Eigen::Matrix& y, std::ostream* pstream__) ; -template +template class harmonic_L4C15_cfunctor__ { -std::vector> k; -public: -const size_t vars_count__; -harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; -harmonic_L4C15_cfunctor__(const std::vector>& k__) -: k(k__), vars_count__(count_vars(k__)) {} -template -Eigen::Matrix> k; + public: + const size_t vars_count__; + harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; + harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; + harmonic_L4C15_cfunctor__(const std::vector>& k__) + : k(k__), vars_count__(count_vars(k__)) {} + template + Eigen::Matrix, -1, 1> -operator()(std::ostream* pstream__, const T0__& t, - const Eigen::Matrix& y) const -{ -return harmonic_L4C15_impl__(k, t, y, pstream__); + operator()(std::ostream* pstream__, const T0__& t, + const Eigen::Matrix& y) const + { + return harmonic_L4C15_impl__(k, t, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = harmonic_L4C15_cfunctor__; + auto value_of__() const { return ValueOf__(value_of(k)); } + auto deep_copy_vars__() const { + return harmonic_L4C15_cfunctor__(deep_copy_vars(k)); } + void zero_adjoints__() { stan::math::zero_adjoints(k); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, k); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, k); } + + }; +template +auto harmonic_L4C15_make__(const std::vector>& k) { +return harmonic_L4C15_cfunctor__(k); } -using captured_scalar_t__ = local_scalar_t__; -using ValueOf__ = harmonic_L4C15_cfunctor__; -auto value_of__() const { return ValueOf__(value_of(k)); } -auto deep_copy_vars__() const { -return harmonic_L4C15_cfunctor__(deep_copy_vars(k)); } -void zero_adjoints__() { stan::math::zero_adjoints(k); } -double* accumulate_adjoints__(double *dest) const { -return stan::math::accumulate_adjoints(dest, k); } -stan::math::vari** save_varis__(stan::math::vari **dest) const { -return stan::math::save_varis(dest, k); } - -}; - template std::vector, -1, 1>> @@ -3137,7 +3070,7 @@ integrate(const std::vector>& k, try { current_statement__ = 5; - auto harmonic = harmonic_L4C15_cfunctor__(k); + auto harmonic = harmonic_L4C15_make__(k); current_statement__ = 6; return ode_rk45(harmonic, init, 0, ts, pstream__); } catch (const std::exception& e) { From 0c0070023269db347844cd8a11e6401db86e5958 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Tue, 1 Dec 2020 18:38:22 +0200 Subject: [PATCH 07/24] better error messages --- src/frontend/Semantic_check.ml | 34 +- src/frontend/Semantic_error.ml | 72 ++- src/frontend/Semantic_error.mli | 4 + src/middle/Stan_math_signatures.ml | 14 +- src/middle/UnsizedType.ml | 106 ++++ .../bad/algebra_solver/stanc.expected | 273 ++++++--- .../bad/function-signatures/stanc.expected | 10 +- .../bad/hmm_hidden_state_prob/stanc.expected | 15 +- test/integration/bad/lang/stanc.expected | 30 +- test/integration/bad/map_rect/stanc.expected | 77 ++- test/integration/bad/ode/adams/stanc.expected | 266 ++++++--- test/integration/bad/ode/stanc.expected | 550 +++++++++++++----- test/integration/bad/stanc.expected | 29 +- 13 files changed, 1068 insertions(+), 412 deletions(-) diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 01327926fe..4f051a27c2 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -310,11 +310,18 @@ let semantic_check_fn_stan_math ~is_cond_dist ~loc id es = ~expr:(mk_fun_app ~is_cond_dist (StanLib, id, es)) ~ad_level:(expr_ad_lub es) ~type_:ut ~loc |> Validate.ok - | _ -> - es - |> List.map ~f:(fun e -> e.emeta.type_) - |> Semantic_error.illtyped_stanlib_fn_app loc id.name - |> Validate.error + | None -> ( + match get_arg_types es with + | (_, UFun (arg_tys, rt, true)) :: args + when Stan_math_signatures.stan_math_returntype id.name + ((UnsizedType.DataOnly, UFun (arg_tys, rt, false)) :: args) + <> None -> + Semantic_error.illtyped_stanlib_hof_app loc id.name |> Validate.error + | _ -> + es + |> List.map ~f:(fun e -> e.emeta.type_) + |> Semantic_error.illtyped_stanlib_fn_app loc id.name + |> Validate.error ) let arg_match (x_ad, x_t) y = UnsizedType.check_of_same_type_mod_conv "" x_t y.emeta.type_ @@ -445,11 +452,14 @@ let semantic_check_ternary_if loc (pe, te, fe) = if pe.emeta.type_ = UInt then match UnsizedType.common_type (te.emeta.type_, fe.emeta.type_) with | Some type_ -> - mk_typed_expression - ~expr:(TernaryIf (pe, te, fe)) - ~ad_level:(expr_ad_lub [pe; te; fe]) - ~type_ ~loc - |> ok + if UnsizedType.is_fun_type type_ then + error (Semantic_error.ternary_if_fn_type loc type_) + else + mk_typed_expression + ~expr:(TernaryIf (pe, te, fe)) + ~ad_level:(expr_ad_lub [pe; te; fe]) + ~type_ ~loc + |> ok | None -> error err else error err) @@ -1758,7 +1768,9 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = in semantic_check_statement context body ) in - body' + ( if is_closure && Set.mem captures id.name then + error (Semantic_error.recursive_closure id.id_loc) + else body' ) >>= fun ub -> semantic_check_fundef_return_tys ~loc id urt ub |> map ~f:(fun () -> diff --git a/src/frontend/Semantic_error.ml b/src/frontend/Semantic_error.ml index 7e10d825d6..1f6e722af9 100644 --- a/src/frontend/Semantic_error.ml +++ b/src/frontend/Semantic_error.ml @@ -17,6 +17,7 @@ module TypeError = struct | IllTypedAssignment of Ast.assignmentoperator * UnsizedType.t * UnsizedType.t | IllTypedTernaryIf of UnsizedType.t * UnsizedType.t * UnsizedType.t + | TernaryIfFnType of UnsizedType.t | IllTypedReduceSum of string * UnsizedType.t list @@ -33,6 +34,7 @@ module TypeError = struct | NonReturningFnExpectedNonFnFound of string | NonReturningFnExpectedUndeclaredIdentFound of string | IllTypedStanLibFunctionApp of string * UnsizedType.t list + | IllTypedStanLibHOFunctionApp of string | IllTypedUserDefinedFunctionApp of string * (UnsizedType.autodifftype * UnsizedType.t) list @@ -92,12 +94,10 @@ module TypeError = struct | IllTypedAssignment ((OperatorAssign op as assignop), lt, rt) -> Fmt.pf ppf "@[Ill-typed arguments supplied to assignment operator %s: lhs \ - has type %a and rhs has type %a. Available signatures:@]%s" + has type %a and rhs has type %a. Available signatures:@]%a" (Pretty_printing.pretty_print_assignmentoperator assignop) UnsizedType.pp lt UnsizedType.pp rt - ( Stan_math_signatures.pretty_print_math_lib_assignmentoperator_sigs - op - |> Option.value ~default:"no matching signatures" ) + Stan_math_signatures.pp_math_lib_assignmentoperator_sigs op | IllTypedAssignment (assignop, lt, rt) -> Fmt.pf ppf "Ill-typed arguments supplied to assignment operator %s: lhs has \ @@ -113,6 +113,9 @@ module TypeError = struct Fmt.pf ppf "Condition in ternary expression must be primitive int; found type=%a" UnsizedType.pp ut1 + | TernaryIfFnType type_ -> + Fmt.pf ppf "Ternary expression cannot be a function; found type=%a" + UnsizedType.pp type_ | IllTypedReduceSum (name, arg_tys, args) -> let arg_types = List.map ~f:(fun (_, t) -> t) args in let first, rest = List.split_n arg_types 1 in @@ -260,50 +263,48 @@ module TypeError = struct "A non-returning function was expected but an undeclared identifier \ '%s' was supplied." fn_name + | IllTypedStanLibHOFunctionApp name -> + Fmt.pf ppf "Function '%s' does not support closures yet." name | IllTypedStanLibFunctionApp (name, arg_tys) -> Fmt.pf ppf "Ill-typed arguments supplied to function '%s'. Available \ - signatures: %s@[Instead supplied arguments of incompatible \ - type: %a.@]" - name - (Stan_math_signatures.pretty_print_math_sigs name) - Fmt.(list UnsizedType.pp ~sep:comma) - arg_tys + signatures:@[" + name ; + let fns = + UnsizedType.pp_sigs ppf (Stan_math_signatures.get_sigs name) + in + Fmt.pf ppf + "@,@]@[Instead supplied arguments of incompatible type:@]@,%a" + UnsizedType.pp_args (fns, arg_tys) | IllTypedUserDefinedFunctionApp (name, listed_tys, return_ty, arg_tys) -> Fmt.pf ppf "Ill-typed arguments supplied to function '%s'. Available \ - signatures:%a\n\ - @[Instead supplied arguments of incompatible type: %a.@]" - name UnsizedType.pp - (UFun (listed_tys, return_ty, false)) - Fmt.(list UnsizedType.pp ~sep:comma) - arg_tys + signatures:@[" + name ; + let fns = UnsizedType.pp_sigs ppf [(return_ty, listed_tys)] in + Fmt.pf ppf + "@,@]@[Instead supplied arguments of incompatible type:@]@,%a" + UnsizedType.pp_args (fns, arg_tys) | IllTypedBinaryOperator (op, lt, rt) -> Fmt.pf ppf "Ill-typed arguments supplied to infix operator %a. Available \ - signatures: %s@[Instead supplied arguments of incompatible \ + signatures: @,%a@,@[Instead supplied arguments of incompatible \ type: %a, %a.@]" - Operator.pp op - ( Stan_math_signatures.pretty_print_math_lib_operator_sigs op - |> String.concat ~sep:"\n" ) + Operator.pp op Stan_math_signatures.pp_math_lib_operator_sigs op UnsizedType.pp lt UnsizedType.pp rt | IllTypedPrefixOperator (op, ut) -> Fmt.pf ppf "Ill-typed arguments supplied to prefix operator %a. Available \ - signatures: %s@[Instead supplied argument of incompatible type: \ - %a.@]" - Operator.pp op - ( Stan_math_signatures.pretty_print_math_lib_operator_sigs op - |> String.concat ~sep:"\n" ) + signatures: @,%a@,@[Instead supplied argument of incompatible \ + type: %a.@]" + Operator.pp op Stan_math_signatures.pp_math_lib_operator_sigs op UnsizedType.pp ut | IllTypedPostfixOperator (op, ut) -> Fmt.pf ppf "Ill-typed arguments supplied to postfix operator %a. Available \ - signatures: %s\n\ - Instead supplied argument of incompatible type: %a." - Operator.pp op - ( Stan_math_signatures.pretty_print_math_lib_operator_sigs op - |> String.concat ~sep:"\n" ) + signatures: @,%a@,Instead supplied argument of incompatible type: \ + %a." + Operator.pp op Stan_math_signatures.pp_math_lib_operator_sigs op UnsizedType.pp ut end @@ -411,6 +412,7 @@ module StatementError = struct | FunDeclNoDefn | ClosureNoDefn | ImpureClosure + | RecursiveClosure | FunDeclNeedsBlock | NonRealProbFunDef | ProbDensityNonRealVariate of UnsizedType.t option @@ -495,6 +497,7 @@ For example, "target += normal_lpdf(y, 0, 1)" should become "y ~ normal(0, 1)." Fmt.pf ppf "Local function cannot have suffix _rng, _lpdf, _lpmf, _lcdf, \ _lccdf, or _lp." + | RecursiveClosure -> Fmt.pf ppf "Local function cannot be recursive." | FunDeclNeedsBlock -> Fmt.pf ppf "Function definitions must be wrapped in curly braces." | NonRealProbFunDef -> @@ -582,6 +585,9 @@ let illtyped_assignment loc assignop lt rt = let illtyped_ternary_if loc predt lt rt = TypeError (loc, TypeError.IllTypedTernaryIf (predt, lt, rt)) +let ternary_if_fn_type loc type_ = + TypeError (loc, TypeError.TernaryIfFnType type_) + let returning_fn_expected_nonreturning_found loc name = TypeError (loc, TypeError.ReturningFnExpectedNonReturningFound name) @@ -612,6 +618,9 @@ let nonreturning_fn_expected_undeclaredident_found loc name = let illtyped_stanlib_fn_app loc name arg_tys = TypeError (loc, TypeError.IllTypedStanLibFunctionApp (name, arg_tys)) +let illtyped_stanlib_hof_app loc name = + TypeError (loc, TypeError.IllTypedStanLibHOFunctionApp name) + let illtyped_userdefined_fn_app loc name decl_arg_tys decl_return_ty arg_tys = TypeError ( loc @@ -732,6 +741,9 @@ let non_real_prob_fn_def loc = let impure_closure loc = StatementError (loc, StatementError.ImpureClosure) +let recursive_closure loc = + StatementError (loc, StatementError.RecursiveClosure) + let prob_density_non_real_variate loc ut_opt = StatementError (loc, StatementError.ProbDensityNonRealVariate ut_opt) diff --git a/src/frontend/Semantic_error.mli b/src/frontend/Semantic_error.mli index c8ad05f706..8d9fe7e27a 100644 --- a/src/frontend/Semantic_error.mli +++ b/src/frontend/Semantic_error.mli @@ -34,6 +34,7 @@ val illtyped_assignment : val illtyped_ternary_if : Location_span.t -> UnsizedType.t -> UnsizedType.t -> UnsizedType.t -> t +val ternary_if_fn_type : Location_span.t -> UnsizedType.t -> t val returning_fn_expected_nonreturning_found : Location_span.t -> string -> t val returning_fn_expected_nonfn_found : Location_span.t -> string -> t @@ -66,6 +67,8 @@ val nonreturning_fn_expected_undeclaredident_found : val illtyped_stanlib_fn_app : Location_span.t -> string -> UnsizedType.t list -> t +val illtyped_stanlib_hof_app : Location_span.t -> string -> t + val illtyped_userdefined_fn_app : Location_span.t -> string @@ -121,6 +124,7 @@ val closure_without_def : Location_span.t -> t val fn_decl_needs_block : Location_span.t -> t val non_real_prob_fn_def : Location_span.t -> t val impure_closure : Location_span.t -> t +val recursive_closure : Location_span.t -> t val prob_density_non_real_variate : Location_span.t -> UnsizedType.t option -> t diff --git a/src/middle/Stan_math_signatures.ml b/src/middle/Stan_math_signatures.ml index 8dd7d98863..c090634d29 100644 --- a/src/middle/Stan_math_signatures.ml +++ b/src/middle/Stan_math_signatures.ml @@ -363,7 +363,19 @@ let get_sigs name = let pp_math_sig ppf (rt, args) = UnsizedType.pp ppf (UFun (args, rt, false)) let pp_math_sigs ppf name = - (Fmt.list ~sep:Fmt.cut pp_math_sig) ppf (get_sigs name) + Fmt.pf ppf "@[%a@]" (Fmt.list ~sep:Fmt.cut pp_math_sig) (get_sigs name) + +let pp_math_lib_operator_sigs ppf op = + if op = Operator.IntDivide then + Fmt.pf ppf "@[%a@]" pp_math_sig int_divide_type + else + Fmt.pf ppf "@[%a@]" (Fmt.list pp_math_sigs) + (operator_to_stan_math_fns op) + +let pp_math_lib_assignmentoperator_sigs ppf op = + match assignmentoperator_to_stan_math_fn op with + | None -> Fmt.pf ppf "no matching signatures" + | Some s -> Fmt.pf ppf "@[%a@]" pp_math_sigs s let pretty_print_math_sigs = Fmt.strf "@[@,%a@]" pp_math_sigs diff --git a/src/middle/UnsizedType.ml b/src/middle/UnsizedType.ml index 6150876bda..d295a53f5a 100644 --- a/src/middle/UnsizedType.ml +++ b/src/middle/UnsizedType.ml @@ -157,3 +157,109 @@ include Comparable.Make_using_comparator (struct include Comparator end) + +module TypeMap = Core_kernel.Map.Make_using_comparator (struct + type nonrec t = t + + let sexp_of_t = sexp_of_t + let t_of_sexp = t_of_sexp + + include Comparator +end) + +let pp_sigs ppf tys = + let ctx = ref TypeMap.empty in + let rec pp ppf = function + | UInt -> pp_keyword ppf "int" + | UReal -> pp_keyword ppf "real" + | UVector -> pp_keyword ppf "vector" + | URowVector -> pp_keyword ppf "row_vector" + | UMatrix -> pp_keyword ppf "matrix" + | UArray ut -> + let ty, depth = unsized_array_depth ut in + let commas = String.make depth ',' in + Fmt.pf ppf "@[%a[%s]@]" pp ty commas + | UFun (tys, rt, _) as t -> ( + match Map.find !ctx t with + | Some (id, _) -> Fmt.pf ppf "%s" id + | None -> + let id = Fmt.strf "" (Map.length !ctx + 1) in + ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, tys)) ; + Fmt.pf ppf "%s" id ) + | UMathLibraryFunction -> + (pp_angle_brackets Fmt.string) ppf "Stan Math function" + and pp_fun_arg ppf (ad_ty, unsized_ty) = + match ad_ty with + | DataOnly -> Fmt.pf ppf {|data %a|} pp unsized_ty + | _ -> pp ppf unsized_ty + and pp_returntype ppf = function + | Void -> Fmt.string ppf "void" + | ReturnType ut -> pp ppf ut + and pp_fn ppf (rt, argtypes) = + Fmt.pf ppf {|(@[%a@]) => %a|} + Fmt.(list pp_fun_arg ~sep:comma) + argtypes pp_returntype rt + and pp_fun ppf (id, tys) = Fmt.pf ppf {|@[%s = @[%a@]@]|} id pp_fn tys + and pp_where ppf fns = + let old = !ctx in + let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem fns ty)) in + if not (Map.is_empty new_) then ( + Fmt.cut ppf () ; + let compare (_, (id1, _)) (_, (id2, _)) = String.compare id1 id2 in + Fmt.list pp_fun ppf + (List.map ~f:snd (List.sort ~compare (Map.to_alist new_))) ; + pp_where ppf old ) + in + Fmt.pf ppf "@[%a" Fmt.(list pp_fn) tys ; + if not (Map.is_empty !ctx) then + Fmt.pf ppf "@, where%a" pp_where TypeMap.empty ; + Fmt.pf ppf "@]" ; + !ctx + +let pp_args ppf (fns, tys) = + let ctx = ref fns in + let rec pp ppf = function + | UInt -> pp_keyword ppf "int" + | UReal -> pp_keyword ppf "real" + | UVector -> pp_keyword ppf "vector" + | URowVector -> pp_keyword ppf "row_vector" + | UMatrix -> pp_keyword ppf "matrix" + | UArray ut -> + let ty, depth = unsized_array_depth ut in + let commas = String.make depth ',' in + Fmt.pf ppf "@[%a[%s]@]" pp ty commas + | UFun (tys, rt, _) as t -> ( + match Map.find !ctx t with + | Some (id, _) -> Fmt.pf ppf "%s" id + | None -> + let id = Fmt.strf "" (Map.length !ctx + 1) in + ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, tys)) ; + Fmt.pf ppf "%s" id ) + | UMathLibraryFunction -> + (pp_angle_brackets Fmt.string) ppf "Stan Math function" + and pp_fun_arg ppf (ad_ty, unsized_ty) = + match ad_ty with + | DataOnly -> Fmt.pf ppf {|data %a|} pp unsized_ty + | _ -> pp ppf unsized_ty + and pp_returntype ppf = function + | Void -> Fmt.string ppf "void" + | ReturnType ut -> pp ppf ut + and pp_fn ppf (rt, argtypes) = + Fmt.pf ppf {|(@[%a@]) => %a|} + Fmt.(list pp_fun_arg ~sep:comma) + argtypes pp_returntype rt + and pp_fun ppf (id, tys) = Fmt.pf ppf {|@[%s = @[%a@]@]|} id pp_fn tys + and pp_where ppf fns = + let old = !ctx in + let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem fns ty)) in + if not (Map.is_empty new_) then ( + Fmt.cut ppf () ; + let compare (_, (id1, _)) (_, (id2, _)) = String.compare id1 id2 in + Fmt.list pp_fun ppf + (List.map ~f:snd (List.sort ~compare (Map.to_alist new_))) ; + pp_where ppf old ) + in + Fmt.pf ppf "@[(@[%a@])" Fmt.(list ~sep:comma pp) tys ; + if Int.( > ) (Map.length !ctx) (Map.length fns) then + Fmt.pf ppf "@, where%a" pp_where fns ; + Fmt.pf ppf "@]" diff --git a/test/integration/bad/algebra_solver/stanc.expected b/test/integration/bad/algebra_solver/stanc.expected index f6ec2326f7..f7818c41b0 100644 --- a/test/integration/bad/algebra_solver/stanc.expected +++ b/test/integration/bad/algebra_solver/stanc.expected @@ -10,10 +10,15 @@ Semantic error in 'bad_fun_type.stan', line 31, column 10 to column 62: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, vector, vector, real[], int[]. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], int[]) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_fun_type_control.stan @@ -27,10 +32,15 @@ Semantic error in 'bad_fun_type_control.stan', line 31, column 10 to column 78: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, vector, vector, real[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], int[], real, real, int) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_fun_type_control.stan @@ -44,10 +54,15 @@ Semantic error in 'bad_newton_fun_type_control.stan', line 31, column 10 to colu 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, vector, vector, real[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], int[], real, real, int) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_x_i_type.stan @@ -61,10 +76,15 @@ Semantic error in 'bad_newton_x_i_type.stan', line 31, column 10 to column 69: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], real[]. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], real[]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_x_i_type_control.stan @@ -78,10 +98,15 @@ Semantic error in 'bad_newton_x_i_type_control.stan', line 31, column 10 to colu 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], real[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], real[], real, real, int) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_x_r_type.stan @@ -95,10 +120,15 @@ Semantic error in 'bad_newton_x_r_type.stan', line 31, column 10 to column 69: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, int[], int[]. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, int[], int[]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_x_r_type_control.stan @@ -112,10 +142,15 @@ Semantic error in 'bad_newton_x_r_type_control.stan', line 31, column 10 to colu 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, int[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, int[], int[], real, real, int) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_x_r_var_type.stan @@ -129,10 +164,15 @@ Semantic error in 'bad_newton_x_r_var_type.stan', line 31, column 10 to column 7 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], int[]. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], int[]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_x_r_var_type_control.stan @@ -146,10 +186,15 @@ Semantic error in 'bad_newton_x_r_var_type_control.stan', line 31, column 10 to 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], int[], real, real, int) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_y_type.stan @@ -163,10 +208,15 @@ Semantic error in 'bad_newton_y_type.stan', line 31, column 10 to column 69: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, real, vector, real[], int[]. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, real, vector, real[], int[]) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_newton_y_type_control.stan @@ -180,10 +230,15 @@ Semantic error in 'bad_newton_y_type_control.stan', line 31, column 10 to column 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, real, vector, real[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver_newton'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, real, vector, real[], int[], real, real, int) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_theta_type.stan @@ -197,10 +252,15 @@ Semantic error in 'bad_theta_type.stan', line 31, column 10 to column 62: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, vector, real, real[], int[]. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, real, real[], int[]) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_theta_type_control.stan @@ -214,10 +274,15 @@ Semantic error in 'bad_theta_type_control.stan', line 31, column 10 to column 78 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, vector, real, real[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, real, real[], int[], real, real, int) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_x_i_type.stan @@ -231,10 +296,15 @@ Semantic error in 'bad_x_i_type.stan', line 31, column 10 to column 62: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], real[]. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], real[]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_x_i_type_control.stan @@ -248,10 +318,15 @@ Semantic error in 'bad_x_i_type_control.stan', line 31, column 10 to column 78: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], real[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], real[], real, real, int) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_x_r_type.stan @@ -265,10 +340,15 @@ Semantic error in 'bad_x_r_type.stan', line 31, column 10 to column 62: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, int[], int[]. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, int[], int[]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_x_r_type_control.stan @@ -282,10 +362,15 @@ Semantic error in 'bad_x_r_type_control.stan', line 31, column 10 to column 78: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, int[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, int[], int[], real, real, int) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_x_r_var_type.stan @@ -299,10 +384,15 @@ Semantic error in 'bad_x_r_var_type.stan', line 31, column 10 to column 64: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], int[]. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], int[]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_x_r_var_type_control.stan @@ -316,10 +406,15 @@ Semantic error in 'bad_x_r_var_type_control.stan', line 31, column 10 to column 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector, real[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector, real[], int[], real, real, int) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_y_type.stan @@ -333,10 +428,15 @@ Semantic error in 'bad_y_type.stan', line 31, column 10 to column 62: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, real, vector, real[], int[]. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, real, vector, real[], int[]) + where + = (real[], vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_y_type_control.stan @@ -350,8 +450,13 @@ Semantic error in 'bad_y_type_control.stan', line 31, column 10 to column 78: 33: ------------------------------------------------- -Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[]) => vector -((vector, vector, data real[], data int[]) => vector, vector, vector, data real[], data int[], data real, data real, data real) => vector -Instead supplied arguments of incompatible type: (real[], vector, real[], int[]) => vector, real, vector, real[], int[], real, real, int. +Ill-typed arguments supplied to function 'algebra_solver'. Available signatures: +(, vector, vector, data real[], data int[]) => vector +(, vector, vector, data real[], data int[], data real, data real, data real) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, real, vector, real[], int[], real, real, int) + where + = (real[], vector, real[], int[]) => vector diff --git a/test/integration/bad/function-signatures/stanc.expected b/test/integration/bad/function-signatures/stanc.expected index 018735505b..4ec009474c 100644 --- a/test/integration/bad/function-signatures/stanc.expected +++ b/test/integration/bad/function-signatures/stanc.expected @@ -10,7 +10,7 @@ Semantic error in 'falling_factorial.stan', line 7, column 26 to column 59: 9: ------------------------------------------------- -Ill-typed arguments supplied to function 'falling_factorial'. Available signatures: +Ill-typed arguments supplied to function 'falling_factorial'. Available signatures: (int, int) => int (real, int) => real (vector, int) => vector @@ -105,7 +105,8 @@ Ill-typed arguments supplied to function 'falling_factorial'. Available signatur (matrix[,,,,,,], int[,,,,,,,,]) => matrix[,,,,,,] (real[,,,,,,,], int) => real[,,,,,,,] (real[,,,,,,,], int[,,,,,,,]) => real[,,,,,,,] -Instead supplied arguments of incompatible type: real, real. +Instead supplied arguments of incompatible type: +(real, real) $ ../../../../../install/default/bin/stanc rising_factorial.stan @@ -118,7 +119,7 @@ Semantic error in 'rising_factorial.stan', line 7, column 28 to column 60: 8: } ------------------------------------------------- -Ill-typed arguments supplied to function 'rising_factorial'. Available signatures: +Ill-typed arguments supplied to function 'rising_factorial'. Available signatures: (int, int) => int (real, int) => real (vector, int) => vector @@ -213,5 +214,6 @@ Ill-typed arguments supplied to function 'rising_factorial'. Available signature (matrix[,,,,,,], int[,,,,,,,,]) => matrix[,,,,,,] (real[,,,,,,,], int) => real[,,,,,,,] (real[,,,,,,,], int[,,,,,,,]) => real[,,,,,,,] -Instead supplied arguments of incompatible type: real, real. +Instead supplied arguments of incompatible type: +(real, real) diff --git a/test/integration/bad/hmm_hidden_state_prob/stanc.expected b/test/integration/bad/hmm_hidden_state_prob/stanc.expected index 147d8cfe21..e3c26a4bb4 100644 --- a/test/integration/bad/hmm_hidden_state_prob/stanc.expected +++ b/test/integration/bad/hmm_hidden_state_prob/stanc.expected @@ -10,9 +10,10 @@ Semantic error in 'bad_gamma_var.stan', line 19, column 9 to column 55: 21: ------------------------------------------------- -Ill-typed arguments supplied to function 'hmm_hidden_state_prob'. Available signatures: +Ill-typed arguments supplied to function 'hmm_hidden_state_prob'. Available signatures: (data matrix, data matrix, data vector) => matrix -Instead supplied arguments of incompatible type: matrix, matrix, vector. +Instead supplied arguments of incompatible type: +(matrix, matrix, vector) $ ../../../../../install/default/bin/stanc bad_log_omega_var.stan @@ -26,9 +27,10 @@ Semantic error in 'bad_log_omega_var.stan', line 19, column 9 to column 55: 21: ------------------------------------------------- -Ill-typed arguments supplied to function 'hmm_hidden_state_prob'. Available signatures: +Ill-typed arguments supplied to function 'hmm_hidden_state_prob'. Available signatures: (data matrix, data matrix, data vector) => matrix -Instead supplied arguments of incompatible type: matrix, matrix, vector. +Instead supplied arguments of incompatible type: +(matrix, matrix, vector) $ ../../../../../install/default/bin/stanc bad_rho_var.stan @@ -42,7 +44,8 @@ Semantic error in 'bad_rho_var.stan', line 19, column 9 to column 55: 21: ------------------------------------------------- -Ill-typed arguments supplied to function 'hmm_hidden_state_prob'. Available signatures: +Ill-typed arguments supplied to function 'hmm_hidden_state_prob'. Available signatures: (data matrix, data matrix, data vector) => matrix -Instead supplied arguments of incompatible type: matrix, matrix, vector. +Instead supplied arguments of incompatible type: +(matrix, matrix, vector) diff --git a/test/integration/bad/lang/stanc.expected b/test/integration/bad/lang/stanc.expected index 547434f8de..0fb48559fa 100644 --- a/test/integration/bad/lang/stanc.expected +++ b/test/integration/bad/lang/stanc.expected @@ -219,14 +219,15 @@ Semantic error in 'bad_cov_exp_quad_len_data.stan', line 13, column 28 to column 15: parameters { ------------------------------------------------- -Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: +Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: (real[], real, real) => matrix (real[], real[], real, real) => matrix (vector[], real, real) => matrix (vector[], vector[], real, real) => matrix (row_vector[], real, real) => matrix (row_vector[], row_vector[], real, real) => matrix -Instead supplied arguments of incompatible type: vector[], vector[], real, real[]. +Instead supplied arguments of incompatible type: +(vector[], vector[], real, real[]) $ ../../../../../install/default/bin/stanc bad_cov_exp_quad_len_param.stan @@ -314,14 +315,15 @@ Semantic error in 'bad_cov_exp_quad_rvec_data.stan', line 12, column 28 to colum 14: parameters { ------------------------------------------------- -Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: +Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: (real[], real, real) => matrix (real[], real[], real, real) => matrix (vector[], real, real) => matrix (vector[], vector[], real, real) => matrix (row_vector[], real, real) => matrix (row_vector[], row_vector[], real, real) => matrix -Instead supplied arguments of incompatible type: row_vector, real, real. +Instead supplied arguments of incompatible type: +(row_vector, real, real) $ ../../../../../install/default/bin/stanc bad_cov_exp_quad_rvec_vec_data.stan @@ -335,14 +337,15 @@ Semantic error in 'bad_cov_exp_quad_rvec_vec_data.stan', line 13, column 28 to c 15: parameters { ------------------------------------------------- -Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: +Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: (real[], real, real) => matrix (real[], real[], real, real) => matrix (vector[], real, real) => matrix (vector[], vector[], real, real) => matrix (row_vector[], real, real) => matrix (row_vector[], row_vector[], real, real) => matrix -Instead supplied arguments of incompatible type: row_vector[], vector[], real, real. +Instead supplied arguments of incompatible type: +(row_vector[], vector[], real, real) $ ../../../../../install/default/bin/stanc bad_cov_exp_quad_rvec_vec_param.stan @@ -371,14 +374,15 @@ Semantic error in 'bad_cov_exp_quad_sigma_data.stan', line 13, column 28 to colu 15: parameters { ------------------------------------------------- -Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: +Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: (real[], real, real) => matrix (real[], real[], real, real) => matrix (vector[], real, real) => matrix (vector[], vector[], real, real) => matrix (row_vector[], real, real) => matrix (row_vector[], row_vector[], real, real) => matrix -Instead supplied arguments of incompatible type: vector[], vector[], real[], real. +Instead supplied arguments of incompatible type: +(vector[], vector[], real[], real) $ ../../../../../install/default/bin/stanc bad_cov_exp_quad_sigma_param.stan @@ -466,14 +470,15 @@ Semantic error in 'bad_cov_exp_quad_vec_data.stan', line 12, column 28 to column 14: parameters { ------------------------------------------------- -Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: +Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: (real[], real, real) => matrix (real[], real[], real, real) => matrix (vector[], real, real) => matrix (vector[], vector[], real, real) => matrix (row_vector[], real, real) => matrix (row_vector[], row_vector[], real, real) => matrix -Instead supplied arguments of incompatible type: vector, real, real. +Instead supplied arguments of incompatible type: +(vector, real, real) $ ../../../../../install/default/bin/stanc bad_cov_exp_quad_vec_rvec_data.stan @@ -487,14 +492,15 @@ Semantic error in 'bad_cov_exp_quad_vec_rvec_data.stan', line 13, column 28 to c 15: parameters { ------------------------------------------------- -Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: +Ill-typed arguments supplied to function 'cov_exp_quad'. Available signatures: (real[], real, real) => matrix (real[], real[], real, real) => matrix (vector[], real, real) => matrix (vector[], vector[], real, real) => matrix (row_vector[], real, real) => matrix (row_vector[], row_vector[], real, real) => matrix -Instead supplied arguments of incompatible type: vector[], row_vector[], real, real. +Instead supplied arguments of incompatible type: +(vector[], row_vector[], real, real) $ ../../../../../install/default/bin/stanc bad_cov_exp_quad_vec_rvec_param.stan diff --git a/test/integration/bad/map_rect/stanc.expected b/test/integration/bad/map_rect/stanc.expected index 0747a87a6a..55967b8f33 100644 --- a/test/integration/bad/map_rect/stanc.expected +++ b/test/integration/bad/map_rect/stanc.expected @@ -9,9 +9,14 @@ Semantic error in 'bad_data_i_type.stan', line 19, column 8 to column 68: 20: } ------------------------------------------------- -Ill-typed arguments supplied to function 'map_rect'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector[], data real[,], data int[,]) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector[], real[,], int[,,]. +Ill-typed arguments supplied to function 'map_rect'. Available signatures: +(, vector, vector[], data real[,], data int[,]) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector[], real[,], int[,,]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_data_int_const.stan @@ -25,9 +30,14 @@ Semantic error in 'bad_data_int_const.stan', line 21, column 8 to line 22, colum 23: } ------------------------------------------------- -Ill-typed arguments supplied to function 'map_rect'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector[], data real[,], data int[,]) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector[], real[,], int[,]. +Ill-typed arguments supplied to function 'map_rect'. Available signatures: +(, vector, vector[], data real[,], data int[,]) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector[], real[,], int[,]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_data_r_type.stan @@ -40,9 +50,14 @@ Semantic error in 'bad_data_r_type.stan', line 19, column 8 to column 68: 20: } ------------------------------------------------- -Ill-typed arguments supplied to function 'map_rect'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector[], data real[,], data int[,]) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector[], real, int[,]. +Ill-typed arguments supplied to function 'map_rect'. Available signatures: +(, vector, vector[], data real[,], data int[,]) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector[], real, int[,]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_data_real_const.stan @@ -55,9 +70,14 @@ Semantic error in 'bad_data_real_const.stan', line 20, column 8 to column 70: 21: } ------------------------------------------------- -Ill-typed arguments supplied to function 'map_rect'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector[], data real[,], data int[,]) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, vector[], real[,], int[,]. +Ill-typed arguments supplied to function 'map_rect'. Available signatures: +(, vector, vector[], data real[,], data int[,]) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector[], real[,], int[,]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_fun_type.stan @@ -70,9 +90,14 @@ Semantic error in 'bad_fun_type.stan', line 19, column 8 to column 68: 20: } ------------------------------------------------- -Ill-typed arguments supplied to function 'map_rect'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector[], data real[,], data int[,]) => vector -Instead supplied arguments of incompatible type: (vector, vector[], real[], int[]) => vector, vector, vector[], real[,], int[,]. +Ill-typed arguments supplied to function 'map_rect'. Available signatures: +(, vector, vector[], data real[,], data int[,]) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, vector[], real[,], int[,]) + where + = (vector, vector[], real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_job_params_type.stan @@ -85,9 +110,14 @@ Semantic error in 'bad_job_params_type.stan', line 19, column 8 to column 68: 20: } ------------------------------------------------- -Ill-typed arguments supplied to function 'map_rect'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector[], data real[,], data int[,]) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector, matrix[], real[,], int[,]. +Ill-typed arguments supplied to function 'map_rect'. Available signatures: +(, vector, vector[], data real[,], data int[,]) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector, matrix[], real[,], int[,]) + where + = (vector, vector, real[], int[]) => vector $ ../../../../../install/default/bin/stanc bad_lp_fn.stan @@ -126,7 +156,12 @@ Semantic error in 'bad_shared_params_type.stan', line 19, column 8 to column 68: 20: } ------------------------------------------------- -Ill-typed arguments supplied to function 'map_rect'. Available signatures: -((vector, vector, data real[], data int[]) => vector, vector, vector[], data real[,], data int[,]) => vector -Instead supplied arguments of incompatible type: (vector, vector, real[], int[]) => vector, vector[], vector[], real[,], int[,]. +Ill-typed arguments supplied to function 'map_rect'. Available signatures: +(, vector, vector[], data real[,], data int[,]) => vector + where + = (vector, vector, data real[], data int[]) => vector +Instead supplied arguments of incompatible type: +(, vector[], vector[], real[,], int[,]) + where + = (vector, vector, real[], int[]) => vector diff --git a/test/integration/bad/ode/adams/stanc.expected b/test/integration/bad/ode/adams/stanc.expected index 183615c738..ce15253719 100644 --- a/test/integration/bad/ode/adams/stanc.expected +++ b/test/integration/bad/ode/adams/stanc.expected @@ -10,10 +10,16 @@ Semantic error in 'bad_adams_control_function_return.stan', line 13, column 6 to 15: 10, 10, 10); ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real, real[], real, real[], real[], real[], int[], int, int, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], int, int, int) + where + = (real, real[], real[], real[], int[]) => real $ ../../../../../../install/default/bin/stanc bad_control_function_return.stan @@ -27,10 +33,16 @@ Semantic error in 'bad_control_function_return.stan', line 13, column 6 to line 15: 10, 10, 10); ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real, real[], real, real[], real[], real[], int[], int, int, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], int, int, int) + where + = (real, real[], real[], real[], int[]) => real $ ../../../../../../install/default/bin/stanc bad_fun_type.stan @@ -44,10 +56,16 @@ Semantic error in 'bad_fun_type.stan', line 27, column 10 to line 33, column 27: 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real[], real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real[], real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_fun_type_control.stan @@ -61,10 +79,16 @@ Semantic error in 'bad_fun_type_control.stan', line 27, column 10 to line 33, co 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real[], real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], real, real, int) + where + = (real[], real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_t_type.stan @@ -78,10 +102,16 @@ Semantic error in 'bad_t_type.stan', line 26, column 10 to line 32, column 27: 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], matrix, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], matrix, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_t_type_control.stan @@ -95,10 +125,16 @@ Semantic error in 'bad_t_type_control.stan', line 26, column 10 to line 32, colu 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], matrix, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], matrix, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_theta_type.stan @@ -112,10 +148,16 @@ Semantic error in 'bad_theta_type.stan', line 27, column 10 to line 33, column 2 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[,], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[,], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_theta_type_control.stan @@ -129,10 +171,16 @@ Semantic error in 'bad_theta_type_control.stan', line 27, column 10 to line 33, 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[,], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[,], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_ts_type.stan @@ -146,10 +194,16 @@ Semantic error in 'bad_ts_type.stan', line 26, column 10 to line 32, column 27: 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[,], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[,], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_ts_type_control.stan @@ -163,10 +217,16 @@ Semantic error in 'bad_ts_type_control.stan', line 26, column 10 to line 32, col 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[,], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[,], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_x_int_type.stan @@ -180,10 +240,16 @@ Semantic error in 'bad_x_int_type.stan', line 26, column 10 to line 32, column 2 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[,]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[,]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_x_int_type_control.stan @@ -197,10 +263,16 @@ Semantic error in 'bad_x_int_type_control.stan', line 26, column 10 to line 32, 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[,], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[,], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_x_type.stan @@ -214,10 +286,16 @@ Semantic error in 'bad_x_type.stan', line 27, column 10 to line 33, column 27: 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], vector[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], vector[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_x_type_control.stan @@ -231,10 +309,16 @@ Semantic error in 'bad_x_type_control.stan', line 27, column 10 to line 33, colu 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], vector[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], vector[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_x_var_type.stan @@ -248,10 +332,16 @@ Semantic error in 'bad_x_var_type.stan', line 26, column 10 to line 32, column 2 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_x_var_type_adams_control.stan @@ -265,10 +355,16 @@ Semantic error in 'bad_x_var_type_adams_control.stan', line 26, column 10 to lin 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_x_var_type_control.stan @@ -282,10 +378,16 @@ Semantic error in 'bad_x_var_type_control.stan', line 26, column 10 to line 32, 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_y_type.stan @@ -299,10 +401,16 @@ Semantic error in 'bad_y_type.stan', line 26, column 10 to line 32, column 27: 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[,], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[,], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../../install/default/bin/stanc bad_y_type_control.stan @@ -316,8 +424,14 @@ Semantic error in 'bad_y_type_control.stan', line 26, column 10 to line 32, colu 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[,], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_adams'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[,], real, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] diff --git a/test/integration/bad/ode/stanc.expected b/test/integration/bad/ode/stanc.expected index 232aa4d20b..c0753509cd 100644 --- a/test/integration/bad/ode/stanc.expected +++ b/test/integration/bad/ode/stanc.expected @@ -10,10 +10,16 @@ Semantic error in 'bad_bdf_control_function_return.stan', line 13, column 6 to l 15: 10, 10, 10); ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real, real[], real, real[], real[], real[], int[], int, int, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], int, int, int) + where + = (real, real[], real[], real[], int[]) => real $ ../../../../../install/default/bin/stanc bad_fun_type.stan @@ -27,9 +33,14 @@ Semantic error in 'bad_fun_type.stan', line 27, column 10 to line 33, column 27: 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real[], real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real[], real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_fun_type_bdf.stan @@ -43,10 +54,16 @@ Semantic error in 'bad_fun_type_bdf.stan', line 27, column 10 to line 33, column 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real[], real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real[], real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_fun_type_bdf_control.stan @@ -60,10 +77,16 @@ Semantic error in 'bad_fun_type_bdf_control.stan', line 27, column 10 to line 33 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real[], real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], real, real, int) + where + = (real[], real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_fun_type_rk45.stan @@ -77,10 +100,16 @@ Semantic error in 'bad_fun_type_rk45.stan', line 27, column 10 to line 33, colum 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real[], real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real[], real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_fun_type_rk45_control.stan @@ -94,10 +123,16 @@ Semantic error in 'bad_fun_type_rk45_control.stan', line 27, column 10 to line 3 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real[], real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], real, real, int) + where + = (real[], real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_t_type.stan @@ -111,9 +146,14 @@ Semantic error in 'bad_t_type.stan', line 26, column 10 to line 32, column 27: 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], matrix, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], matrix, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_t_type_bdf.stan @@ -127,10 +167,16 @@ Semantic error in 'bad_t_type_bdf.stan', line 26, column 10 to line 32, column 2 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], matrix, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], matrix, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_t_type_bdf_control.stan @@ -144,10 +190,16 @@ Semantic error in 'bad_t_type_bdf_control.stan', line 26, column 10 to line 32, 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], matrix, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], matrix, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_t_type_rk45.stan @@ -161,10 +213,16 @@ Semantic error in 'bad_t_type_rk45.stan', line 26, column 10 to line 32, column 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], matrix, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], matrix, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_t_type_rk45_control.stan @@ -178,10 +236,16 @@ Semantic error in 'bad_t_type_rk45_control.stan', line 26, column 10 to line 32, 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], matrix, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], matrix, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_theta_type.stan @@ -195,9 +259,14 @@ Semantic error in 'bad_theta_type.stan', line 27, column 10 to line 33, column 2 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[,], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[,], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_theta_type_bdf.stan @@ -211,10 +280,16 @@ Semantic error in 'bad_theta_type_bdf.stan', line 27, column 10 to line 33, colu 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[,], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[,], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_theta_type_bdf_control.stan @@ -228,10 +303,16 @@ Semantic error in 'bad_theta_type_bdf_control.stan', line 27, column 10 to line 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[,], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[,], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_theta_type_rk45.stan @@ -245,10 +326,16 @@ Semantic error in 'bad_theta_type_rk45.stan', line 27, column 10 to line 33, col 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[,], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[,], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_theta_type_rk45_control.stan @@ -262,10 +349,16 @@ Semantic error in 'bad_theta_type_rk45_control.stan', line 27, column 10 to line 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[,], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[,], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_ts_type.stan @@ -279,9 +372,14 @@ Semantic error in 'bad_ts_type.stan', line 26, column 10 to line 32, column 27: 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[,], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[,], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_ts_type_bdf.stan @@ -295,10 +393,16 @@ Semantic error in 'bad_ts_type_bdf.stan', line 26, column 10 to line 32, column 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[,], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[,], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_ts_type_bdf_control.stan @@ -312,10 +416,16 @@ Semantic error in 'bad_ts_type_bdf_control.stan', line 26, column 10 to line 32, 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[,], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[,], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_ts_type_rk45.stan @@ -329,10 +439,16 @@ Semantic error in 'bad_ts_type_rk45.stan', line 26, column 10 to line 32, column 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[,], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[,], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_ts_type_rk45_control.stan @@ -346,10 +462,16 @@ Semantic error in 'bad_ts_type_rk45_control.stan', line 26, column 10 to line 32 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[,], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[,], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_int_type.stan @@ -363,9 +485,14 @@ Semantic error in 'bad_x_int_type.stan', line 26, column 10 to line 32, column 2 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[,]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[,]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_int_type_bdf.stan @@ -379,10 +506,16 @@ Semantic error in 'bad_x_int_type_bdf.stan', line 26, column 10 to line 32, colu 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[,]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[,]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_int_type_bdf_control.stan @@ -396,10 +529,16 @@ Semantic error in 'bad_x_int_type_bdf_control.stan', line 26, column 10 to line 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[,], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[,], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_int_type_rk45.stan @@ -413,10 +552,16 @@ Semantic error in 'bad_x_int_type_rk45.stan', line 26, column 10 to line 32, col 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[,]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[,]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_int_type_rk45_control.stan @@ -430,10 +575,16 @@ Semantic error in 'bad_x_int_type_rk45_control.stan', line 26, column 10 to line 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[,], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[,], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_type.stan @@ -447,9 +598,14 @@ Semantic error in 'bad_x_type.stan', line 27, column 10 to line 33, column 27: 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], vector[], int[]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], vector[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_type_bdf.stan @@ -463,10 +619,16 @@ Semantic error in 'bad_x_type_bdf.stan', line 27, column 10 to line 33, column 2 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], vector[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], vector[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_type_bdf_control.stan @@ -480,10 +642,16 @@ Semantic error in 'bad_x_type_bdf_control.stan', line 27, column 10 to line 33, 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], vector[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], vector[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_type_rk45.stan @@ -497,10 +665,16 @@ Semantic error in 'bad_x_type_rk45.stan', line 27, column 10 to line 33, column 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], vector[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], vector[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_type_rk45_control.stan @@ -514,10 +688,16 @@ Semantic error in 'bad_x_type_rk45_control.stan', line 27, column 10 to line 33, 29: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], vector[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], vector[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_var_type.stan @@ -531,9 +711,14 @@ Semantic error in 'bad_x_var_type.stan', line 26, column 10 to line 32, column 2 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_var_type_bdf.stan @@ -547,10 +732,16 @@ Semantic error in 'bad_x_var_type_bdf.stan', line 26, column 10 to line 32, colu 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_var_type_bdf_control.stan @@ -564,10 +755,16 @@ Semantic error in 'bad_x_var_type_bdf_control.stan', line 26, column 10 to line 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_var_type_rk45.stan @@ -581,10 +778,16 @@ Semantic error in 'bad_x_var_type_rk45.stan', line 26, column 10 to line 32, col 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_x_var_type_rk45_control.stan @@ -598,10 +801,16 @@ Semantic error in 'bad_x_var_type_rk45_control.stan', line 26, column 10 to line 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_y_type.stan @@ -615,9 +824,14 @@ Semantic error in 'bad_y_type.stan', line 26, column 10 to line 32, column 27: 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[,], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[,], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_y_type_bdf.stan @@ -631,10 +845,16 @@ Semantic error in 'bad_y_type_bdf.stan', line 26, column 10 to line 32, column 2 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[,], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[,], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_y_type_bdf_control.stan @@ -648,10 +868,16 @@ Semantic error in 'bad_y_type_bdf_control.stan', line 26, column 10 to line 32, 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[,], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_bdf'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[,], real, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_y_type_rk45.stan @@ -665,10 +891,16 @@ Semantic error in 'bad_y_type_rk45.stan', line 26, column 10 to line 32, column 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[,], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[,], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../../install/default/bin/stanc bad_y_type_rk45_control.stan @@ -682,8 +914,14 @@ Semantic error in 'bad_y_type_rk45_control.stan', line 26, column 10 to line 32, 28: t0, // initial time ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[,], real, real[], real[], real[], int[], real, real, int. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[,], real, real[], real[], real[], int[], real, real, int) + where + = (real, real[], real[], real[], int[]) => real[] diff --git a/test/integration/bad/stanc.expected b/test/integration/bad/stanc.expected index 619709b280..8ca35694ab 100644 --- a/test/integration/bad/stanc.expected +++ b/test/integration/bad/stanc.expected @@ -1384,7 +1384,8 @@ Semantic error in 'functions-bad21.stan', line 13, column 11 to column 21: Ill-typed arguments supplied to function 'my_fun3'. Available signatures: (data real) => real -Instead supplied arguments of incompatible type: real. +Instead supplied arguments of incompatible type: +(real) $ ../../../../install/default/bin/stanc functions-bad22-ode.stan @@ -1398,10 +1399,16 @@ Semantic error in 'functions-bad22-ode.stan', line 15, column 11 to column 82: 17: ------------------------------------------------- -Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[]) => real[,] -((real, real[], real[], data real[], data int[]) => real[], real[], real, real[], real[], data real[], data int[], data real, data real, data real) => real[,] -Instead supplied arguments of incompatible type: (real, real[], real[], real[], int[]) => real[], real[], real, real[], real[], real[], int[]. +Ill-typed arguments supplied to function 'integrate_ode_rk45'. Available signatures: +(, real[], real, real[], real[], data real[], data int[]) => real[,] +(, real[], real, real[], real[], data real[], data int[], data real, data real, data real) => +real[,] + where + = (real, real[], real[], data real[], data int[]) => real[] +Instead supplied arguments of incompatible type: +(, real[], real, real[], real[], real[], int[]) + where + = (real, real[], real[], real[], int[]) => real[] $ ../../../../install/default/bin/stanc functions-bad23.stan @@ -1801,7 +1808,6 @@ Semantic error in 'op_divide_bad.stan', line 7, column 6 to column 11: Ill-typed arguments supplied to infix operator /. Available signatures: (row_vector, matrix) => row_vector (matrix, matrix) => matrix - (int, int) => int (real, real) => real (vector, real) => vector @@ -1823,7 +1829,6 @@ Semantic error in 'op_divide_right_bad.stan', line 7, column 6 to column 11: Ill-typed arguments supplied to infix operator /. Available signatures: (row_vector, matrix) => row_vector (matrix, matrix) => matrix - (int, int) => int (real, real) => real (vector, real) => vector @@ -2149,7 +2154,7 @@ Semantic error in 'propto-bad1.stan', line 2, column 14 to column 37: 3: } ------------------------------------------------- -Ill-typed arguments supplied to function 'normal_lupdf'. Available signatures: +Ill-typed arguments supplied to function 'normal_lupdf'. Available signatures: (real, real, real) => real (real, real, vector) => real (real, real, row_vector) => real @@ -2214,7 +2219,8 @@ Ill-typed arguments supplied to function 'normal_lupdf'. Available signatures: (real[], real[], vector) => real (real[], real[], row_vector) => real (real[], real[], real[]) => real -Instead supplied arguments of incompatible type: int, int[], int. +Instead supplied arguments of incompatible type: +(int, int[], int) $ ../../../../install/default/bin/stanc real-pdf.stan @@ -2511,7 +2517,7 @@ Semantic error in 'signature_function_known.stan', line 8, column 21 to column 5 9: } ------------------------------------------------- -Ill-typed arguments supplied to function 'bernoulli_logit_log'. Available signatures: +Ill-typed arguments supplied to function 'bernoulli_logit_log'. Available signatures: (int, real) => real (int, vector) => real (int, row_vector) => real @@ -2520,7 +2526,8 @@ Ill-typed arguments supplied to function 'bernoulli_logit_log'. Available signat (int[], vector) => real (int[], row_vector) => real (int[], real[]) => real -Instead supplied arguments of incompatible type: vector, vector. +Instead supplied arguments of incompatible type: +(vector, vector) $ ../../../../install/default/bin/stanc signature_function_unknown.stan From 9bc95ff6293cd7fb861f1c0593d1a4797421c47f Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Tue, 1 Dec 2020 19:18:52 +0200 Subject: [PATCH 08/24] enable reduce_sum closures --- src/frontend/Semantic_check.ml | 2 +- src/stan_math_backend/Expression_gen.ml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 4f051a27c2..001352a980 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -338,7 +338,7 @@ let semantic_check_reduce_sum ~is_cond_dist ~loc id es = ( ((_, sliced_arg_fun_type) as sliced_arg_fun) :: (_, UInt) :: (_, UInt) :: fun_args , ReturnType UReal - , false ); _ }; _ } + , _ ); _ }; _ } :: sliced :: {emeta= {type_= UInt; _}; _} :: args when arg_match sliced_arg_fun sliced && List.mem Stan_math_signatures.reduce_sum_slice_types diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index c3b6dd2788..d529b3c088 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -326,6 +326,11 @@ and gen_fun_app ppf fname es = in ( strf "%s<%s%s>" fname normalized_dist_functor propto_template , grainsize :: container :: msgs :: tl ) + | ( x + , ({meta= {type_= UFun (_, _, true); _}; _} as f) + :: grainsize :: container :: tl ) + when Stan_math_signatures.is_reduce_sum_fn x -> + (fname, grainsize :: container :: msgs :: f :: tl) | x, f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps :: tl when Stan_math_signatures.is_variadic_ode_fn x && String.is_suffix fname From a4c0157f18f5e452e3b4a6ca566362f2deb9c338 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Thu, 3 Dec 2020 23:01:11 +0200 Subject: [PATCH 09/24] fix --- src/stan_math_backend/Stan_math_code_gen.ml | 11 ++++++++--- test/integration/good/code-gen/cpp.expected | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 8544e23241..80fbead596 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -295,7 +295,7 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = let pp_member ppf (i, (adlevel, name, type_)) = let scalar = if arg_needs_template (adlevel, name, type_) then sprintf "F%d__" i - else "double" + else stantype_prim_str type_ in pf ppf "%a %s;" pp_unsizedtype_custom_scalar (scalar, type_) name in @@ -321,9 +321,14 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = ctor_args (list ~sep:comma pp_init) fdcaptures pp_count () in let pp_op ppf () = - let pp_sig = - pp_signature false (Some (return_arg_types false fdcaptures)) + let scalar_types = + List.mapi fdcaptures ~f:(fun i ((_, _, ut) as a) -> + if not (arg_needs_template a) then None + else if UnsizedType.is_fun_type ut then + Some (sprintf "typename F%d__::captured_scalar_t__" i) + else Some (sprintf "F%d__" i) ) in + let pp_sig = pp_signature false (Some scalar_types) in pf ppf "%a const @,{@,return %a;@,}" pp_sig (fdrt, "operator()", fdargs) pp_call_str diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 4b0ebe1c0f..51b7115842 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -978,7 +978,7 @@ class bar_L23C9_cfunctor__ { : p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} template - stan::promote_args_t, T0__, + stan::promote_args_t> operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const { From 58ec0a0ccfddf269ad388b4d9c6b6092aa032568 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sat, 19 Dec 2020 11:48:28 +0200 Subject: [PATCH 10/24] enable capture-by-reference --- src/frontend/Ast.ml | 6 +- src/frontend/Ast_to_Mir.ml | 6 +- src/frontend/Semantic_check.ml | 12 ++- src/middle/Program.ml | 15 ++- src/middle/UnsizedType.ml | 2 + src/stan_math_backend/Stan_math_code_gen.ml | 109 +++++++++++--------- test/integration/good/code-gen/cpp.expected | 8 +- 7 files changed, 103 insertions(+), 55 deletions(-) diff --git a/src/frontend/Ast.ml b/src/frontend/Ast.ml index 59498a115f..79da86eb4f 100644 --- a/src/frontend/Ast.ml +++ b/src/frontend/Ast.ml @@ -23,7 +23,11 @@ type fun_kind = StanLib | UserDefined | Closure type capture_info = string - * (Middle.UnsizedType.autodifftype * Middle.UnsizedType.t * string) list + * ( Middle.UnsizedType.capturetype + * Middle.UnsizedType.autodifftype + * Middle.UnsizedType.t + * string ) + list [@@deriving compare, sexp, hash] (** Expression shapes (used for both typed and untyped expressions, where we diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index dcb02a7561..1f840c110b 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -678,7 +678,9 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = ; fdname= implname ; fdcaptures= Some - (List.map ~f:(fun (ad, ty, id) -> (ad, id, ty)) captures) + (List.map + ~f:(fun (ref, ad, ty, id) -> (ref, ad, id, ty)) + captures) ; fdargs= List.map ~f:trans_arg arguments ; fdbody= trans_stmt ud_dists @@ -690,7 +692,7 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = let type_ = UnsizedType.UFun (arguments, returntype, true) in let captures = List.map - ~f:(fun (adlevel, type_, id) -> + ~f:(fun (_, adlevel, type_, id) -> Expr. { Fixed.pattern= Var id ; meta= Typed.Meta.{adlevel; type_; loc= mloc} } ) diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 001352a980..b6820015fe 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -74,6 +74,15 @@ let calculate_autodifftype cf at ut = UnsizedType.AutoDiffable | _ -> DataOnly +let calculate_capturetype cf at ut = + if UnsizedType.is_scalar_type ut || UnsizedType.is_fun_type ut then + UnsizedType.Copy + else + match at with + | (Data | TData) when cf.current_block <> Functions -> Ref + | GQuant -> Ref + | _ -> Copy + let has_int_type ue = ue.emeta.type_ = UInt let has_int_array_type ue = ue.emeta.type_ = UArray UInt @@ -1786,7 +1795,8 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = | Some (block, type_) -> Symbol_table.set_read_only vm name ; Some - ( calculate_autodifftype cf block type_ + ( calculate_capturetype cf block type_ + , calculate_autodifftype cf block type_ , type_ , name ) ) ) else None diff --git a/src/middle/Program.ml b/src/middle/Program.ml index 95d544c47b..1443118b56 100644 --- a/src/middle/Program.ml +++ b/src/middle/Program.ml @@ -2,6 +2,11 @@ open Core_kernel open Common open Helpers +type capture_decl = + (UnsizedType.capturetype * UnsizedType.autodifftype * string * UnsizedType.t) + list +[@@deriving sexp, hash, map] + type fun_arg_decl = (UnsizedType.autodifftype * string * UnsizedType.t) list [@@deriving sexp, hash, map] @@ -9,7 +14,12 @@ type 'a fun_def = { fdrt: UnsizedType.t option ; fdname: string ; fdcaptures: - (UnsizedType.autodifftype * string * UnsizedType.t) list option + ( UnsizedType.capturetype + * UnsizedType.autodifftype + * string + * UnsizedType.t ) + list + option (* If fdcaptures is not None, this is a closure. *) ; fdargs: (UnsizedType.autodifftype * string * UnsizedType.t) list ; fdbody: @@ -59,6 +69,9 @@ type ('a, 'b) t = ; prog_path: string } [@@deriving sexp, map, fold] +let captures_to_args : capture_decl -> fun_arg_decl = + List.map ~f:(fun (_, ad, id, ty) -> (ad, id, ty)) + let map_stmts f p = { p with prepare_data= f p.prepare_data diff --git a/src/middle/UnsizedType.ml b/src/middle/UnsizedType.ml index d295a53f5a..3edce3379c 100644 --- a/src/middle/UnsizedType.ml +++ b/src/middle/UnsizedType.ml @@ -13,6 +13,8 @@ type t = and autodifftype = DataOnly | AutoDiffable +and capturetype = Ref | Copy + and returntype = Void | ReturnType of t [@@deriving compare, hash, sexp] let pp_autodifftype ppf = function diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 80fbead596..37b0a24720 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -53,36 +53,34 @@ let pp_located ppf _ = (** Detect if argument requires C++ template *) let arg_needs_template = function - | UnsizedType.DataOnly, _, t -> UnsizedType.is_fun_type t - | _, _, t when UnsizedType.contains_int t -> false - | _ -> true - -let arg_needs_template_eigen = function | UnsizedType.DataOnly, _, t -> UnsizedType.(is_eigen_type t || is_fun_type t) | _, _, t when UnsizedType.contains_int t -> false | _ -> true +let capture_needs_template = function + | _, UnsizedType.DataOnly, _, t -> UnsizedType.is_fun_type t + | _, _, _, t when UnsizedType.contains_int t -> false + | _ -> true + (** Print template arguments for C++ functions that need templates @param args A pack of `Program.fun_arg_decl` containing functions to detect templates. @return A list of arguments with template parameter names added. *) -let maybe_templated_arg_types prefix (args : Program.fun_arg_decl) = +let maybe_templated_arg_types (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i a -> match arg_needs_template a with - | true -> Some (sprintf "%s%d__" prefix i) + | true -> Some (sprintf "T%d__" i) | false -> None ) -let maybe_templated_arg_types_eigen prefix (args : Program.fun_arg_decl) = +let maybe_templated_captures (args : Program.capture_decl) = List.mapi args ~f:(fun i a -> - match arg_needs_template_eigen a with - | true -> Some (sprintf "%s%d__" prefix i) + match capture_needs_template a with + | true -> Some (sprintf "F%d__" i) | false -> None ) -let return_arg_types eigen (args : Program.fun_arg_decl) = - let prefix, needs_template = - if eigen then ("T", arg_needs_template_eigen) else ("F", arg_needs_template) - in +let return_arg_types (args : Program.fun_arg_decl) = + let prefix, needs_template = ("T", arg_needs_template) in List.mapi args ~f:(fun i ((_, _, ut) as a) -> if not (needs_template a) then None else if UnsizedType.is_fun_type ut then @@ -93,8 +91,8 @@ let return_arg_types eigen (args : Program.fun_arg_decl) = let%expect_test "arg types templated correctly" = [(AutoDiffable, "xreal", UReal); (DataOnly, "yint", UInt)] - |> maybe_templated_arg_types "T" - |> List.filter_opt |> String.concat ~sep:"," |> print_endline ; + |> maybe_templated_arg_types |> List.filter_opt |> String.concat ~sep:"," + |> print_endline ; [%expect {| T0__ |}] (** Print the code for promoting stan real types @@ -161,16 +159,16 @@ let pp_arg ppf (custom_scalar_opt, (_, name, ut)) = | Some scalar -> scalar | None -> stantype_prim_str ut in - pf ppf "const %a& %s" pp_unsizedtype_custom_scalar (scalar, ut) name + pf ppf "const %a& %s" pp_unsizedtype_custom_scalar_eigen_exprs (scalar, ut) + name -let pp_arg_eigen ppf (custom_scalar_opt, (_, name, ut)) = +let pp_capture ppf (custom_scalar_opt, (_, _, name, ut)) = let scalar = match custom_scalar_opt with | Some scalar -> scalar | None -> stantype_prim_str ut in - pf ppf "const %a& %s" pp_unsizedtype_custom_scalar_eigen_exprs (scalar, ut) - name + pf ppf "const %a& %s" pp_unsizedtype_custom_scalar (scalar, ut) name (** [pp_located_error_b] automatically adds a Block wrapper *) let pp_located_error_b ppf body_stmts = @@ -183,16 +181,20 @@ let typename = ( ^ ) "typename " (** Construct an object with it's needed templates for function signatures. @param fdargs A sexp list of strings representing C++ types. *) -let get_templates_and_args eigen prefix fdargs = - let pp_arg, argtypetemplates = - if eigen then (pp_arg_eigen, maybe_templated_arg_types_eigen prefix fdargs) - else (pp_arg, maybe_templated_arg_types prefix fdargs) - in +let get_templates_and_args fdargs = + let argtypetemplates = maybe_templated_arg_types fdargs in ( List.filter_opt argtypetemplates , List.map ~f:(fun a -> strf "%a" pp_arg a) (List.zip_exn argtypetemplates fdargs) ) +let get_templates_and_captures fdcaptures = + let argtypetemplates = maybe_templated_captures fdcaptures in + ( List.filter_opt argtypetemplates + , List.map + ~f:(fun a -> strf "%a" pp_capture a) + (List.zip_exn argtypetemplates fdcaptures) ) + (** Print the C++ template parameter decleration before a function. @param ppf A pretty printer. *) @@ -213,7 +215,7 @@ let pp_signature is_reduce_sum_fn captures ppf (fdrt, fdname, fdargs) = else if is_rng then (["base_rng__"], ["RNG"]) else ([], []) in - let argtypetemplates, args = get_templates_and_args true "T" fdargs in + let argtypetemplates, args = get_templates_and_args fdargs in let templates = ( if (is_dist || is_lp) && not is_reduce_sum_fn then ["bool propto__"] else [] ) @@ -222,8 +224,8 @@ let pp_signature is_reduce_sum_fn captures ppf (fdrt, fdname, fdargs) = pp_template_decorator ppf templates ; let rt_templates = match captures with - | Some c -> c @ return_arg_types true fdargs - | None -> return_arg_types true fdargs + | Some c -> c @ return_arg_types fdargs + | None -> return_arg_types fdargs in pp_returntype ppf rt_templates fdrt ; let args, variadic_args = @@ -264,7 +266,7 @@ let pp_rs_functor ppf (fdrt, fdname, fdargs) = let pp_function_body ppf (fdrt, fdname, fdargs, fdbody) = let pp_body ppf (Stmt.Fixed.({pattern; _}) as fdbody) = pf ppf "@[using local_scalar_t__ = %a;@]@," pp_promoted_scalar - (return_arg_types true fdargs) ; + (return_arg_types fdargs) ; if List.exists ~f:(fun (_, _, t) -> UnsizedType.is_eigen_type t) fdargs then pp_eigen_arg_to_ref ppf fdargs ; if not (is_user_lp fdname || is_user_dist fdname) then ( @@ -292,14 +294,20 @@ let pp_function_body ppf (fdrt, fdname, fdargs, fdbody) = let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = let clsname = fdname ^ "_cfunctor__" in - let pp_member ppf (i, (adlevel, name, type_)) = + let pp_member ppf (i, (ref, adlevel, name, type_)) = let scalar = - if arg_needs_template (adlevel, name, type_) then sprintf "F%d__" i + if capture_needs_template (ref, adlevel, name, type_) then + sprintf "F%d__" i else stantype_prim_str type_ in - pf ppf "%a %s;" pp_unsizedtype_custom_scalar (scalar, type_) name + match ref with + | UnsizedType.Ref -> + pf ppf "const %a& %s;" pp_unsizedtype_custom_scalar (scalar, type_) + name + | UnsizedType.Copy -> + pf ppf "%a %s;" pp_unsizedtype_custom_scalar (scalar, type_) name in - let templates, ctor_args = get_templates_and_args false "F" fdcaptures in + let templates, ctor_args = get_templates_and_captures fdcaptures in let pp_template ppf b = if not (List.is_empty templates) then ( if b then pf ppf "template" ; @@ -308,11 +316,11 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = if b then pf ppf "@," ) in let pp_ctor ppf name = - let pp_init ppf (_, id, _) = pf ppf "%s(%s__)" id id in + let pp_init ppf (_, _, id, _) = pf ppf "%s(%s__)" id id in let pp_count ppf () = if not (List.is_empty fdcaptures) then comma ppf () ; pf ppf "vars_count__(count_vars(@[%a@]))" (list ~sep:comma string) - (List.map ~f:(fun (_, id, _) -> id ^ "__") fdcaptures) + (List.map ~f:(fun (_, _, id, _) -> id ^ "__") fdcaptures) in pf ppf "%s(const %s%a&) = default ;@ " name name pp_template false ; pf ppf "%s(%s%a&&) = default ;@ " name name pp_template false ; @@ -322,8 +330,8 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = in let pp_op ppf () = let scalar_types = - List.mapi fdcaptures ~f:(fun i ((_, _, ut) as a) -> - if not (arg_needs_template a) then None + List.mapi fdcaptures ~f:(fun i ((_, _, _, ut) as a) -> + if not (capture_needs_template a) then None else if UnsizedType.is_fun_type ut then Some (sprintf "typename F%d__::captured_scalar_t__" i) else Some (sprintf "F%d__" i) ) @@ -333,7 +341,9 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = (fdrt, "operator()", fdargs) pp_call_str ( fdname ^ "_impl__" - , List.map ~f:(fun (_, name, _) -> name) (fdcaptures @ fdargs) + , List.map + ~f:(fun (_, name, _) -> name) + (Program.captures_to_args fdcaptures @ fdargs) @ ["pstream__"] ) in let pp_api ppf () = @@ -345,8 +355,8 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = pf ppf "using captured_scalar_t__ = stan::return_type_t%a;@," pp_template false ; let templates = - List.filter_mapi fdcaptures ~f:(fun i (ad, id, ty) -> - if not (arg_needs_template (ad, id, ty)) then None + List.filter_mapi fdcaptures ~f:(fun i (r, ad, id, ty) -> + if not (capture_needs_template (r, ad, id, ty)) then None else if UnsizedType.is_fun_type ty then Some (sprintf "typename F%d__::ValueOf__" i) else Some "double" ) @@ -354,7 +364,9 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = pf ppf "using ValueOf__ = %s<@[%a@]>;" clsname (list ~sep:comma string) templates ) in - let pp f = list ~sep:comma (fun ppf (_, id, _) -> pf ppf "%s(%s)" f id) in + let pp f = + list ~sep:comma (fun ppf (_, _, id, _) -> pf ppf "%s(%s)" f id) + in let valueof ppf () = pf ppf "auto value_of__() const {@ return ValueOf__(%a);@ }" (pp "value_of") fdcaptures @@ -365,11 +377,11 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = in let zeros ppf () = pf ppf "void zero_adjoints__() {@ @[%a@]@ }" - (list ~sep:cut (fun ppf (_, id, _) -> + (list ~sep:cut (fun ppf (_, _, id, _) -> pf ppf "stan::math::zero_adjoints(%s);" id )) fdcaptures in - let pp = list ~sep:comma (fun ppf (_, id, _) -> string ppf id) in + let pp = list ~sep:comma (fun ppf (_, _, id, _) -> string ppf id) in let comma ppf () = if not (List.is_empty fdcaptures) then comma ppf () in let accumulate ppf () = pf ppf @@ -398,7 +410,7 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = pf ppf "%aauto %s_make__(@[%a@]) {@ return %s%a(@[%a@]);@ }@," pp_template true fdname (list ~sep:comma string) ctor_args clsname pp_template false (list ~sep:comma string) - (List.map ~f:(fun (_, id, _) -> id) fdcaptures) + (List.map ~f:(fun (_, _, id, _) -> id) fdcaptures) let pp_forward_decl funs_used_in_reduce_sum ppf Program.({fdrt; fdname; fdcaptures; fdargs; fdbody; _}) = @@ -421,7 +433,8 @@ let pp_forward_decl funs_used_in_reduce_sum ppf ( fdname , List.map ~f:(fun (_, name, _) -> name) fdargs @ ["pstream__"] ) ) | Some captures -> - pf ppf "%a ;" pp_sig (fdrt, fdname ^ "_impl__", captures @ fdargs) ; + pf ppf "%a ;" pp_sig + (fdrt, fdname ^ "_impl__", Program.captures_to_args captures @ fdargs) ; pp_closure ppf (fdrt, fdname, captures, fdargs) let get_impl = function @@ -430,7 +443,11 @@ let get_impl = function Some (fdrt, fdname, fdargs, fdbody) | {fdrt; fdname; fdcaptures= Some fdcaptures; fdargs; fdbody= Some fdbody; _} -> - Some (fdrt, fdname ^ "_impl__", fdcaptures @ fdargs, fdbody) + Some + ( fdrt + , fdname ^ "_impl__" + , Program.captures_to_args fdcaptures @ fdargs + , fdbody ) (* Creates functions outside the model namespaces which only call the ones inside the namespaces *) diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 51b7115842..f11fed373c 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -964,9 +964,9 @@ class bar_L23C9_cfunctor__ { F0__ p; std::vector pa; Eigen::Matrix pv; - Eigen::Matrix v; + const Eigen::Matrix& v; double x; - std::vector y; + const std::vector& y; public: const size_t vars_count__; bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; @@ -1021,9 +1021,9 @@ foo_L9C9_impl__(const T0__& v, const double& x, const std::vector& y, const T3__& z, const T4__& r, std::ostream* pstream__) ; class foo_L9C9_cfunctor__ { - Eigen::Matrix v; + const Eigen::Matrix& v; double x; - std::vector y; + const std::vector& y; public: const size_t vars_count__; foo_L9C9_cfunctor__(const foo_L9C9_cfunctor__&) = default ; From 935bc54ede4a9c75d625f65cd61c7a8b1f36cad6 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Fri, 19 Feb 2021 20:15:18 +0200 Subject: [PATCH 11/24] tweak C++ API --- src/stan_math_backend/Expression_gen.ml | 2 +- src/stan_math_backend/Stan_math_code_gen.ml | 8 +- test/integration/good/code-gen/closures4.stan | 2 +- test/integration/good/code-gen/closures5.stan | 14 + test/integration/good/code-gen/cpp.expected | 571 ++++++++++++++++-- 5 files changed, 551 insertions(+), 46 deletions(-) create mode 100644 test/integration/good/code-gen/closures5.stan diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index c81c165b03..9a00aa84ee 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -330,7 +330,7 @@ and gen_fun_app ppf fname es = , ({meta= {type_= UFun (_, _, true); _}; _} as f) :: grainsize :: container :: tl ) when Stan_math_signatures.is_reduce_sum_fn x -> - (fname, grainsize :: container :: msgs :: f :: tl) + (fname ^ "", grainsize :: container :: msgs :: f :: tl) | x, f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps :: tl when Stan_math_signatures.is_variadic_ode_fn x && String.is_suffix fname diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 02349903b3..960610f13d 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -398,10 +398,14 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = return stan::math::save_varis(dest%a%a);@ }" comma () pp fdcaptures in + let count ppf () = + pf ppf "size_t count_vars__() const {@ return vars_count__;@ }" + in pf ppf "@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ \ - @[%a@]@ " - pp_using () valueof () deepcopy () zeros () accumulate () save () ; + @[%a@]@ @[%a@]@ " + pp_using () count () valueof () deepcopy () zeros () accumulate () save + () ; () in pf ppf diff --git a/test/integration/good/code-gen/closures4.stan b/test/integration/good/code-gen/closures4.stan index 9acfd4cf6d..3042502a93 100644 --- a/test/integration/good/code-gen/closures4.stan +++ b/test/integration/good/code-gen/closures4.stan @@ -8,10 +8,10 @@ functions { } } data { - vector[2] k[1]; real ts[5]; } parameters { + vector[2] k[1]; vector[2] init; } transformed parameters { diff --git a/test/integration/good/code-gen/closures5.stan b/test/integration/good/code-gen/closures5.stan new file mode 100644 index 0000000000..19287f9c02 --- /dev/null +++ b/test/integration/good/code-gen/closures5.stan @@ -0,0 +1,14 @@ +data { + int N; +} +parameters { + real mu; + real x[N]; +} +model { + functions + real foo(real[] slice, int start, int end) { + return normal_lpdf(slice|mu,1); + } + target += reduce_sum(foo, x, 1); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index d0465d2e46..b636fd4095 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -898,6 +898,7 @@ stan::value_type_t> using captured_scalar_t__ = stan::return_type_t; using ValueOf__ = bar_L23C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(p), value_of(pa), value_of(pv), value_of(v), value_of(x), value_of(y)); } auto deep_copy_vars__() const { @@ -951,6 +952,7 @@ stan::value_type_t> } using captured_scalar_t__ = double;using ValueOf__ = foo_L9C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(v), value_of(x), value_of(y)); } auto deep_copy_vars__() const { @@ -1589,6 +1591,7 @@ T0__> using captured_scalar_t__ = stan::return_type_t; using ValueOf__ = bar_L7C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(foo)); } auto deep_copy_vars__() const { return bar_L7C9_cfunctor__(deep_copy_vars(foo)); } @@ -1628,6 +1631,7 @@ T0__> using captured_scalar_t__ = stan::return_type_t; using ValueOf__ = baz_L16C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(foo)); } auto deep_copy_vars__() const { return baz_L16C9_cfunctor__(deep_copy_vars(foo)); } @@ -1663,6 +1667,7 @@ class foo_L3C9_cfunctor__ { } using captured_scalar_t__ = double;using ValueOf__ = foo_L3C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(); } auto deep_copy_vars__() const { return foo_L3C9_cfunctor__(); } void zero_adjoints__() { } @@ -1696,6 +1701,7 @@ class gar_L22C13_cfunctor__ { } using captured_scalar_t__ = double;using ValueOf__ = gar_L22C13_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(); } auto deep_copy_vars__() const { return gar_L22C13_cfunctor__(); } void zero_adjoints__() { } @@ -1729,6 +1735,7 @@ class goo_L20C9_cfunctor__ { } using captured_scalar_t__ = double;using ValueOf__ = goo_L20C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(); } auto deep_copy_vars__() const { return goo_L20C9_cfunctor__(); } void zero_adjoints__() { } @@ -2280,6 +2287,7 @@ class bar_L13C9_cfunctor__ { } using captured_scalar_t__ = double;using ValueOf__ = bar_L13C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(x)); } auto deep_copy_vars__() const { return bar_L13C9_cfunctor__(deep_copy_vars(x)); } @@ -2318,6 +2326,7 @@ T0__> using captured_scalar_t__ = stan::return_type_t; using ValueOf__ = baz_L23C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(p)); } auto deep_copy_vars__() const { return baz_L23C9_cfunctor__(deep_copy_vars(p)); } @@ -2359,6 +2368,7 @@ T0__> using captured_scalar_t__ = stan::return_type_t; using ValueOf__ = g2_L4C13_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(g), value_of(x)); } auto deep_copy_vars__() const { return g2_L4C13_cfunctor__(deep_copy_vars(g), @@ -2810,10 +2820,11 @@ stan::math::profile_map profiles__; static int current_statement__= 0; static const std::vector locations_array__ = {" (found before start of program)", + " (in 'closures4.stan', line 14, column 4 to column 19)", " (in 'closures4.stan', line 15, column 4 to column 19)", " (in 'closures4.stan', line 18, column 4 to column 44)", - " (in 'closures4.stan', line 11, column 4 to column 19)", - " (in 'closures4.stan', line 12, column 4 to column 15)", + " (in 'closures4.stan', line 11, column 4 to column 15)", + " (in 'closures4.stan', line 14, column 16 to column 17)", " (in 'closures4.stan', line 3, column 8 to line 6, column 9)", " (in 'closures4.stan', line 7, column 8 to column 47)", " (in 'closures4.stan', line 2, column 59 to line 8, column 5)", @@ -2863,6 +2874,7 @@ stan::value_type_t>, -1, 1> using captured_scalar_t__ = stan::return_type_t; using ValueOf__ = harmonic_L4C15_cfunctor__; + size_t count_vars__() const { return vars_count__; } auto value_of__() const { return ValueOf__(value_of(k)); } auto deep_copy_vars__() const { return harmonic_L4C15_cfunctor__(deep_copy_vars(k)); } @@ -2894,9 +2906,9 @@ integrate(const std::vector>& k, (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 5; - auto harmonic = harmonic_L4C15_make__(k); current_statement__ = 6; + auto harmonic = harmonic_L4C15_make__(k); + current_statement__ = 7; return ode_rk45(harmonic, init, 0, ts, pstream__); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2920,7 +2932,7 @@ harmonic_L4C15_impl__(const std::vector>& k, local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 8; + current_statement__ = 9; return elt_multiply(minus(k[(1 - 1)]), y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2932,7 +2944,6 @@ harmonic_L4C15_impl__(const std::vector>& k, class closures4_model final : public model_base_crtp { private: - std::vector> k; std::vector ts; public: @@ -2961,31 +2972,6 @@ class closures4_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - current_statement__ = 3; - context__.validate_dims("data initialization","k","double", - context__.to_vec(1, 2)); - k = std::vector>(1, Eigen::Matrix(2)); - stan::math::fill(k, std::numeric_limits::quiet_NaN()); - - { - std::vector k_flat__; - current_statement__ = 3; - assign(k_flat__, nil_index_list(), context__.vals_r("k"), - "assigning variable k_flat__"); - current_statement__ = 3; - pos__ = 1; - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 3; - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - current_statement__ = 3; - assign(k, - cons_list(index_uni(sym2__), - cons_list(index_uni(sym1__), nil_index_list())), - k_flat__[(pos__ - 1)], "assigning variable k"); - current_statement__ = 3; - pos__ = (pos__ + 1);}} - } current_statement__ = 4; context__.validate_dims("data initialization","ts","double", context__.to_vec(5)); @@ -2994,6 +2980,8 @@ class closures4_model final : public model_base_crtp { current_statement__ = 4; assign(ts, nil_index_list(), context__.vals_r("ts"), "assigning variable ts"); + current_statement__ = 5; + validate_non_negative_index("k", "1", 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3002,6 +2990,7 @@ class closures4_model final : public model_base_crtp { num_params_r__ = 0U; try { + num_params_r__ += 1 * 2; num_params_r__ += 2; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -3024,17 +3013,26 @@ class closures4_model final : public model_base_crtp { (void) function__; // suppress unused var warning try { + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, DUMMY_VAR__); + + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + current_statement__ = 1; + assign(k, cons_list(index_uni(sym1__), nil_index_list()), + in__.vector(2), "assigning variable k");} Eigen::Matrix init; init = Eigen::Matrix(2); stan::math::fill(init, DUMMY_VAR__); - current_statement__ = 1; + current_statement__ = 2; init = in__.vector(2); std::vector> y; y = std::vector>(5, Eigen::Matrix(2)); stan::math::fill(y, DUMMY_VAR__); - current_statement__ = 2; + current_statement__ = 3; assign(y, nil_index_list(), integrate(k, init, ts, pstream__), "assigning variable y"); } catch (const std::exception& e) { @@ -3064,23 +3062,35 @@ class closures4_model final : public model_base_crtp { (void) function__; // suppress unused var warning try { + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + current_statement__ = 1; + assign(k, cons_list(index_uni(sym1__), nil_index_list()), + in__.vector(2), "assigning variable k");} Eigen::Matrix init; init = Eigen::Matrix(2); stan::math::fill(init, std::numeric_limits::quiet_NaN()); - current_statement__ = 1; + current_statement__ = 2; init = in__.vector(2); std::vector> y; y = std::vector>(5, Eigen::Matrix(2)); stan::math::fill(y, std::numeric_limits::quiet_NaN()); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + vars__.emplace_back(k[(sym2__ - 1)][(sym1__ - 1)]);}} for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { vars__.emplace_back(init[(sym1__ - 1)]);} if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; } - current_statement__ = 2; + current_statement__ = 3; assign(y, nil_index_list(), integrate(k, init, ts, pstream__), "assigning variable y"); if (emit_transformed_parameters__) { @@ -3111,25 +3121,51 @@ class closures4_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, std::numeric_limits::quiet_NaN()); + + { + std::vector k_flat__; + current_statement__ = 1; + assign(k_flat__, nil_index_list(), context__.vals_r("k"), + "assigning variable k_flat__"); + current_statement__ = 1; + pos__ = 1; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 1; + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + current_statement__ = 1; + assign(k, + cons_list(index_uni(sym2__), + cons_list(index_uni(sym1__), nil_index_list())), + k_flat__[(pos__ - 1)], "assigning variable k"); + current_statement__ = 1; + pos__ = (pos__ + 1);}} + } Eigen::Matrix init; init = Eigen::Matrix(2); stan::math::fill(init, std::numeric_limits::quiet_NaN()); { std::vector init_flat__; - current_statement__ = 1; + current_statement__ = 2; assign(init_flat__, nil_index_list(), context__.vals_r("init"), "assigning variable init_flat__"); - current_statement__ = 1; + current_statement__ = 2; pos__ = 1; - current_statement__ = 1; + current_statement__ = 2; for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 1; + current_statement__ = 2; assign(init, cons_list(index_uni(sym1__), nil_index_list()), init_flat__[(pos__ - 1)], "assigning variable init"); - current_statement__ = 1; + current_statement__ = 2; pos__ = (pos__ + 1);} } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + vars__.emplace_back(k[(sym1__ - 1)][(sym2__ - 1)]);}} for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { vars__.emplace_back(init[(sym1__ - 1)]);} } catch (const std::exception& e) { @@ -3142,12 +3178,16 @@ class closures4_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { names__.clear(); + names__.emplace_back("k"); names__.emplace_back("init"); names__.emplace_back("y"); } // get_param_names() inline void get_dims(std::vector>& dimss__) const { dimss__.clear(); + dimss__.emplace_back(std::vector{static_cast(1), + static_cast(2)}); + dimss__.emplace_back(std::vector{static_cast(2)}); dimss__.emplace_back(std::vector{static_cast(5), @@ -3161,6 +3201,13 @@ class closures4_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + { + param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { { param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); @@ -3187,6 +3234,13 @@ class closures4_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + { + param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + }} + }} for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { { param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); @@ -3209,13 +3263,13 @@ class closures4_model final : public model_base_crtp { inline std::string get_constrained_sizedtypes() const { std::stringstream s__; - s__ << "[{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" << 2 << "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" << 5 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"transformed_parameters\"}]"; + s__ << "[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" << 1 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" << 2 << "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" << 5 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"transformed_parameters\"}]"; return s__.str(); } // get_constrained_sizedtypes() inline std::string get_unconstrained_sizedtypes() const { std::stringstream s__; - s__ << "[{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" << 2 << "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" << 5 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"transformed_parameters\"}]"; + s__ << "[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" << 1 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" << 2 << "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" << 5 << ",\"element_type\":{\"name\":\"vector\",\"length\":" << 2 << "}},\"block\":\"transformed_parameters\"}]"; return s__.str(); } // get_unconstrained_sizedtypes() @@ -3304,6 +3358,439 @@ stan::math::profile_map& get_stan_profile_data() { + $ ../../../../../install/default/bin/stanc --print-cpp closures5.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures5_model_namespace { + +using stan::io::dump; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static int current_statement__= 0; +static const std::vector locations_array__ = +{" (found before start of program)", + " (in 'closures5.stan', line 5, column 4 to column 12)", + " (in 'closures5.stan', line 6, column 4 to column 14)", + " (in 'closures5.stan', line 9, column 4 to line 12, column 5)", + " (in 'closures5.stan', line 13, column 4 to column 36)", + " (in 'closures5.stan', line 2, column 4 to column 10)", + " (in 'closures5.stan', line 6, column 11 to column 12)", + " (in 'closures5.stan', line 11, column 8 to column 39)", + " (in 'closures5.stan', line 10, column 47 to line 12, column 5)"}; +struct foo_rsfunctor__; +template +stan::promote_args_t +foo_L10C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, std::ostream* pstream__) ; + +template +class foo_L10C9_cfunctor__ { + F0__ mu; + public: + const size_t vars_count__; + foo_L10C9_cfunctor__(const foo_L10C9_cfunctor__&) = default ; + foo_L10C9_cfunctor__(foo_L10C9_cfunctor__&&) = default ; + foo_L10C9_cfunctor__(const F0__& mu__) + : mu(mu__), vars_count__(count_vars(mu__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const std::vector& slice, + const int& start, const int& end) const + { + return foo_L10C9_impl__(mu, slice, start, end, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = foo_L10C9_cfunctor__; + size_t count_vars__() const { return vars_count__; } + auto value_of__() const { return ValueOf__(value_of(mu)); } + auto deep_copy_vars__() const { + return foo_L10C9_cfunctor__(deep_copy_vars(mu)); } + void zero_adjoints__() { stan::math::zero_adjoints(mu); } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, mu); } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, mu); } + + }; +template +auto foo_L10C9_make__(const F0__& mu) { +return foo_L10C9_cfunctor__(mu); +} + +template +stan::promote_args_t +foo_L10C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + const static bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 7; + return normal_lpdf(slice, mu, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures5_model final : public model_base_crtp { + + private: + int N; + + public: + ~closures5_model() { } + + inline std::string model_name() const final { return "closures5_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures5_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "closures5_model_namespace::closures5_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 5; + context__.validate_dims("data initialization","N","int", + context__.to_vec()); + N = std::numeric_limits::min(); + + current_statement__ = 5; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 6; + validate_non_negative_index("x", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + num_params_r__ += 1; + num_params_r__ += N; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template * = nullptr, stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static const char* function__ = "closures5_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + local_scalar_t__ mu; + mu = DUMMY_VAR__; + + current_statement__ = 1; + mu = in__.scalar(); + std::vector x; + x = std::vector(N, DUMMY_VAR__); + + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 2; + assign(x, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable x");} + { + + current_statement__ = 3; + auto foo = foo_L10C9_make__(mu); + current_statement__ = 4; + lp_accum__.add( + reduce_sum(x, 1, pstream__, + foo)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, stan::require_vector_like_vt* = nullptr, stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static const char* function__ = "closures5_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + double mu; + mu = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + mu = in__.scalar(); + std::vector x; + x = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 2; + assign(x, cons_list(index_uni(sym1__), nil_index_list()), + in__.scalar(), "assigning variable x");} + vars__.emplace_back(mu); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(x[(sym1__ - 1)]);} + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double mu; + mu = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + mu = context__.vals_r("mu")[(1 - 1)]; + std::vector x; + x = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + assign(x, nil_index_list(), context__.vals_r("x"), + "assigning variable x"); + vars__.emplace_back(mu); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(x[(sym1__ - 1)]);} + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("mu"); + names__.emplace_back("x"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + dimss__.clear(); + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{static_cast(N)}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "mu"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "mu"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + }} + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + std::stringstream s__; + s__ << "[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + std::stringstream s__; + s__ << "[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" << N << ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) { + vars.coeffRef(i) = vars_vec[i]; + } + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) { + params_r.coeffRef(i) = params_r_vec[i]; + } + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures5_model_namespace::closures5_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures5_model_namespace::profiles__; +} + +#endif + + + $ ../../../../../install/default/bin/stanc --print-cpp eight_schools_ncp.stan // Code generated by %%NAME%% %%VERSION%% From 1282f70e335dc7c0f8ddd3c496847f3a19cc9f58 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sat, 20 Feb 2021 19:49:34 +0200 Subject: [PATCH 12/24] allow special suffix closures --- src/frontend/Ast_to_Mir.ml | 5 +- src/frontend/Semantic_check.ml | 32 +- src/frontend/parser.mly | 2 +- src/middle/Fun_kind.ml | 14 + src/middle/Program.ml | 1 + src/middle/Semantic_error.ml | 8 +- src/middle/Stan_math_signatures.ml | 34 +- src/middle/UnsizedType.ml | 48 +- src/stan_math_backend/Expression_gen.ml | 53 +- src/stan_math_backend/Stan_math_code_gen.ml | 148 +- src/stan_math_backend/Statement_gen.ml | 5 +- test/integration/bad/closures/lpdf.stan | 6 - test/integration/bad/closures/rng.stan | 6 - test/integration/bad/closures/stanc.expected | 24 - test/integration/good/code-gen/closures3.stan | 5 +- test/integration/good/code-gen/closures5.stan | 6 + test/integration/good/code-gen/closures6.stan | 21 + test/integration/good/code-gen/cpp.expected | 1344 ++++++++++++----- .../good/code-gen/expressions/cpp.expected | 6 - test/integration/good/code-gen/mir.expected | 124 +- .../standalone_functions/cpp.expected | 20 - .../good/compiler-optimizations/cpp.expected | 42 - test/unit/Optimize.ml | 4 +- test/unit/Stan_math_code_gen_tests.ml | 6 +- 24 files changed, 1297 insertions(+), 667 deletions(-) delete mode 100644 test/integration/bad/closures/lpdf.stan delete mode 100644 test/integration/bad/closures/rng.stan create mode 100644 test/integration/good/code-gen/closures6.stan diff --git a/src/frontend/Ast_to_Mir.ml b/src/frontend/Ast_to_Mir.ml index e5d40b7b1b..412c5aca70 100644 --- a/src/frontend/Ast_to_Mir.ml +++ b/src/frontend/Ast_to_Mir.ml @@ -667,6 +667,7 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = ; captures= Some (implname, captures) ; arguments ; body } -> + let fdsuffix = Fun_kind.suffix_from_name funname.name in if Map.find !closures implname = None then closures := String.Map.add_exn !closures ~key:implname @@ -676,6 +677,7 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = | Void -> None | ReturnType ut -> Some ut ) ; fdname= implname + ; fdsuffix ; fdcaptures= Some (List.map @@ -689,7 +691,7 @@ let rec trans_stmt ud_dists (declc : decl_context) (ts : Ast.typed_statement) = |> unwrap_block_or_skip ; fdloc= ts.smeta.loc } ; let arguments = List.map ~f:(fun (ad, ut, _) -> (ad, ut)) arguments in - let type_ = UnsizedType.UFun (arguments, returntype, true) in + let type_ = UnsizedType.UFun (arguments, returntype, (fdsuffix, true)) in let captures = List.map ~f:(fun (_, adlevel, type_, id) -> @@ -739,6 +741,7 @@ let trans_fun_def ud_dists (ts : Ast.typed_statement) = { fdrt= (match returntype with Void -> None | ReturnType ut -> Some ut) ; fdname= funname.name + ; fdsuffix= Fun_kind.suffix_from_name funname.name ; fdcaptures= None ; fdargs= List.map ~f:trans_arg arguments ; fdbody= diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 53a4e7e0a1..3f414eaf70 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -263,8 +263,9 @@ let semantic_check_fn_rng cf ~loc id = Semantic_error.invalid_decl_rng_fn loc |> error else if String.is_suffix id.name ~suffix:"_rng" - && ( (cf.in_fun_def && not cf.in_rng_fun_def) - || cf.current_block = TParam || cf.current_block = Model ) + && (not (cf.in_fun_def && cf.in_rng_fun_def)) + && ( cf.in_fun_def || cf.current_block = TParam + || cf.current_block = Model ) then Semantic_error.invalid_rng_fn loc |> error else ok ()) @@ -298,7 +299,7 @@ let semantic_check_fn_normal ~is_cond_dist ~loc id es = |> Semantic_error.illtyped_userdefined_fn_app loc id.name listedtypes rt |> error - | Some (_, UFun (_, ReturnType ut, is_closure)) -> + | Some (_, UFun (_, ReturnType ut, (_, is_closure))) -> let kind = if is_closure then Closure else UserDefined in mk_typed_expression ~expr:(mk_fun_app ~is_cond_dist (kind, id, es)) @@ -326,9 +327,9 @@ let semantic_check_fn_stan_math ~is_cond_dist ~loc id es = |> Validate.ok | None -> ( match get_arg_types es with - | (_, UFun (arg_tys, rt, true)) :: args + | (_, UFun (arg_tys, rt, (s, true))) :: args when Stan_math_signatures.stan_math_returntype id.name - ((UnsizedType.DataOnly, UFun (arg_tys, rt, false)) :: args) + ((UnsizedType.DataOnly, UFun (arg_tys, rt, (s, false))) :: args) <> None -> Semantic_error.illtyped_stanlib_hof_app loc id.name |> Validate.error | _ -> @@ -352,7 +353,7 @@ let semantic_check_reduce_sum ~is_cond_dist ~loc id es = ( ((_, sliced_arg_fun_type) as sliced_arg_fun) :: (_, UInt) :: (_, UInt) :: fun_args , ReturnType UReal - , _ ); _ }; _ } + , ((FnPure | FnLpdf), _) ); _ }; _ } :: sliced :: {emeta= {type_= UInt; _}; _} :: args when arg_match sliced_arg_fun sliced && List.mem Stan_math_signatures.reduce_sum_slice_types @@ -978,7 +979,7 @@ let semantic_check_nrfn_target ~loc ~cf id = let semantic_check_nrfn_normal ~loc id es = Validate.( match Symbol_table.look vm id.name with - | Some (_, UFun (listedtypes, Void, is_closure)) + | Some (_, UFun (listedtypes, Void, (_, is_closure))) when UnsizedType.check_compatible_arguments_mod_conv id.name listedtypes (get_arg_types es) -> let kind = if is_closure then Closure else UserDefined in @@ -1194,7 +1195,7 @@ let semantic_check_sampling_distribution ~loc id arguments = in let is_name_w_suffix_udf_sampling_dist suffix = match Symbol_table.look vm (name ^ suffix) with - | Some (Functions, UFun (listedtypes, ReturnType UReal, false)) -> + | Some (Functions, UFun (listedtypes, ReturnType UReal, (_, false))) -> UnsizedType.check_compatible_arguments_mod_conv name listedtypes argumenttypes | _ -> false @@ -1219,7 +1220,8 @@ let cumulative_density_is_defined id arguments = |> Option.value_map ~default:false ~f:is_real_rt and valid_arg_types_for_suffix suffix = match Symbol_table.look vm (name ^ suffix) with - | Some (Functions, UFun (listedtypes, ReturnType UReal, false)) -> + | Some (Functions, UFun (listedtypes, ReturnType UReal, (FnPure, false))) + -> UnsizedType.check_compatible_arguments_mod_conv name listedtypes argumenttypes | _ -> false @@ -1653,7 +1655,9 @@ and semantic_check_closure_id ~is_closure id = if not is_closure then Validate.ok () else let f suffix = not (String.is_suffix ~suffix id.name) in - if List.for_all ~f ["_rng"; "_lpdf"; "_lpmf"; "_lcdf"; "_lccdf"; "_lp"] + if + List.for_all ~f + ["_rng"; "_lpdf"; "_lpmf"; "_lcdf"; "_lccdf"; "_log"; "_lp"] then Validate.ok () else Validate.error @@ Semantic_error.impure_closure id.id_loc @@ -1749,11 +1753,12 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = let uarg_names = List.map ~f:(fun x -> x.name) uarg_identifiers in semantic_check_fundef_overloaded ~loc id uarg_types urt |> apply_const (semantic_check_fundef_decl ~loc ~is_closure id body) - |> apply_const (semantic_check_closure_id ~is_closure id) >>= fun () -> (* WARNING: SIDE EFFECTING *) Symbol_table.enter vm id.name - (Functions, UFun (uarg_types, urt, is_closure)) ; + ( Functions + , UFun (uarg_types, urt, (Fun_kind.suffix_from_name id.name, is_closure)) + ) ; let body', captures = Symbol_table.with_capturing_scope vm (fun () -> (* Check that function args and loop identifiers are not modified in @@ -1816,7 +1821,8 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = , Set.to_list captures |> List.filter_map ~f:(fun name -> match Symbol_table.look vm name with - | None | Some (Functions, UFun (_, _, false)) -> None + | None | Some (Functions, UFun (_, _, (_, false))) -> + None | Some (block, type_) -> Symbol_table.set_read_only vm name ; Some diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 86ac39c865..3a31eefbb0 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -215,7 +215,7 @@ arg_type: function_type: | rt=return_type LPAREN args=separated_list(COMMA, arg_type) RPAREN - { grammar_logger "function_type" ; UnsizedType.UFun (args, rt, true) } + { grammar_logger "function_type" ; UnsizedType.UFun (args, rt, (Fun_kind.FnPure, true)) } always(x): | x=x diff --git a/src/middle/Fun_kind.ml b/src/middle/Fun_kind.ml index 0a4d1cb8e8..ae60cb9679 100644 --- a/src/middle/Fun_kind.ml +++ b/src/middle/Fun_kind.ml @@ -1,2 +1,16 @@ type t = StanLib | CompilerInternal | UserDefined | Closure [@@deriving compare, sexp, hash] + +type suffix = FnPure | FnRng | FnLpdf | FnTarget +[@@deriving compare, sexp, hash] + +let suffix_from_name fname = + let is_suffix suffix = Core_kernel.String.is_suffix ~suffix fname in + if is_suffix "_rng" then FnRng + else if is_suffix "_lp" then FnTarget + else if + is_suffix "_lpdf" || is_suffix "_lpmf" + || (is_suffix "_log" && not (is_suffix "_cdf_log" || is_suffix "_ccdf_log")) + || is_suffix "_lupdf" || is_suffix "_lupmf" + then FnLpdf + else FnPure diff --git a/src/middle/Program.ml b/src/middle/Program.ml index 1443118b56..938ce48743 100644 --- a/src/middle/Program.ml +++ b/src/middle/Program.ml @@ -13,6 +13,7 @@ type fun_arg_decl = (UnsizedType.autodifftype * string * UnsizedType.t) list type 'a fun_def = { fdrt: UnsizedType.t option ; fdname: string + ; fdsuffix: Fun_kind.suffix ; fdcaptures: ( UnsizedType.capturetype * UnsizedType.autodifftype diff --git a/src/middle/Semantic_error.ml b/src/middle/Semantic_error.ml index c3653289c0..6e7b837a7d 100644 --- a/src/middle/Semantic_error.ml +++ b/src/middle/Semantic_error.ml @@ -123,7 +123,7 @@ module TypeError = struct ( List.hd_exn args :: (AutoDiffable, UInt) :: (AutoDiffable, UInt) :: List.tl_exn args , ReturnType UReal - , false ) ] + , (FnPure, false) ) ] ; first; [UInt]; rest ] in Fmt.pf ppf @@ -168,7 +168,7 @@ module TypeError = struct [ UnsizedType.UFun ( Stan_math_signatures.variadic_ode_mandatory_fun_args @ args , ReturnType Stan_math_signatures.variadic_ode_fun_return_type - , false ) ] + , (FnPure, false) ) ] @ types Stan_math_signatures.variadic_ode_mandatory_arg_types @ optional_tol_args @ types args in @@ -492,8 +492,8 @@ For example, "target += normal_lpdf(y, 0, 1)" should become "y ~ normal(0, 1)." "Local function is declared without specifying a definition." | ImpureClosure -> Fmt.pf ppf - "Local function cannot have suffix _rng, _lpdf, _lpmf, _lcdf, \ - _lccdf, or _lp." + "Function argument cannot have suffix _rng, _lpdf, _lpmf, _lcdf, \ + _lccdf, _log, or _lp." | RecursiveClosure -> Fmt.pf ppf "Local function cannot be recursive." | FunDeclNeedsBlock -> Fmt.pf ppf "Function definitions must be wrapped in curly braces." diff --git a/src/middle/Stan_math_signatures.ml b/src/middle/Stan_math_signatures.ml index 6a8211f22a..19d7ede0b1 100644 --- a/src/middle/Stan_math_signatures.ml +++ b/src/middle/Stan_math_signatures.ml @@ -361,7 +361,11 @@ let get_sigs name = let name = Utils.stdlib_distribution_name name in Hashtbl.find_multi stan_math_signatures name |> List.sort ~compare -let pp_math_sig ppf (rt, args) = UnsizedType.pp ppf (UFun (args, rt, false)) +let plain_func = (Fun_kind.FnPure, false) +let pure_closure = (Fun_kind.FnPure, true) + +let pp_math_sig ppf (rt, args) = + UnsizedType.pp ppf (UFun (args, rt, plain_func)) let pp_math_sigs ppf name = Fmt.pf ppf "@[%a@]" (Fmt.list ~sep:Fmt.cut pp_math_sig) (get_sigs name) @@ -638,7 +642,7 @@ let () = ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType UVector - , false ) ) + , plain_func ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] ) ; add_qualified @@ -649,7 +653,7 @@ let () = ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType UVector - , false ) ) + , plain_func ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt); (DataOnly, UReal) ; (DataOnly, UReal); (DataOnly, UReal) ] ) ; @@ -661,7 +665,7 @@ let () = ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType UVector - , false ) ) + , plain_func ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] ) ; add_qualified @@ -672,7 +676,7 @@ let () = ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType UVector - , false ) ) + , plain_func ) ) ; (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt); (DataOnly, UReal) ; (DataOnly, UReal); (DataOnly, UReal) ] ) ; @@ -1094,7 +1098,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType UReal - , false ) ) + , plain_func ) ) ; (AutoDiffable, UReal); (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] ) ; @@ -1107,7 +1111,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType UReal - , false ) ) + , plain_func ) ) ; (AutoDiffable, UReal); (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt); (DataOnly, UReal) ] @@ -1122,7 +1126,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType (UArray UReal) - , true ) ) + , pure_closure ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1138,7 +1142,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType (UArray UReal) - , true ) ) + , pure_closure ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1154,7 +1158,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType (UArray UReal) - , true ) ) + , pure_closure ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1171,7 +1175,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType (UArray UReal) - , true ) ) + , pure_closure ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1187,7 +1191,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType (UArray UReal) - , true ) ) + , pure_closure ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1204,7 +1208,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType (UArray UReal) - , true ) ) + , pure_closure ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1220,7 +1224,7 @@ let () = ; (AutoDiffable, UArray UReal) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType (UArray UReal) - , true ) ) + , pure_closure ) ) ; (AutoDiffable, UArray UReal) ; (AutoDiffable, UReal) ; (AutoDiffable, UArray UReal) @@ -1311,7 +1315,7 @@ let () = ( [ (AutoDiffable, UVector); (AutoDiffable, UVector) ; (DataOnly, UArray UReal); (DataOnly, UArray UInt) ] , ReturnType UVector - , false ) ) + , plain_func ) ) ; (AutoDiffable, UVector) ; (AutoDiffable, UArray UVector) ; (DataOnly, UArray (UArray UReal)) diff --git a/src/middle/UnsizedType.ml b/src/middle/UnsizedType.ml index 7b9fa320ad..75b8922fc8 100644 --- a/src/middle/UnsizedType.ml +++ b/src/middle/UnsizedType.ml @@ -8,7 +8,7 @@ type t = | URowVector | UMatrix | UArray of t - | UFun of (autodifftype * t) list * returntype * bool + | UFun of (autodifftype * t) list * returntype * (Fun_kind.suffix * bool) | UMathLibraryFunction and autodifftype = DataOnly | AutoDiffable @@ -41,6 +41,14 @@ let rec unwind_array_type = function | UArray ut -> ( match unwind_array_type ut with ut2, d -> (ut2, d + 1) ) | ut -> (ut, 0) +let make_suffix s args = + match s with + | Fun_kind.FnPure -> "" + | FnRng -> "_rng" + | FnTarget -> "_lp" + | FnLpdf -> ( + match args with (_, (UInt | UArray UInt)) :: _ -> "_lpmf" | _ -> "_lpdf" ) + let rec pp ppf = function | UInt -> pp_keyword ppf "int" | UReal -> pp_keyword ppf "real" @@ -51,8 +59,8 @@ let rec pp ppf = function let ut2, d = unwind_array_type ut in let array_str = "[" ^ String.make d ',' ^ "]" in Fmt.pf ppf "array%s %a" array_str pp ut2 - | UFun (argtypes, rt, _) -> - Fmt.pf ppf {|@[(%a) => %a@]|} + | UFun (argtypes, rt, (s, _)) -> + Fmt.pf ppf {|@[%s(%a) => %a@]|} (make_suffix s argtypes) Fmt.(list pp_fun_arg ~sep:comma) argtypes pp_returntype rt | UMathLibraryFunction -> @@ -82,9 +90,9 @@ let check_of_same_type_mod_conv name t1 t2 = else match (t1, t2) with | UReal, UInt -> true - | UFun (_, _, false), UFun (_, _, true) -> false - | UFun (l1, rt1, _), UFun (l2, rt2, _) -> ( - rt1 = rt2 + | UFun (_, _, (_, false)), UFun (_, _, (_, true)) -> false + | UFun (l1, rt1, (s1, _)), UFun (l2, rt2, (s2, _)) -> ( + s1 = s2 && rt1 = rt2 && match List.for_all2 @@ -194,12 +202,12 @@ let pp_sigs ppf tys = let ut2, d = unwind_array_type ut in let array_str = "[" ^ String.make d ',' ^ "]" in Fmt.pf ppf "array%s %a" array_str pp ut2 - | UFun (tys, rt, _) as t -> ( + | UFun (tys, rt, (s, _)) as t -> ( match Map.find !ctx t with | Some (id, _) -> Fmt.pf ppf "%s" id | None -> let id = Fmt.strf "" (Map.length !ctx + 1) in - ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, tys)) ; + ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, s, tys)) ; Fmt.pf ppf "%s" id ) | UMathLibraryFunction -> (pp_angle_brackets Fmt.string) ppf "Stan Math function" @@ -214,10 +222,14 @@ let pp_sigs ppf tys = Fmt.pf ppf {|(@[%a@]) => %a|} Fmt.(list pp_fun_arg ~sep:comma) argtypes pp_returntype rt - and pp_fun ppf (id, tys) = Fmt.pf ppf {|@[%s = @[%a@]@]|} id pp_fn tys - and pp_where ppf fns = + and pp_fun ppf (id, (rt, s, argtypes)) = + Fmt.pf ppf {|@[%s = @[%s(@[%a@]) => %a@]@]|} id + (make_suffix s argtypes) + Fmt.(list pp_fun_arg ~sep:comma) + argtypes pp_returntype rt + and pp_where ppf old = + let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem old ty)) in let old = !ctx in - let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem fns ty)) in if not (Map.is_empty new_) then ( Fmt.cut ppf () ; let compare (_, (id1, _)) (_, (id2, _)) = String.compare id1 id2 in @@ -243,12 +255,12 @@ let pp_args ppf (fns, tys) = let ut2, d = unwind_array_type ut in let array_str = "[" ^ String.make d ',' ^ "]" in Fmt.pf ppf "array%s %a" array_str pp ut2 - | UFun (tys, rt, _) as t -> ( + | UFun (tys, rt, (s, _)) as t -> ( match Map.find !ctx t with | Some (id, _) -> Fmt.pf ppf "%s" id | None -> let id = Fmt.strf "" (Map.length !ctx + 1) in - ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, tys)) ; + ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, s, tys)) ; Fmt.pf ppf "%s" id ) | UMathLibraryFunction -> (pp_angle_brackets Fmt.string) ppf "Stan Math function" @@ -259,14 +271,14 @@ let pp_args ppf (fns, tys) = and pp_returntype ppf = function | Void -> Fmt.string ppf "void" | ReturnType ut -> pp ppf ut - and pp_fn ppf (rt, argtypes) = - Fmt.pf ppf {|(@[%a@]) => %a|} + and pp_fun ppf (id, (rt, s, argtypes)) = + Fmt.pf ppf {|@[%s = @[%s(@[%a@]) => %a@]@]|} id + (make_suffix s argtypes) Fmt.(list pp_fun_arg ~sep:comma) argtypes pp_returntype rt - and pp_fun ppf (id, tys) = Fmt.pf ppf {|@[%s = @[%a@]@]|} id pp_fn tys - and pp_where ppf fns = + and pp_where ppf old = + let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem old ty)) in let old = !ctx in - let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem fns ty)) in if not (Map.is_empty new_) then ( Fmt.cut ppf () ; let compare (_, (id1, _)) (_, (id2, _)) = String.compare id1 id2 in diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 9a00aa84ee..47deb9896a 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -138,6 +138,12 @@ let demangle_unnormalized_name udf f = then f ^ "" else f +let demangle_unnormalized_closure f = + if Utils.is_unnormalized_distribution f then + Utils.stdlib_distribution_name f ^ ".template operator()" + else if Utils.is_distribution_name f then f ^ ".template operator()" + else f + let fn_renames = List.map ~f:(fun (k, v) -> (Internal_fun.to_string k, v)) @@ -159,6 +165,13 @@ let functor_suffix_select hof = variadic_ode_functor_suffix | _ -> functor_suffix +let wrap_fn f = + match Expr.(f.Fixed.meta.Typed.Meta.type_) with + | UFun (args, rt, (_, false)) -> + { Expr.Fixed.meta= {f.meta with type_= UFun (args, rt, (FnPure, true))} + ; pattern= FunApp (StanLib, "from_lambda", [f]) } + | _ -> f + let rec pp_index ppf = function | Index.All -> pf ppf "index_omni()" | Single e -> pf ppf "index_uni(%a)" pp_expr e @@ -283,14 +296,6 @@ and gen_fun_app ppf fname es = let to_var s = Expr.{Fixed.pattern= Var s; meta= Typed.Meta.empty} in let extra = suffix_args fname |> List.map ~f:to_var in let msgs = "pstream__" |> to_var in - let wrap_ode f = - match Expr.(f.Fixed.meta.Typed.Meta.type_) with - | UFun (args, rt, false) -> - { Expr.Fixed.meta= {f.meta with type_= UFun (args, rt, true)} - ; pattern= FunApp (StanLib, "from_lambda", [f]) } - (* ODE solvers have unusual argument order. Convert to a closure to fix it. *) - | _ -> f - in (* Here, because these signatures are written in C++ such that they wanted to have optional arguments and piggyback on C++ default arguments and not write the necessary overloads, we have to @@ -312,7 +317,7 @@ and gen_fun_app ppf fname es = -> (fname, f :: y0 :: t0 :: ts :: theta :: x :: x_int :: msgs :: tl) | ( x - , {meta= {type_= UFun (_, _, false); _}; pattern= Var f} + , {meta= {type_= UFun (_, _, (_, false)); _}; pattern= Var f} :: grainsize :: container :: tl ) when Stan_math_signatures.is_reduce_sum_fn x -> let propto_template = @@ -327,22 +332,24 @@ and gen_fun_app ppf fname es = ( strf "%s<%s%s>" fname normalized_dist_functor propto_template , grainsize :: container :: msgs :: tl ) | ( x - , ({meta= {type_= UFun (_, _, true); _}; _} as f) + , ({meta= {type_= UFun (_, _, (_, true)); _}; _} as f) :: grainsize :: container :: tl ) when Stan_math_signatures.is_reduce_sum_fn x -> - (fname ^ "", grainsize :: container :: msgs :: f :: tl) + ( fname ^ "" + , grainsize :: container :: msgs :: f :: tl ) | x, f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps :: tl when Stan_math_signatures.is_variadic_ode_fn x && String.is_suffix fname ~suffix:Stan_math_signatures.ode_tolerances_suffix -> ( fname - , wrap_ode f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps + , wrap_fn f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps :: msgs :: tl ) | x, f :: y0 :: t0 :: ts :: tl when Stan_math_signatures.is_variadic_ode_fn x -> - (fname, wrap_ode f :: y0 :: t0 :: ts :: msgs :: tl) + (fname, wrap_fn f :: y0 :: t0 :: ts :: msgs :: tl) | ( "map_rect" - , {pattern= Var f; meta= {type_= UFun (_, _, false); _}} :: tl ) -> + , {pattern= Var f; meta= {type_= UFun (_, _, (FnPure, false)); _}} + :: tl ) -> let f = f ^ functor_suffix_select fname in let next_map_rect_id = Hashtbl.length map_rect_calls + 1 in Hashtbl.add_exn map_rect_calls ~key:next_map_rect_id ~data:f ; @@ -368,6 +375,7 @@ and pp_constrain_funapp constrain_or_un_str ppf = function | es -> raise_s [%message "Bad constraint " (es : Expr.Typed.t list)] and pp_user_defined_fun ppf (f, es) = + let es = List.map ~f:wrap_fn es in let extra_args = suffix_args f @ ["pstream__"] in let sep = if List.is_empty es then "" else ", " in pf ppf "@[%s(@,%a%s)@]" @@ -376,10 +384,13 @@ and pp_user_defined_fun ppf (f, es) = (sep ^ String.concat ~sep:", " extra_args) and pp_closure ppf (f, es) = + let es = List.map ~f:wrap_fn es in + let extra_args = suffix_args f @ ["pstream__"] in let sep = if List.is_empty es then "" else ", " in - pf ppf "@[%s(pstream__%s@,%a)@]" - (demangle_unnormalized_name true f) - sep (list ~sep:comma pp_expr) es + pf ppf "@[%s(%s@,%a)@]" + (demangle_unnormalized_closure f) + (String.concat ~sep:", " extra_args ^ sep) + (list ~sep:comma pp_expr) es and pp_compiler_internal_fn ut f ppf es = let pp_array_literal ppf es = @@ -449,7 +460,13 @@ and pp_expr ppf Expr.Fixed.({pattern; meta} as e) = match pattern with | Var s -> ( match meta.type_ with - | UFun (_, _, false) -> pf ppf "%s%s()" s functor_suffix + | UFun (_, _, (_, false)) -> pf ppf "%s%s()" s functor_suffix + | UFun (_, _, (FnLpdf, true)) -> + let propto = + if Utils.is_unnormalized_distribution s then "propto__" else "false" + in + let s = Utils.normalized_name s in + pf ppf "%s.template with_propto<%s>()" s propto | _ -> pf ppf "%s" s ) | Lit (Str, s) -> pf ppf "%S" s | Lit (_, s) -> pf ppf "%s" s diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 960610f13d..e722e93b48 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -209,19 +209,19 @@ let pp_template_decorator ppf = function let mk_extra_args templates args = List.map ~f:(fun (t, v) -> t ^ "& " ^ v) (List.zip_exn templates args) -let pp_signature is_reduce_sum_fn captures ppf (fdrt, fdname, fdargs) = - let is_lp = is_user_lp fdname in - let is_dist = is_user_dist fdname in - let is_rng = String.is_suffix fdname ~suffix:"_rng" in +let pp_signature fdsuffix is_reduce_sum_fn captures ppf (fdrt, fdname, fdargs) + = let extra, extra_templates = - if is_lp then (["lp__"; "lp_accum__"], ["T_lp__"; "T_lp_accum__"]) - else if is_rng then (["base_rng__"], ["RNG"]) - else ([], []) + match fdsuffix with + | Fun_kind.FnTarget -> (["lp__"; "lp_accum__"], ["T_lp__"; "T_lp_accum__"]) + | FnRng -> (["base_rng__"], ["RNG"]) + | FnLpdf | FnPure -> ([], []) in let argtypetemplates, args = get_templates_and_args fdargs in let templates = - ( if (is_dist || is_lp) && not is_reduce_sum_fn then ["bool propto__"] - else [] ) + ( match fdsuffix with + | (FnLpdf | FnTarget) when not is_reduce_sum_fn -> ["bool propto__"] + | _ -> [] ) @ List.(map ~f:typename (argtypetemplates @ extra_templates)) in pp_template_decorator ppf templates ; @@ -255,7 +255,7 @@ let pp_rs_functor ppf (fdrt, fdname, fdargs) = in pf ppf "@,@,%astruct %s%s {@,%aconst @,{@,return %a;@,}@,};@," pp_template_propto is_dist fdname reduce_sum_functor_suffix - (pp_signature true None) + (pp_signature FnPure true None) (fdrt, "operator()", fdargs) pp_call_str ( (if is_dist then fdname ^ "" else fdname) @@ -266,15 +266,12 @@ let pp_rs_functor ppf (fdrt, fdname, fdargs) = raise_s [%message "Ill-formed reduce_sum call! This is a bug in the compiler."] -let pp_function_body ppf (fdrt, fdname, fdargs, fdbody) = +let pp_function_body ppf (fdrt, fdname, fdsuffix, fdargs, fdbody) = let pp_body ppf (Stmt.Fixed.({pattern; _}) as fdbody) = pf ppf "@[using local_scalar_t__ = %a;@]@," pp_promoted_scalar (return_arg_types fdargs) ; if List.exists ~f:(fun (_, _, t) -> UnsizedType.is_eigen_type t) fdargs then pp_eigen_arg_to_ref ppf fdargs ; - if not (is_user_lp fdname || is_user_dist fdname) then ( - pf ppf "const static bool propto__ = true;@;" ; - pf ppf "(void) propto__;@;" ) ; pf ppf "local_scalar_t__ \ DUMMY_VAR__(std::numeric_limits::quiet_NaN());@;" ; @@ -292,26 +289,40 @@ let pp_function_body ppf (fdrt, fdname, fdargs, fdbody) = if UnsizedType.is_eigen_type ty then (ad, id ^ "_arg__", ty) else (ad, id, ty) in - pp_signature false None ppf (fdrt, fdname, List.map ~f:rename_eigen fdargs) ; + pp_signature fdsuffix false None ppf + (fdrt, fdname, List.map ~f:rename_eigen fdargs) ; pp_block ppf (pp_body, fdbody) -let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = +let pp_closure ppf (fdrt, fdname, fdsuffix, fdcaptures, fdargs) = let clsname = fdname ^ "_cfunctor__" in + let templates, ctor_args = get_templates_and_captures fdcaptures in let pp_member ppf (i, (ref, adlevel, name, type_)) = let scalar = if capture_needs_template (ref, adlevel, name, type_) then sprintf "F%d__" i else stantype_prim_str type_ in + let empty = List.is_empty templates in match ref with | UnsizedType.Ref -> pf ppf "const %a& %s;" pp_unsizedtype_custom_scalar (scalar, type_) name | UnsizedType.Copy -> - pf ppf "%a %s;" pp_unsizedtype_custom_scalar (scalar, type_) name + if empty then + pf ppf "%a %s;" pp_unsizedtype_custom_scalar (scalar, type_) name + else + pf ppf "stan::capture_type_t<%a, ref__> %s;" + pp_unsizedtype_custom_scalar (scalar, type_) name in - let templates, ctor_args = get_templates_and_captures fdcaptures in let pp_template ppf b = + if not (List.is_empty templates) then ( + if b then pf ppf "template" ; + pf ppf "<@[%a@]>" (list ~sep:comma string) + ( if b then "bool ref__" :: List.map ~f:typename templates + else "ref__" :: templates ) ; + if b then pf ppf "@," ) + in + let pp_types ppf b = if not (List.is_empty templates) then ( if b then pf ppf "template" ; pf ppf "<@[%a@]>" (list ~sep:comma string) @@ -339,24 +350,34 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = Some (sprintf "typename F%d__::captured_scalar_t__" i) else Some (sprintf "F%d__" i) ) in - let pp_sig = pp_signature false (Some scalar_types) in + let pp_sig = pp_signature fdsuffix false (Some scalar_types) in + let extra_args = + match fdsuffix with + | FnRng -> ["base_rng__"; "pstream__"] + | FnTarget -> ["lp__"; "lp_accum__"; "pstream__"] + | FnLpdf | FnPure -> ["pstream__"] + in + let sfx = + match fdsuffix with FnLpdf -> "_impl__" | _ -> "_impl__" + in pf ppf "%a const @,{@,return %a;@,}" pp_sig (fdrt, "operator()", fdargs) pp_call_str - ( fdname ^ "_impl__" + ( fdname ^ sfx , List.map ~f:(fun (_, name, _) -> name) (Program.captures_to_args fdcaptures @ fdargs) - @ ["pstream__"] ) + @ extra_args ) in let pp_api ppf () = let pp_using ppf () = if List.is_empty templates then ( pf ppf "using captured_scalar_t__ = double;@," ; - pf ppf "using ValueOf__ = %s;" clsname ) + pf ppf "using ValueOf__ = %s;@ " clsname ; + pf ppf "using CopyOf__ = %s;" clsname ) else ( - pf ppf "using captured_scalar_t__ = stan::return_type_t%a;@," - pp_template false ; + pf ppf "using captured_scalar_t__ = stan::return_type_t%a;@," pp_types + false ; let templates = List.filter_mapi fdcaptures ~f:(fun i (r, ad, id, ty) -> if not (capture_needs_template (r, ad, id, ty)) then None @@ -364,24 +385,32 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = Some (sprintf "typename F%d__::ValueOf__" i) else Some "double" ) in - pf ppf "using ValueOf__ = %s<@[%a@]>;" clsname (list ~sep:comma string) - templates ) + pf ppf "using ValueOf__ = %s<@[false,@ %a@]>;@ " clsname + (list ~sep:comma string) templates ; + let templates = + List.filter_mapi fdcaptures ~f:(fun i (r, ad, id, ty) -> + if not (capture_needs_template (r, ad, id, ty)) then None + else Some (sprintf "stan::capture_type_t" i) ) + in + pf ppf "using CopyOf__ = %s<@[false,@ %a@]>;" clsname + (list ~sep:comma string) templates ) in let pp f = list ~sep:comma (fun ppf (_, _, id, _) -> pf ppf "%s(%s)" f id) in let valueof ppf () = - pf ppf "auto value_of__() const {@ return ValueOf__(%a);@ }" + pf ppf "auto value_of__() const {@ return ValueOf__(@[%a@]);@ }" (pp "value_of") fdcaptures in let deepcopy ppf () = - pf ppf "auto deep_copy_vars__() const {@ return %s%a(%a);@ }" clsname - pp_template false (pp "deep_copy_vars") fdcaptures + pf ppf + "auto deep_copy_vars__() const {@ return CopyOf__(@[%a@]);@ }" + (pp "deep_copy_vars") fdcaptures in let zeros ppf () = pf ppf "void zero_adjoints__() {@ @[%a@]@ }" (list ~sep:cut (fun ppf (_, _, id, _) -> - pf ppf "stan::math::zero_adjoints(%s);" id )) + pf ppf "stan::math::zero_adjoints(@[%s@]);" id )) fdcaptures in let pp = list ~sep:comma (fun ppf (_, _, id, _) -> string ppf id) in @@ -389,23 +418,29 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = let accumulate ppf () = pf ppf "double* accumulate_adjoints__(double *dest) const {@ return \ - stan::math::accumulate_adjoints(dest%a%a);@ }" + stan::math::accumulate_adjoints(@[dest%a%a@]);@ }" comma () pp fdcaptures in let save ppf () = pf ppf "stan::math::vari** save_varis__(stan::math::vari **dest) const {@ \ - return stan::math::save_varis(dest%a%a);@ }" + return stan::math::save_varis(@[dest%a%a@]);@ }" comma () pp fdcaptures in let count ppf () = pf ppf "size_t count_vars__() const {@ return vars_count__;@ }" in - pf ppf - "@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ @[%a@]@ \ - @[%a@]@ @[%a@]@ " - pp_using () count () valueof () deepcopy () zeros () accumulate () save - () ; + let pp_lpdf ppf () = + if fdsuffix = FnLpdf then + pf ppf + "template@ auto with_propto() {@ return \ + stan::math::lpdf_wrapper<@[propto, %s%a, true@]>(*this);@ }@ auto \ + copy_of__() {@ return CopyOf__(@[%a@]);@ }" + clsname pp_template false (list ~sep:comma string) + (List.map ~f:(fun (_, _, x, _) -> x) fdcaptures) + in + pf ppf "@ @[%a@ %a@ %a@ %a@ %a@ %a@ %a@ %a@]@ " pp_using () count () + valueof () deepcopy () zeros () accumulate () save () pp_lpdf () ; () in pf ppf @@ -414,14 +449,27 @@ let pp_closure ppf (fdrt, fdname, fdcaptures, fdargs) = pp_template true clsname (list ~sep:cut pp_member) (List.mapi ~f:(fun i a -> (i, a)) fdcaptures) pp_ctor clsname pp_op () pp_api () ; - pf ppf "%aauto %s_make__(@[%a@]) {@ return %s%a(@[%a@]);@ }@," pp_template - true fdname (list ~sep:comma string) ctor_args clsname pp_template false - (list ~sep:comma string) + let pp_make_template ppf () = + if not (List.is_empty templates) then + pf ppf "template<%a>@ " (list ~sep:comma string) + (List.map ~f:typename templates) + in + let pp_types ppf () = + if not (List.is_empty templates) then + pf ppf "<%a>" (list ~sep:comma string) ("false" :: templates) + in + pf ppf "@[%aauto %s_make__(@[%a@]) {@ return %s%a(@[%a@]);@ }@]@," + pp_make_template () fdname (list ~sep:comma string) ctor_args clsname + pp_types () (list ~sep:comma string) (List.map ~f:(fun (_, _, id, _) -> id) fdcaptures) let pp_forward_decl funs_used_in_reduce_sum ppf - Program.({fdrt; fdname; fdcaptures; fdargs; fdbody; _}) = - let pp_sig = pp_signature false None in + Program.({fdrt; fdname; fdsuffix; fdcaptures; fdargs; fdbody; _}) = + let pp_sig = pp_signature fdsuffix false None in + let pp_opsig = + let suffix = if fdsuffix <> FnLpdf then fdsuffix else FnPure in + pp_signature suffix false None + in match fdcaptures with | None -> pf ppf "%a;" pp_sig (fdrt, fdname, fdargs) ; @@ -434,7 +482,7 @@ let pp_forward_decl funs_used_in_reduce_sum ppf || String.is_suffix fdname ~suffix:"_rng" ) then pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname - functor_suffix pp_sig + functor_suffix pp_opsig (fdrt, "operator()", fdargs) pp_call_str ( fdname @@ -442,17 +490,23 @@ let pp_forward_decl funs_used_in_reduce_sum ppf | Some captures -> pf ppf "%a ;" pp_sig (fdrt, fdname ^ "_impl__", Program.captures_to_args captures @ fdargs) ; - pp_closure ppf (fdrt, fdname, captures, fdargs) + pp_closure ppf (fdrt, fdname, fdsuffix, captures, fdargs) let get_impl = function | {Program.fdbody= None; _} -> None - | {fdrt; fdname; fdcaptures= None; fdargs; fdbody= Some fdbody; _} -> - Some (fdrt, fdname, fdargs, fdbody) - | {fdrt; fdname; fdcaptures= Some fdcaptures; fdargs; fdbody= Some fdbody; _} + | {fdrt; fdname; fdcaptures= None; fdargs; fdsuffix; fdbody= Some fdbody; _} -> + Some (fdrt, fdname, fdsuffix, fdargs, fdbody) + | { fdrt + ; fdname + ; fdcaptures= Some fdcaptures + ; fdargs + ; fdsuffix + ; fdbody= Some fdbody; _ } -> Some ( fdrt , fdname ^ "_impl__" + , fdsuffix , Program.captures_to_args fdcaptures @ fdargs , fdbody ) diff --git a/src/stan_math_backend/Statement_gen.ml b/src/stan_math_backend/Statement_gen.ml index f9cb0b543b..19fe6e569d 100644 --- a/src/stan_math_backend/Statement_gen.ml +++ b/src/stan_math_backend/Statement_gen.ml @@ -114,7 +114,10 @@ let rec pp_statement (ppf : Format.formatter) pf ppf "@[%s = %a;@]" vident pp_expr rhs | Assignment ( (vident, UFun _, []) - , ({meta= Expr.Typed.Meta.({type_= UFun _; _}); _} as rhs) ) -> + , ({meta= {type_= UFun (_, _, (FnLpdf, true)); _}; _} as rhs) ) -> + pf ppf "@[auto %s = %a;@]" vident pp_expr rhs ; + | Assignment ((vident, UFun _, []), ({meta= {type_= UFun _; _}; _} as rhs)) + -> pf ppf "@[auto %s = %a;@]" vident pp_expr rhs | Assignment ((assignee, UInt, idcs), rhs) |Assignment ((assignee, UReal, idcs), rhs) diff --git a/test/integration/bad/closures/lpdf.stan b/test/integration/bad/closures/lpdf.stan deleted file mode 100644 index 5104f94fa8..0000000000 --- a/test/integration/bad/closures/lpdf.stan +++ /dev/null @@ -1,6 +0,0 @@ -transformed parameters { - functions - real foo_lpdf(real x, real y) { - return normal_lpdf(x|y,1); - } -} \ No newline at end of file diff --git a/test/integration/bad/closures/rng.stan b/test/integration/bad/closures/rng.stan deleted file mode 100644 index d93ad16e44..0000000000 --- a/test/integration/bad/closures/rng.stan +++ /dev/null @@ -1,6 +0,0 @@ -model { - functions - real foo_rng(real x, real y) { - return normal_rng(x|y,1); - } -} \ No newline at end of file diff --git a/test/integration/bad/closures/stanc.expected b/test/integration/bad/closures/stanc.expected index 6c073ffcc7..3c6eb05345 100644 --- a/test/integration/bad/closures/stanc.expected +++ b/test/integration/bad/closures/stanc.expected @@ -9,18 +9,6 @@ Semantic error in 'forwarddecl.stan', line 2, column 4 to line 3, column 29: ------------------------------------------------- Local function is declared without specifying a definition. - $ ../../../../../install/default/bin/stanc lpdf.stan -Semantic error in 'lpdf.stan', line 3, column 9 to column 17: - ------------------------------------------------- - 1: transformed parameters { - 2: functions - 3: real foo_lpdf(real x, real y) { - ^ - 4: return normal_lpdf(x|y,1); - 5: } - ------------------------------------------------- - -Local function cannot have suffix _rng, _lpdf, _lpmf, _lcdf, _lccdf, or _lp. $ ../../../../../install/default/bin/stanc mutate1.stan Semantic error in 'mutate1.stan', line 5, column 8 to column 16: ------------------------------------------------- @@ -44,15 +32,3 @@ Semantic error in 'mutate2.stan', line 7, column 4 to column 12: ------------------------------------------------- Cannot assign to function argument, captured variable or loop identifier 'x'. - $ ../../../../../install/default/bin/stanc rng.stan -Semantic error in 'rng.stan', line 3, column 9 to column 16: - ------------------------------------------------- - 1: model { - 2: functions - 3: real foo_rng(real x, real y) { - ^ - 4: return normal_rng(x|y,1); - 5: } - ------------------------------------------------- - -Local function cannot have suffix _rng, _lpdf, _lpmf, _lcdf, _lccdf, or _lp. diff --git a/test/integration/good/code-gen/closures3.stan b/test/integration/good/code-gen/closures3.stan index 72a9bbef26..e72b25b946 100644 --- a/test/integration/good/code-gen/closures3.stan +++ b/test/integration/good/code-gen/closures3.stan @@ -6,9 +6,12 @@ functions { } return g2(1.0); } + real foo2(real x) { + return x; + } } transformed data { - real x = 2.0; + real x = foo(foo2, 2.0); functions real bar(real y) { return x*y; diff --git a/test/integration/good/code-gen/closures5.stan b/test/integration/good/code-gen/closures5.stan index 19287f9c02..2927ca9ae7 100644 --- a/test/integration/good/code-gen/closures5.stan +++ b/test/integration/good/code-gen/closures5.stan @@ -10,5 +10,11 @@ model { real foo(real[] slice, int start, int end) { return normal_lpdf(slice|mu,1); } + functions + real bar_lpdf(real[] slice, int start, int end) { + return normal_lupdf(slice|mu, 1); + } target += reduce_sum(foo, x, 1); + target += reduce_sum(bar_lpdf, x, 1); + target += reduce_sum(bar_lupdf, x, 1); } \ No newline at end of file diff --git a/test/integration/good/code-gen/closures6.stan b/test/integration/good/code-gen/closures6.stan new file mode 100644 index 0000000000..b965587c6e --- /dev/null +++ b/test/integration/good/code-gen/closures6.stan @@ -0,0 +1,21 @@ +parameters { + real s; + real k; +} +transformed parameters { + functions + real foo_rng(real x) { + return normal_rng(x,1); + } + functions + real foo_lpdf(real y, real x) { + return normal_lupdf(y|x,1); + } +} +model { + target += foo_lpdf(s|k); + target += foo_lupdf(s|k); +} +generated quantities { + real m = foo_rng(k); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index b636fd4095..505bf34ab5 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -870,18 +870,18 @@ bar_L23C9_impl__(const T0__& p, const std::vector& pa, const T2__& pv, const std::vector& y, const T6__& z, const T7__& r, std::ostream* pstream__) ; -template +template class bar_L23C9_cfunctor__ { - F0__ p; - std::vector pa; - Eigen::Matrix pv; + stan::capture_type_t p; + stan::capture_type_t, ref__> pa; + stan::capture_type_t, ref__> pv; const Eigen::Matrix& v; - double x; + stan::capture_type_t x; const std::vector& y; public: const size_t vars_count__; - bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; - bar_L23C9_cfunctor__(bar_L23C9_cfunctor__&&) = default ; + bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; + bar_L23C9_cfunctor__(bar_L23C9_cfunctor__&&) = default ; bar_L23C9_cfunctor__(const F0__& p__, const std::vector& pa__, const Eigen::Matrix& pv__, const Eigen::Matrix& v__, @@ -897,33 +897,50 @@ stan::value_type_t> } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_L23C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(p), value_of(pa), - value_of(pv), value_of(v), value_of(x), value_of(y)); } + using ValueOf__ = bar_L23C9_cfunctor__; + using CopyOf__ = bar_L23C9_cfunctor__, + stan::capture_type_t, + stan::capture_type_t>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(p), value_of(pa), value_of(pv), value_of(v), + value_of(x), value_of(y)); + } auto deep_copy_vars__() const { - return bar_L23C9_cfunctor__(deep_copy_vars(p), - deep_copy_vars(pa), deep_copy_vars(pv), deep_copy_vars(v), - deep_copy_vars(x), deep_copy_vars(y)); } + return CopyOf__(deep_copy_vars(p), deep_copy_vars(pa), deep_copy_vars(pv), + deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); + } void zero_adjoints__() { stan::math::zero_adjoints(p); stan::math::zero_adjoints(pa); stan::math::zero_adjoints(pv); stan::math::zero_adjoints(v); stan::math::zero_adjoints(x); - stan::math::zero_adjoints(y); } + stan::math::zero_adjoints(y); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); } + return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, p, pa, pv, v, x, y); } + return stan::math::save_varis(dest, p, pa, pv, v, x, y); + } + }; -template +template auto bar_L23C9_make__(const F0__& p, const std::vector& pa, const Eigen::Matrix& pv, const Eigen::Matrix& v, const double& x, const std::vector& y) { -return bar_L23C9_cfunctor__(p, pa, pv, v, x, y); +return bar_L23C9_cfunctor__(p, pa, pv, v, x, y); } template @@ -951,21 +968,30 @@ stan::value_type_t> return foo_L9C9_impl__(v, x, y, z, r, pstream__); } - using captured_scalar_t__ = double;using ValueOf__ = foo_L9C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(v), value_of(x), - value_of(y)); } + using captured_scalar_t__ = double; + using ValueOf__ = foo_L9C9_cfunctor__; + using CopyOf__ = foo_L9C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(v), value_of(x), value_of(y)); + } auto deep_copy_vars__() const { - return foo_L9C9_cfunctor__(deep_copy_vars(v), deep_copy_vars(x), - deep_copy_vars(y)); } + return CopyOf__(deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); + } void zero_adjoints__() { stan::math::zero_adjoints(v); stan::math::zero_adjoints(x); - stan::math::zero_adjoints(y); } + stan::math::zero_adjoints(y); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, v, x, y); } + return stan::math::accumulate_adjoints(dest, v, x, y); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, v, x, y); } + return stan::math::save_varis(dest, v, x, y); + } + }; auto foo_L9C9_make__(const Eigen::Matrix& v, const double& x, @@ -990,8 +1016,6 @@ bar_L23C9_impl__(const T0__& p, const std::vector& pa, const auto& pv = to_ref(pv_arg__); const auto& v = to_ref(v_arg__); const auto& r = to_ref(r_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1040,8 +1064,6 @@ foo_L9C9_impl__(const T0__& v_arg__, const double& x, stan::value_type_t>; const auto& v = to_ref(v_arg__); const auto& r = to_ref(r_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1572,13 +1594,13 @@ stan::promote_args_t bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; -template +template class bar_L7C9_cfunctor__ { - F0__ foo; + stan::capture_type_t foo; public: const size_t vars_count__; - bar_L7C9_cfunctor__(const bar_L7C9_cfunctor__&) = default ; - bar_L7C9_cfunctor__(bar_L7C9_cfunctor__&&) = default ; + bar_L7C9_cfunctor__(const bar_L7C9_cfunctor__&) = default ; + bar_L7C9_cfunctor__(bar_L7C9_cfunctor__&&) = default ; bar_L7C9_cfunctor__(const F0__& foo__) : foo(foo__), vars_count__(count_vars(foo__)) {} template @@ -1590,21 +1612,34 @@ T0__> } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_L7C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(foo)); } + using ValueOf__ = bar_L7C9_cfunctor__; + using CopyOf__ = bar_L7C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(foo)); + } auto deep_copy_vars__() const { - return bar_L7C9_cfunctor__(deep_copy_vars(foo)); } - void zero_adjoints__() { stan::math::zero_adjoints(foo); } + return CopyOf__(deep_copy_vars(foo)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(foo); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, foo); } + return stan::math::accumulate_adjoints(dest, foo); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, foo); } + return stan::math::save_varis(dest, foo); + } + }; template auto bar_L7C9_make__(const F0__& foo) { -return bar_L7C9_cfunctor__(foo); +return bar_L7C9_cfunctor__(foo); } template @@ -1612,13 +1647,13 @@ stan::promote_args_t baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; -template +template class baz_L16C9_cfunctor__ { - F0__ foo; + stan::capture_type_t foo; public: const size_t vars_count__; - baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; - baz_L16C9_cfunctor__(baz_L16C9_cfunctor__&&) = default ; + baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; + baz_L16C9_cfunctor__(baz_L16C9_cfunctor__&&) = default ; baz_L16C9_cfunctor__(const F0__& foo__) : foo(foo__), vars_count__(count_vars(foo__)) {} template @@ -1630,21 +1665,34 @@ T0__> } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = baz_L16C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(foo)); } + using ValueOf__ = baz_L16C9_cfunctor__; + using CopyOf__ = baz_L16C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(foo)); + } auto deep_copy_vars__() const { - return baz_L16C9_cfunctor__(deep_copy_vars(foo)); } - void zero_adjoints__() { stan::math::zero_adjoints(foo); } + return CopyOf__(deep_copy_vars(foo)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(foo); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, foo); } + return stan::math::accumulate_adjoints(dest, foo); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, foo); } + return stan::math::save_varis(dest, foo); + } + }; template auto baz_L16C9_make__(const F0__& foo) { -return baz_L16C9_cfunctor__(foo); +return baz_L16C9_cfunctor__(foo); } template @@ -1666,15 +1714,28 @@ class foo_L3C9_cfunctor__ { return foo_L3C9_impl__(x, pstream__); } - using captured_scalar_t__ = double;using ValueOf__ = foo_L3C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(); } - auto deep_copy_vars__() const { return foo_L3C9_cfunctor__(); } - void zero_adjoints__() { } + using captured_scalar_t__ = double; + using ValueOf__ = foo_L3C9_cfunctor__; + using CopyOf__ = foo_L3C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); } + return stan::math::accumulate_adjoints(dest); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); } + return stan::math::save_varis(dest); + } + }; auto foo_L3C9_make__() { @@ -1700,15 +1761,28 @@ class gar_L22C13_cfunctor__ { return gar_L22C13_impl__(b, pstream__); } - using captured_scalar_t__ = double;using ValueOf__ = gar_L22C13_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(); } - auto deep_copy_vars__() const { return gar_L22C13_cfunctor__(); } - void zero_adjoints__() { } + using captured_scalar_t__ = double; + using ValueOf__ = gar_L22C13_cfunctor__; + using CopyOf__ = gar_L22C13_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); } + return stan::math::accumulate_adjoints(dest); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); } + return stan::math::save_varis(dest); + } + }; auto gar_L22C13_make__() { @@ -1734,15 +1808,28 @@ class goo_L20C9_cfunctor__ { return goo_L20C9_impl__(s, pstream__); } - using captured_scalar_t__ = double;using ValueOf__ = goo_L20C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(); } - auto deep_copy_vars__() const { return goo_L20C9_cfunctor__(); } - void zero_adjoints__() { } + using captured_scalar_t__ = double; + using ValueOf__ = goo_L20C9_cfunctor__; + using CopyOf__ = goo_L20C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); } + return stan::math::accumulate_adjoints(dest); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); } + return stan::math::save_varis(dest); + } + }; auto goo_L20C9_make__() { @@ -1755,8 +1842,6 @@ T1__> bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1775,8 +1860,6 @@ T1__> baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1793,8 +1876,6 @@ template stan::promote_args_t foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1811,8 +1892,6 @@ template stan::promote_args_t gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1829,8 +1908,6 @@ template stan::promote_args_t goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -2236,19 +2313,21 @@ stan::math::profile_map profiles__; static int current_statement__= 0; static const std::vector locations_array__ = {" (found before start of program)", - " (in 'closures3.stan', line 12, column 4 to line 15, column 5)", - " (in 'closures3.stan', line 19, column 4 to column 11)", - " (in 'closures3.stan', line 22, column 4 to line 25, column 5)", - " (in 'closures3.stan', line 26, column 4 to column 27)", - " (in 'closures3.stan', line 11, column 4 to column 17)", - " (in 'closures3.stan', line 16, column 4 to column 27)", + " (in 'closures3.stan', line 15, column 4 to line 18, column 5)", + " (in 'closures3.stan', line 22, column 4 to column 11)", + " (in 'closures3.stan', line 25, column 4 to line 28, column 5)", + " (in 'closures3.stan', line 29, column 4 to column 27)", + " (in 'closures3.stan', line 14, column 4 to column 28)", + " (in 'closures3.stan', line 19, column 4 to column 27)", " (in 'closures3.stan', line 3, column 8 to line 6, column 9)", " (in 'closures3.stan', line 7, column 8 to column 23)", " (in 'closures3.stan', line 2, column 35 to line 8, column 5)", - " (in 'closures3.stan', line 14, column 8 to column 19)", - " (in 'closures3.stan', line 13, column 21 to line 15, column 5)", - " (in 'closures3.stan', line 24, column 8 to column 19)", - " (in 'closures3.stan', line 23, column 21 to line 25, column 5)", + " (in 'closures3.stan', line 10, column 8 to column 17)", + " (in 'closures3.stan', line 9, column 22 to line 11, column 5)", + " (in 'closures3.stan', line 17, column 8 to column 19)", + " (in 'closures3.stan', line 16, column 21 to line 18, column 5)", + " (in 'closures3.stan', line 27, column 8 to column 19)", + " (in 'closures3.stan', line 26, column 21 to line 28, column 5)", " (in 'closures3.stan', line 5, column 12 to column 28)", " (in 'closures3.stan', line 4, column 24 to line 6, column 9)"}; @@ -2267,79 +2346,117 @@ return foo(g, x, pstream__); } }; +template +stan::promote_args_t +foo2(const T0__& x, std::ostream* pstream__) ; + +struct foo2_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return foo2(x, pstream__); +} +}; + template stan::promote_args_t -bar_L13C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; +bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; -class bar_L13C9_cfunctor__ { +class bar_L16C9_cfunctor__ { double x; public: const size_t vars_count__; - bar_L13C9_cfunctor__(const bar_L13C9_cfunctor__&) = default ; - bar_L13C9_cfunctor__(bar_L13C9_cfunctor__&&) = default ; - bar_L13C9_cfunctor__(const double& x__) + bar_L16C9_cfunctor__(const bar_L16C9_cfunctor__&) = default ; + bar_L16C9_cfunctor__(bar_L16C9_cfunctor__&&) = default ; + bar_L16C9_cfunctor__(const double& x__) : x(x__), vars_count__(count_vars(x__)) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& y) const { - return bar_L13C9_impl__(x, y, pstream__); + return bar_L16C9_impl__(x, y, pstream__); } - using captured_scalar_t__ = double;using ValueOf__ = bar_L13C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(x)); } + using captured_scalar_t__ = double; + using ValueOf__ = bar_L16C9_cfunctor__; + using CopyOf__ = bar_L16C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(x)); + } auto deep_copy_vars__() const { - return bar_L13C9_cfunctor__(deep_copy_vars(x)); } - void zero_adjoints__() { stan::math::zero_adjoints(x); } + return CopyOf__(deep_copy_vars(x)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(x); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, x); } + return stan::math::accumulate_adjoints(dest, x); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, x); } + return stan::math::save_varis(dest, x); + } + }; -auto bar_L13C9_make__(const double& x) { -return bar_L13C9_cfunctor__(x); +auto bar_L16C9_make__(const double& x) { +return bar_L16C9_cfunctor__(x); } template stan::promote_args_t -baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; +baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; -template -class baz_L23C9_cfunctor__ { - F0__ p; +template +class baz_L26C9_cfunctor__ { + stan::capture_type_t p; public: const size_t vars_count__; - baz_L23C9_cfunctor__(const baz_L23C9_cfunctor__&) = default ; - baz_L23C9_cfunctor__(baz_L23C9_cfunctor__&&) = default ; - baz_L23C9_cfunctor__(const F0__& p__) + baz_L26C9_cfunctor__(const baz_L26C9_cfunctor__&) = default ; + baz_L26C9_cfunctor__(baz_L26C9_cfunctor__&&) = default ; + baz_L26C9_cfunctor__(const F0__& p__) : p(p__), vars_count__(count_vars(p__)) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& y) const { - return baz_L23C9_impl__(p, y, pstream__); + return baz_L26C9_impl__(p, y, pstream__); } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = baz_L23C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(p)); } + using ValueOf__ = baz_L26C9_cfunctor__; + using CopyOf__ = baz_L26C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(p)); + } auto deep_copy_vars__() const { - return baz_L23C9_cfunctor__(deep_copy_vars(p)); } - void zero_adjoints__() { stan::math::zero_adjoints(p); } + return CopyOf__(deep_copy_vars(p)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(p); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, p); } + return stan::math::accumulate_adjoints(dest, p); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, p); } + return stan::math::save_varis(dest, p); + } + }; template -auto baz_L23C9_make__(const F0__& p) { -return baz_L23C9_cfunctor__(p); +auto baz_L26C9_make__(const F0__& p) { +return baz_L26C9_cfunctor__(p); } template @@ -2348,14 +2465,14 @@ T2__> g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, std::ostream* pstream__) ; -template +template class g2_L4C13_cfunctor__ { - F0__ g; - F1__ x; + stan::capture_type_t g; + stan::capture_type_t x; public: const size_t vars_count__; - g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; - g2_L4C13_cfunctor__(g2_L4C13_cfunctor__&&) = default ; + g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; + g2_L4C13_cfunctor__(g2_L4C13_cfunctor__&&) = default ; g2_L4C13_cfunctor__(const F0__& g__, const F1__& x__) : g(g__), x(x__), vars_count__(count_vars(g__, x__)) {} template @@ -2367,24 +2484,39 @@ T0__> } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = g2_L4C13_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(g), value_of(x)); } + using ValueOf__ = g2_L4C13_cfunctor__; + using CopyOf__ = g2_L4C13_cfunctor__, + stan::capture_type_t>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(g), value_of(x)); + } auto deep_copy_vars__() const { - return g2_L4C13_cfunctor__(deep_copy_vars(g), - deep_copy_vars(x)); } + return CopyOf__(deep_copy_vars(g), deep_copy_vars(x)); + } void zero_adjoints__() { stan::math::zero_adjoints(g); - stan::math::zero_adjoints(x); } + stan::math::zero_adjoints(x); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, g, x); } + return stan::math::accumulate_adjoints(dest, g, x); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, g, x); } + return stan::math::save_varis(dest, g, x); + } + }; -template +template auto g2_L4C13_make__(const F0__& g, const F1__& x) { -return g2_L4C13_cfunctor__(g, x); +return g2_L4C13_cfunctor__(g, x); } template @@ -2393,8 +2525,6 @@ T1__> foo(const T0__& g, const T1__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -2409,17 +2539,31 @@ foo(const T0__& g, const T1__& x, std::ostream* pstream__) { throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } +} +template +stan::promote_args_t +foo2(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 10; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } template stan::promote_args_t -bar_L13C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { +bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 10; + current_statement__ = 12; return (x * y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2431,14 +2575,12 @@ bar_L13C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { template stan::promote_args_t -baz_L23C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { +baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 12; + current_statement__ = 14; return (p * y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2455,12 +2597,10 @@ g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 14; + current_statement__ = 16; return (g(pstream__, y) * x); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2505,10 +2645,10 @@ class closures3_model final : public model_base_crtp { x = std::numeric_limits::quiet_NaN(); current_statement__ = 5; - x = 2.0; + x = foo(from_lambda(foo2_functor__()), 2.0, pstream__); current_statement__ = 1; - auto bar = bar_L13C9_make__(x); + auto bar = bar_L16C9_make__(x); current_statement__ = 6; z = std::numeric_limits::quiet_NaN(); @@ -2546,7 +2686,7 @@ class closures3_model final : public model_base_crtp { try { current_statement__ = 1; - auto bar = bar_L13C9_make__(x); + auto bar = bar_L16C9_make__(x); local_scalar_t__ p; p = DUMMY_VAR__; @@ -2554,7 +2694,7 @@ class closures3_model final : public model_base_crtp { p = in__.scalar(); current_statement__ = 3; - auto baz = baz_L23C9_make__(p); + auto baz = baz_L26C9_make__(p); local_scalar_t__ w; w = DUMMY_VAR__; @@ -2589,7 +2729,7 @@ class closures3_model final : public model_base_crtp { try { current_statement__ = 1; - auto bar = bar_L13C9_make__(x); + auto bar = bar_L16C9_make__(x); double p; p = std::numeric_limits::quiet_NaN(); @@ -2605,7 +2745,7 @@ class closures3_model final : public model_base_crtp { return ; } current_statement__ = 3; - auto baz = baz_L23C9_make__(p); + auto baz = baz_L26C9_make__(p); current_statement__ = 4; w = foo(baz, 1.0, pstream__); if (emit_transformed_parameters__) { @@ -2632,7 +2772,7 @@ class closures3_model final : public model_base_crtp { try { current_statement__ = 1; - auto bar = bar_L13C9_make__(x); + auto bar = bar_L16C9_make__(x); int pos__; pos__ = std::numeric_limits::min(); @@ -2855,13 +2995,13 @@ stan::value_type_t>, -1, 1> harmonic_L4C15_impl__(const std::vector>& k, const T1__& t, const T2__& y, std::ostream* pstream__) ; -template +template class harmonic_L4C15_cfunctor__ { - std::vector> k; + stan::capture_type_t>, ref__> k; public: const size_t vars_count__; - harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; - harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; + harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; + harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; harmonic_L4C15_cfunctor__(const std::vector>& k__) : k(k__), vars_count__(count_vars(k__)) {} template @@ -2873,21 +3013,34 @@ stan::value_type_t>, -1, 1> } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = harmonic_L4C15_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(k)); } + using ValueOf__ = harmonic_L4C15_cfunctor__; + using CopyOf__ = harmonic_L4C15_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(k)); + } auto deep_copy_vars__() const { - return harmonic_L4C15_cfunctor__(deep_copy_vars(k)); } - void zero_adjoints__() { stan::math::zero_adjoints(k); } + return CopyOf__(deep_copy_vars(k)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(k); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, k); } + return stan::math::accumulate_adjoints(dest, k); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, k); } + return stan::math::save_varis(dest, k); + } + }; template auto harmonic_L4C15_make__(const std::vector>& k) { -return harmonic_L4C15_cfunctor__(k); +return harmonic_L4C15_cfunctor__(k); } template @@ -2900,8 +3053,6 @@ integrate(const std::vector>& k, stan::value_type_t, T2__>; const auto& init = to_ref(init_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -2927,8 +3078,6 @@ harmonic_L4C15_impl__(const std::vector>& k, T1__, stan::value_type_t>; const auto& y = to_ref(y_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -3385,25 +3534,95 @@ static const std::vector locations_array__ = " (in 'closures5.stan', line 5, column 4 to column 12)", " (in 'closures5.stan', line 6, column 4 to column 14)", " (in 'closures5.stan', line 9, column 4 to line 12, column 5)", - " (in 'closures5.stan', line 13, column 4 to column 36)", + " (in 'closures5.stan', line 13, column 4 to line 16, column 5)", + " (in 'closures5.stan', line 17, column 4 to column 36)", + " (in 'closures5.stan', line 18, column 4 to column 41)", + " (in 'closures5.stan', line 19, column 4 to column 42)", " (in 'closures5.stan', line 2, column 4 to column 10)", " (in 'closures5.stan', line 6, column 11 to column 12)", + " (in 'closures5.stan', line 15, column 8 to column 41)", + " (in 'closures5.stan', line 14, column 52 to line 16, column 5)", " (in 'closures5.stan', line 11, column 8 to column 39)", " (in 'closures5.stan', line 10, column 47 to line 12, column 5)"}; struct foo_rsfunctor__; +template +struct bar_lpdf_rsfunctor__; +template +stan::promote_args_t +bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) ; + +template +class bar_lpdf_L14C9_cfunctor__ { + stan::capture_type_t mu; + public: + const size_t vars_count__; + bar_lpdf_L14C9_cfunctor__(const bar_lpdf_L14C9_cfunctor__&) = default ; + bar_lpdf_L14C9_cfunctor__(bar_lpdf_L14C9_cfunctor__&&) = default ; + bar_lpdf_L14C9_cfunctor__(const F0__& mu__) + : mu(mu__), vars_count__(count_vars(mu__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const std::vector& slice, + const int& start, const int& end) const + { + return bar_lpdf_L14C9_impl__(mu, slice, start, end, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = bar_lpdf_L14C9_cfunctor__; + using CopyOf__ = bar_lpdf_L14C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(mu)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(mu)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(mu); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, mu); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, mu); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper, true>(*this); + } + auto copy_of__() { + return CopyOf__(mu); + } + + }; +template +auto bar_lpdf_L14C9_make__(const F0__& mu) { +return bar_lpdf_L14C9_cfunctor__(mu); +} + template stan::promote_args_t foo_L10C9_impl__(const T0__& mu, const std::vector& slice, const int& start, const int& end, std::ostream* pstream__) ; -template +template class foo_L10C9_cfunctor__ { - F0__ mu; + stan::capture_type_t mu; public: const size_t vars_count__; - foo_L10C9_cfunctor__(const foo_L10C9_cfunctor__&) = default ; - foo_L10C9_cfunctor__(foo_L10C9_cfunctor__&&) = default ; + foo_L10C9_cfunctor__(const foo_L10C9_cfunctor__&) = default ; + foo_L10C9_cfunctor__(foo_L10C9_cfunctor__&&) = default ; foo_L10C9_cfunctor__(const F0__& mu__) : mu(mu__), vars_count__(count_vars(mu__)) {} template @@ -3416,35 +3635,65 @@ T0__> } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = foo_L10C9_cfunctor__; - size_t count_vars__() const { return vars_count__; } - auto value_of__() const { return ValueOf__(value_of(mu)); } + using ValueOf__ = foo_L10C9_cfunctor__; + using CopyOf__ = foo_L10C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(mu)); + } auto deep_copy_vars__() const { - return foo_L10C9_cfunctor__(deep_copy_vars(mu)); } - void zero_adjoints__() { stan::math::zero_adjoints(mu); } + return CopyOf__(deep_copy_vars(mu)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(mu); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, mu); } + return stan::math::accumulate_adjoints(dest, mu); + } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, mu); } + return stan::math::save_varis(dest, mu); + } + }; template auto foo_L10C9_make__(const F0__& mu) { -return foo_L10C9_cfunctor__(mu); +return foo_L10C9_cfunctor__(mu); } +template +stan::promote_args_t +bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 10; + return normal_lpdf(slice, mu, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} template stan::promote_args_t foo_L10C9_impl__(const T0__& mu, const std::vector& slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 7; + current_statement__ = 12; return normal_lpdf(slice, mu, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -3484,14 +3733,14 @@ class closures5_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - current_statement__ = 5; + current_statement__ = 8; context__.validate_dims("data initialization","N","int", context__.to_vec()); N = std::numeric_limits::min(); - current_statement__ = 5; + current_statement__ = 8; N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 6; + current_statement__ = 9; validate_non_negative_index("x", "N", N); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -3541,10 +3790,21 @@ class closures5_model final : public model_base_crtp { current_statement__ = 3; auto foo = foo_L10C9_make__(mu); + current_statement__ = 4; + auto bar_lpdf = bar_lpdf_L14C9_make__(mu); + current_statement__ = 5; lp_accum__.add( reduce_sum(x, 1, pstream__, foo)); + current_statement__ = 6; + lp_accum__.add( + reduce_sum(x, 1, pstream__, + bar_lpdf.template with_propto())); + current_statement__ = 7; + lp_accum__.add( + reduce_sum(x, 1, pstream__, + bar_lpdf.template with_propto())); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -3791,6 +4051,510 @@ stan::math::profile_map& get_stan_profile_data() { + $ ../../../../../install/default/bin/stanc --print-cpp closures6.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures6_model_namespace { + +using stan::io::dump; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static int current_statement__= 0; +static const std::vector locations_array__ = +{" (found before start of program)", + " (in 'closures6.stan', line 2, column 4 to column 11)", + " (in 'closures6.stan', line 3, column 4 to column 11)", + " (in 'closures6.stan', line 6, column 4 to line 9, column 5)", + " (in 'closures6.stan', line 10, column 4 to line 13, column 5)", + " (in 'closures6.stan', line 20, column 4 to column 24)", + " (in 'closures6.stan', line 16, column 4 to column 28)", + " (in 'closures6.stan', line 17, column 4 to column 29)", + " (in 'closures6.stan', line 12, column 8 to column 35)", + " (in 'closures6.stan', line 11, column 34 to line 13, column 5)", + " (in 'closures6.stan', line 8, column 8 to column 31)", + " (in 'closures6.stan', line 7, column 25 to line 9, column 5)"}; + +template +stan::promote_args_t +foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) ; + +class foo_lpdf_L11C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lpdf_L11C9_cfunctor__(const foo_lpdf_L11C9_cfunctor__&) = default ; + foo_lpdf_L11C9_cfunctor__(foo_lpdf_L11C9_cfunctor__&&) = default ; + foo_lpdf_L11C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y, const T1__& x) const + { + return foo_lpdf_L11C9_impl__(y, x, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lpdf_L11C9_cfunctor__; + using CopyOf__ = foo_lpdf_L11C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); + } + + }; +auto foo_lpdf_L11C9_make__() { +return foo_lpdf_L11C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + +class foo_rng_L7C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_rng_L7C9_cfunctor__(const foo_rng_L7C9_cfunctor__&) = default ; + foo_rng_L7C9_cfunctor__(foo_rng_L7C9_cfunctor__&&) = default ; + foo_rng_L7C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const + { + return foo_rng_L7C9_impl__(x, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_rng_L7C9_cfunctor__; + using CopyOf__ = foo_rng_L7C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_rng_L7C9_make__() { +return foo_rng_L7C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 8; + return normal_lpdf(y, x, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 10; + return normal_rng(x, 1, base_rng__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures6_model final : public model_base_crtp { + + private: + + + public: + ~closures6_model() { } + + inline std::string model_name() const final { return "closures6_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures6_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "closures6_model_namespace::closures6_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + num_params_r__ += 1; + num_params_r__ += 1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template * = nullptr, stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static const char* function__ = "closures6_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 1; + s = in__.scalar(); + local_scalar_t__ k; + k = DUMMY_VAR__; + + current_statement__ = 2; + k = in__.scalar(); + + current_statement__ = 3; + auto foo_rng = foo_rng_L7C9_make__(); + + current_statement__ = 4; + auto foo_lpdf = foo_lpdf_L11C9_make__(); + { + current_statement__ = 6; + lp_accum__.add(foo_lpdf.template operator()(pstream__, s, k)); + current_statement__ = 7; + lp_accum__.add( + foo_lpdf.template operator()(pstream__, s, k)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, stan::require_vector_like_vt* = nullptr, stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static const char* function__ = "closures6_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + double s; + s = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + s = in__.scalar(); + double k; + k = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + k = in__.scalar(); + + + vars__.emplace_back(s); + vars__.emplace_back(k); + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 3; + auto foo_rng = foo_rng_L7C9_make__(); + current_statement__ = 4; + auto foo_lpdf = foo_lpdf_L11C9_make__(); + if (logical_negation(emit_generated_quantities__)) { + return ; + } + double m; + m = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + m = foo_rng(base_rng__, pstream__, k); + vars__.emplace_back(m); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double s; + s = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + s = context__.vals_r("s")[(1 - 1)]; + double k; + k = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + k = context__.vals_r("k")[(1 - 1)]; + vars__.emplace_back(s); + vars__.emplace_back(k); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("s"); + names__.emplace_back("k"); + names__.emplace_back("m"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + dimss__.clear(); + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + dimss__.emplace_back(std::vector{}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "s"); + param_names__.emplace_back(std::string() + "k"); + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "m"); + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "s"); + param_names__.emplace_back(std::string() + "k"); + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "m"); + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + std::stringstream s__; + s__ << "[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + std::stringstream s__; + s__ << "[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) { + vars.coeffRef(i) = vars_vec[i]; + } + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) { + params_r.coeffRef(i) = params_r_vec[i]; + } + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures6_model_namespace::closures6_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures6_model_namespace::profiles__; +} + +#endif + + + $ ../../../../../install/default/bin/stanc --print-cpp eight_schools_ncp.stan // Code generated by %%NAME%% %%VERSION%% @@ -5863,8 +6627,6 @@ return binomialf(phi, theta, x_r, x_i, pstream__); int foo(const int& n, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -5889,8 +6651,6 @@ sho(const T0__& t, const std::vector& y, const std::vector& theta, const std::vector& x, const std::vector& x_int, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -5916,8 +6676,6 @@ sho(const T0__& t, const std::vector& y, double foo_bar0(std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -5934,8 +6692,6 @@ template stan::promote_args_t foo_bar1(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -5953,8 +6709,6 @@ stan::promote_args_t foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -5987,8 +6741,6 @@ template stan::promote_args_t foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6005,8 +6757,6 @@ template stan::promote_args_t foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6025,8 +6775,6 @@ T1__> foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6062,8 +6810,6 @@ unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, int foo_1(const int& a, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6299,8 +7045,6 @@ foo_1(const int& a, std::ostream* pstream__) { int foo_2(const int& a, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6332,8 +7076,6 @@ template std::vector> foo_3(const T0__& t, const int& n, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6368,8 +7110,6 @@ template void foo_4(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6391,8 +7131,6 @@ T3__> relative_diff(const T0__& x, const T1__& y, const T2__& max_, const T3__& min_, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6449,8 +7187,6 @@ foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, stan::value_type_t>; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6474,8 +7210,6 @@ foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, T2__, T3__, T4__>; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6520,8 +7254,6 @@ covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; const auto& mat = to_ref(mat_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6576,8 +7308,6 @@ f0(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6615,8 +7345,6 @@ f1(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6651,8 +7379,6 @@ f2(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6687,8 +7413,6 @@ f3(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6725,8 +7449,6 @@ f4(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6763,8 +7485,6 @@ f5(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6801,8 +7521,6 @@ f6(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6839,8 +7557,6 @@ f7(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6877,8 +7593,6 @@ f8(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6915,8 +7629,6 @@ f9(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6953,8 +7665,6 @@ f10(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -6991,8 +7701,6 @@ f11(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7029,8 +7737,6 @@ f12(const int& a1, const std::vector& a2, T11__>>; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7046,8 +7752,6 @@ f12(const int& a1, const std::vector& a2, void foo_6(std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7080,8 +7784,6 @@ foo_6(std::ostream* pstream__) { Eigen::Matrix matfoo(std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7101,8 +7803,6 @@ matfoo(std::ostream* pstream__) { Eigen::Matrix vecfoo(std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7120,8 +7820,6 @@ template Eigen::Matrix, -1, 1> vecmufoo(const T0__& mu, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7145,8 +7843,6 @@ template Eigen::Matrix, -1, 1> vecmubar(const T0__& mu, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7180,8 +7876,6 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, T2__>; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -7214,8 +7908,6 @@ binomialf(const T0__& phi_arg__, const T1__& theta_arg__, stan::value_type_t>; const auto& phi = to_ref(phi_arg__); const auto& theta = to_ref(theta_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -14156,8 +14848,6 @@ sho(const T0__& t, const std::vector& y, const std::vector& theta, const std::vector& x, const std::vector& x_int, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -14187,8 +14877,6 @@ integrand(const T0__& x, const T1__& xc, const std::vector& theta, const std::vector& x_r, const std::vector& x_i, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -14212,8 +14900,6 @@ foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, T2__>; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -14237,8 +14923,6 @@ goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, T2__>; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -14255,8 +14939,6 @@ template stan::promote_args_t map_rectfake(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -14280,8 +14962,6 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, T2__>; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -16632,8 +17312,6 @@ f(const T0__& t, const T1__& z_arg__, const T2__& a, const T3__& b_arg__, stan::value_type_t>; const auto& z = to_ref(z_arg__); const auto& b = to_ref(b_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -20458,8 +21136,6 @@ dz_dt(const T0__& t, const std::vector& z, const std::vector& theta, const std::vector& x_r, const std::vector& x_i, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -23546,8 +24222,6 @@ stan::promote_args_t g(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -23572,8 +24246,6 @@ T3__> h(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24686,8 +25358,6 @@ stan::promote_args_t g1(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24705,8 +25375,6 @@ stan::promote_args_t g2(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24733,8 +25401,6 @@ stan::promote_args_t g3(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24761,8 +25427,6 @@ stan::promote_args_t g4(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24790,8 +25454,6 @@ stan::promote_args_t g5(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24821,8 +25483,6 @@ stan::promote_args_t g6(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24853,8 +25513,6 @@ stan::promote_args_t g7(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24885,8 +25543,6 @@ stan::promote_args_t g8(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24918,8 +25574,6 @@ T3__> h1(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24941,8 +25595,6 @@ T3__> h2(const std::vector& y, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24970,8 +25622,6 @@ T3__> h3(const std::vector& y, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -24999,8 +25649,6 @@ T3__> h4(const std::vector& y, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -25029,8 +25677,6 @@ T3__> h5(const std::vector& y, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -25062,8 +25708,6 @@ h6(const std::vector& y, const int& start, const int& end, const std::vector>>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -25096,8 +25740,6 @@ h7(const std::vector& y, const int& start, const int& end, const std::vector>>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -25130,8 +25772,6 @@ h8(const std::vector& y, const int& start, const int& end, const std::vector>>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -27963,8 +28603,6 @@ stan::promote_args_t f1(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -27982,8 +28620,6 @@ stan::promote_args_t f1a(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28001,8 +28637,6 @@ stan::promote_args_t f2(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28020,8 +28654,6 @@ stan::promote_args_t f3(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28039,8 +28671,6 @@ stan::promote_args_t f4(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28058,8 +28688,6 @@ stan::promote_args_t f5(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28077,8 +28705,6 @@ stan::promote_args_t f6(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28096,8 +28722,6 @@ stan::promote_args_t f7(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28115,8 +28739,6 @@ stan::promote_args_t f8(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28133,8 +28755,6 @@ double f9(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28151,8 +28771,6 @@ double f10(const std::vector>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28169,8 +28787,6 @@ double f11(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28188,8 +28804,6 @@ stan::promote_args_t f12(const std::vector>>& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28208,8 +28822,6 @@ T3__> g1(const std::vector& y_slice, const int& start, const int& end, const T3__& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28230,8 +28842,6 @@ g2(const std::vector& y_slice, const int& start, const int& end, using local_scalar_t__ = stan::promote_args_t>; const auto& a = to_ref(a_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28252,8 +28862,6 @@ g3(const std::vector& y_slice, const int& start, const int& end, using local_scalar_t__ = stan::promote_args_t>; const auto& a = to_ref(a_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28274,8 +28882,6 @@ g4(const std::vector& y_slice, const int& start, const int& end, using local_scalar_t__ = stan::promote_args_t>; const auto& a = to_ref(a_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28294,8 +28900,6 @@ T3__> g5(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28314,8 +28918,6 @@ T3__> g6(const std::vector& y_slice, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28334,8 +28936,6 @@ T3__> g7(const std::vector& y_slice, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28354,8 +28954,6 @@ T3__> g8(const std::vector& y_slice, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28374,8 +28972,6 @@ T3__> g9(const std::vector& y_slice, const int& start, const int& end, const std::vector>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28395,8 +28991,6 @@ g10(const std::vector& y_slice, const int& start, const int& end, const std::vector>>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28416,8 +29010,6 @@ g11(const std::vector& y_slice, const int& start, const int& end, const std::vector>>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28437,8 +29029,6 @@ g12(const std::vector& y_slice, const int& start, const int& end, const std::vector>>& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28489,8 +29079,6 @@ s(const std::vector& y_slice, const int& start, const int& end, const auto& c = to_ref(c_arg__); const auto& d = to_ref(d_arg__); const auto& e = to_ref(e_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -28507,8 +29095,6 @@ s(const std::vector& y_slice, const int& start, const int& end, double r(std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -36177,8 +36763,6 @@ template stan::promote_args_t normal(const T0__& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -36527,8 +37111,6 @@ stan::promote_args_t lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index c081f55570..e72e99e639 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -105,8 +105,6 @@ foo1(const T0__& a, const int& b, const std::vector& c, const auto& d = to_ref(d_arg__); const auto& e = to_ref(e_arg__); const auto& f = to_ref(f_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -129,8 +127,6 @@ foo2(const T0__& a_arg__, const std::vector>& b, T1__, T2__>; const auto& a = to_ref(a_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -151,8 +147,6 @@ foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { stan::value_type_t>; const auto& a = to_ref(a_arg__); const auto& b = to_ref(b_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { diff --git a/test/integration/good/code-gen/mir.expected b/test/integration/good/code-gen/mir.expected index 5d1579e2dd..b81b43d4da 100644 --- a/test/integration/good/code-gen/mir.expected +++ b/test/integration/good/code-gen/mir.expected @@ -1,8 +1,8 @@ $ ../../../../../install/default/bin/stanc --debug-mir mother.stan ((functions_block - (((fdrt (UInt)) (fdname foo) (fdcaptures ()) + (((fdrt (UInt)) (fdname foo) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable n UInt))) (fdbody ()) (fdloc )) - ((fdrt (UInt)) (fdname foo) (fdcaptures ()) + ((fdrt (UInt)) (fdname foo) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable n UInt))) (fdbody (((pattern @@ -46,13 +46,13 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UReal))) (fdname sho) (fdcaptures ()) + ((fdrt ((UArray UReal))) (fdname sho) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable t UReal) (AutoDiffable y (UArray UReal)) (AutoDiffable theta (UArray UReal)) (DataOnly x (UArray UReal)) (DataOnly x_int (UArray UInt)))) (fdbody ()) (fdloc )) - ((fdrt ((UArray UReal))) (fdname sho) (fdcaptures ()) + ((fdrt ((UArray UReal))) (fdname sho) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable t UReal) (AutoDiffable y (UArray UReal)) (AutoDiffable theta (UArray UReal)) (DataOnly x (UArray UReal)) @@ -148,7 +148,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_bar0) (fdcaptures ()) (fdargs ()) + ((fdrt (UReal)) (fdname foo_bar0) (fdsuffix FnPure) (fdcaptures ()) + (fdargs ()) (fdbody (((pattern (Block @@ -159,7 +160,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_bar1) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_bar1) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable x UReal))) (fdbody (((pattern @@ -171,7 +172,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_bar2) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_bar2) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable x UReal) (AutoDiffable y UReal))) (fdbody (((pattern @@ -183,7 +184,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lpmf) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_lpmf) (fdsuffix FnLpdf) (fdcaptures ()) (fdargs ((AutoDiffable y UInt) (AutoDiffable lambda UReal))) (fdbody (((pattern @@ -195,7 +196,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lcdf) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_lcdf) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable y UInt) (AutoDiffable lambda UReal))) (fdbody (((pattern @@ -207,7 +208,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lccdf) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_lccdf) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable y UInt) (AutoDiffable lambda UReal))) (fdbody (((pattern @@ -219,7 +220,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_rng) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_rng) (fdsuffix FnRng) (fdcaptures ()) (fdargs ((AutoDiffable mu UReal) (AutoDiffable sigma UReal))) (fdbody (((pattern @@ -238,7 +239,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname unit_normal_lp) (fdcaptures ()) + ((fdrt ()) (fdname unit_normal_lp) (fdsuffix FnTarget) (fdcaptures ()) (fdargs ((AutoDiffable u UReal))) (fdbody (((pattern @@ -274,7 +275,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UInt)) (fdname foo_1) (fdcaptures ()) + ((fdrt (UInt)) (fdname foo_1) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a UInt))) (fdbody (((pattern @@ -1103,7 +1104,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UInt)) (fdname foo_2) (fdcaptures ()) + ((fdrt (UInt)) (fdname foo_2) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a UInt))) (fdbody (((pattern @@ -1173,7 +1174,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UReal))) (fdname foo_3) (fdcaptures ()) + ((fdrt ((UArray UReal))) (fdname foo_3) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable t UReal) (AutoDiffable n UInt))) (fdbody (((pattern @@ -1193,7 +1194,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_lp) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_lp) (fdsuffix FnTarget) (fdcaptures ()) (fdargs ((AutoDiffable x UReal))) (fdbody (((pattern @@ -1212,7 +1213,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname foo_4) (fdcaptures ()) + ((fdrt ()) (fdname foo_4) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable x UReal))) (fdbody (((pattern @@ -1226,7 +1227,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname relative_diff) (fdcaptures ()) + ((fdrt (UReal)) (fdname relative_diff) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable x UReal) (AutoDiffable y UReal) (AutoDiffable max_ UReal) (AutoDiffable min_ UReal))) @@ -1377,7 +1378,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname foo_5) (fdcaptures ()) + ((fdrt (UVector)) (fdname foo_5) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable shared_params UVector) (AutoDiffable job_params UVector) (DataOnly data_r (UArray UReal)) (DataOnly data_i (UArray UInt)))) @@ -1405,7 +1406,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_five_args) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_five_args) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable x1 UReal) (AutoDiffable x2 UReal) (AutoDiffable x3 UReal) (AutoDiffable x4 UReal) (AutoDiffable x5 UReal))) @@ -1419,7 +1420,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname foo_five_args_lp) (fdcaptures ()) + ((fdrt (UReal)) (fdname foo_five_args_lp) (fdsuffix FnTarget) + (fdcaptures ()) (fdargs ((AutoDiffable x1 UReal) (AutoDiffable x2 UReal) (AutoDiffable x3 UReal) (AutoDiffable x4 UReal) (AutoDiffable x5 UReal) @@ -1434,7 +1436,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UMatrix)) (fdname covsqrt2corsqrt) (fdcaptures ()) + ((fdrt (UMatrix)) (fdname covsqrt2corsqrt) (fdsuffix FnPure) + (fdcaptures ()) (fdargs ((AutoDiffable mat UMatrix) (AutoDiffable invert UInt))) (fdbody (((pattern @@ -1532,7 +1535,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname f0) (fdcaptures ()) + ((fdrt ()) (fdname f0) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1552,7 +1555,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UInt)) (fdname f1) (fdcaptures ()) + ((fdrt (UInt)) (fdname f1) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1572,7 +1575,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UInt))) (fdname f2) (fdcaptures ()) + ((fdrt ((UArray UInt))) (fdname f2) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1593,7 +1596,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UInt)))) (fdname f3) (fdcaptures ()) + ((fdrt ((UArray (UArray UInt)))) (fdname f3) (fdsuffix FnPure) + (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1615,7 +1619,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname f4) (fdcaptures ()) + ((fdrt (UReal)) (fdname f4) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1635,7 +1639,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UReal))) (fdname f5) (fdcaptures ()) + ((fdrt ((UArray UReal))) (fdname f5) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1657,7 +1661,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UReal)))) (fdname f6) (fdcaptures ()) + ((fdrt ((UArray (UArray UReal)))) (fdname f6) (fdsuffix FnPure) + (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1679,7 +1684,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname f7) (fdcaptures ()) + ((fdrt (UVector)) (fdname f7) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1699,7 +1704,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UVector))) (fdname f8) (fdcaptures ()) + ((fdrt ((UArray UVector))) (fdname f8) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1721,7 +1726,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UVector)))) (fdname f9) (fdcaptures ()) + ((fdrt ((UArray (UArray UVector)))) (fdname f9) (fdsuffix FnPure) + (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1743,7 +1749,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UMatrix)) (fdname f10) (fdcaptures ()) + ((fdrt (UMatrix)) (fdname f10) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1763,7 +1769,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray UMatrix))) (fdname f11) (fdcaptures ()) + ((fdrt ((UArray UMatrix))) (fdname f11) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1785,7 +1791,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ((UArray (UArray UMatrix)))) (fdname f12) (fdcaptures ()) + ((fdrt ((UArray (UArray UMatrix)))) (fdname f12) (fdsuffix FnPure) + (fdcaptures ()) (fdargs ((AutoDiffable a1 UInt) (AutoDiffable a2 (UArray UInt)) (AutoDiffable a3 (UArray (UArray UInt))) (AutoDiffable a4 UReal) @@ -1807,7 +1814,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt ()) (fdname foo_6) (fdcaptures ()) (fdargs ()) + ((fdrt ()) (fdname foo_6) (fdsuffix FnPure) (fdcaptures ()) (fdargs ()) (fdbody (((pattern (Block @@ -1866,7 +1873,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UMatrix)) (fdname matfoo) (fdcaptures ()) (fdargs ()) + ((fdrt (UMatrix)) (fdname matfoo) (fdsuffix FnPure) (fdcaptures ()) + (fdargs ()) (fdbody (((pattern (Block @@ -1980,7 +1988,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname vecfoo) (fdcaptures ()) (fdargs ()) + ((fdrt (UVector)) (fdname vecfoo) (fdsuffix FnPure) (fdcaptures ()) + (fdargs ()) (fdbody (((pattern (Block @@ -2026,7 +2035,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname vecmufoo) (fdcaptures ()) + ((fdrt (UVector)) (fdname vecmufoo) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable mu UReal))) (fdbody (((pattern @@ -2057,7 +2066,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname vecmubar) (fdcaptures ()) + ((fdrt (UVector)) (fdname vecmubar) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable mu UReal))) (fdbody (((pattern @@ -2148,7 +2157,8 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname algebra_system) (fdcaptures ()) + ((fdrt (UVector)) (fdname algebra_system) (fdsuffix FnPure) + (fdcaptures ()) (fdargs ((AutoDiffable x UVector) (AutoDiffable y UVector) (AutoDiffable dat (UArray UReal)) (AutoDiffable dat_int (UArray UInt)))) @@ -2234,7 +2244,7 @@ (meta ))))) (meta )))) (fdloc )) - ((fdrt (UVector)) (fdname binomialf) (fdcaptures ()) + ((fdrt (UVector)) (fdname binomialf) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable phi UVector) (AutoDiffable theta UVector) (DataOnly x_r (UArray UReal)) (DataOnly x_i (UArray UInt)))) @@ -9057,7 +9067,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -9079,7 +9089,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -9107,7 +9117,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -9135,7 +9145,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -9157,7 +9167,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -9185,7 +9195,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -9207,7 +9217,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -10505,7 +10515,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (DataOnly (UArray UReal)) (DataOnly (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var tmp)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11842,7 +11852,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -11864,7 +11874,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -11892,7 +11902,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x)) (meta ((type_ UVector) (loc ) (adlevel DataOnly)))) @@ -11920,7 +11930,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11942,7 +11952,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11970,7 +11980,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) @@ -11992,7 +12002,7 @@ (UFun ((AutoDiffable UVector) (AutoDiffable UVector) (AutoDiffable (UArray UReal)) (AutoDiffable (UArray UInt))) - (ReturnType UVector) false)) + (ReturnType UVector) (FnPure false))) (loc ) (adlevel AutoDiffable)))) ((pattern (Var x_p)) (meta ((type_ UVector) (loc ) (adlevel AutoDiffable)))) diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index 7d5c5ae69b..eab4a7113f 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -133,8 +133,6 @@ template stan::promote_args_t my_log1p_exp(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -151,8 +149,6 @@ template stan::promote_args_t array_fun(const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -168,8 +164,6 @@ array_fun(const std::vector& a, std::ostream* pstream__) { double int_array_fun(const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -187,8 +181,6 @@ Eigen::Matrix>, -1, 1> my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; const auto& x = to_ref(x_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -213,8 +205,6 @@ my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { int int_only_multiplication(const int& a, const int& b, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -231,8 +221,6 @@ template stan::promote_args_t test_lgamma(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -267,8 +255,6 @@ template stan::promote_args_t test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -455,8 +441,6 @@ Eigen::Matrix>, -1, 1> integrand(const T0__& x_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; const auto& x = to_ref(x_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -476,8 +460,6 @@ integrand_ode(const T0__& r, const std::vector& f, const std::vector& theta, const std::vector& x_r, const std::vector& x_i, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -505,8 +487,6 @@ integrand_ode(const T0__& r, const std::vector& f, double ode_integrate(std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index 4066f65a34..50ba60e279 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -83,8 +83,6 @@ simple_SIR(const T0__& t, const std::vector& y, const std::vector& theta, const std::vector& x_r, const std::vector& x_i, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -988,8 +986,6 @@ return prob_uncaptured(nind, n_occasions, p, phi, pstream__); int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1025,8 +1021,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -1078,8 +1072,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, stan::value_type_t>; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -9457,8 +9449,6 @@ return prob_uncaptured(nind, n_occasions, p, phi, pstream__); int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -9494,8 +9484,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -9547,8 +9535,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, stan::value_type_t>; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -12046,8 +12032,6 @@ js_super_lp(const std::vector>& y, int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -12083,8 +12067,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -12136,8 +12118,6 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, stan::value_type_t>; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -18523,8 +18503,6 @@ return prob_uncaptured(nind, n_occasions, p, phi, pstream__); int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -18560,8 +18538,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -18613,8 +18589,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, stan::value_type_t>; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -21221,8 +21195,6 @@ return seq_cprob(gamma, pstream__); int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -21258,8 +21230,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -21311,8 +21281,6 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, stan::value_type_t>; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -22047,8 +22015,6 @@ Eigen::Matrix>, -1, 1> seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; const auto& gamma = to_ref(gamma_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -26303,8 +26269,6 @@ return prob_uncaptured(nind, n_occasions, p, phi, pstream__); int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -26340,8 +26304,6 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { int last_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -26393,8 +26355,6 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, stan::value_type_t>; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -31200,8 +31160,6 @@ nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, int rfun(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { diff --git a/test/unit/Optimize.ml b/test/unit/Optimize.ml index 18e0286901..ce2abd0fbb 100644 --- a/test/unit/Optimize.ml +++ b/test/unit/Optimize.ml @@ -247,7 +247,7 @@ let%expect_test "list collapsing" = [%expect {| ((functions_block - (((fdrt ()) (fdname f) (fdcaptures ()) + (((fdrt ()) (fdname f) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable x UInt) (AutoDiffable y UMatrix))) (fdbody (((pattern @@ -264,7 +264,7 @@ let%expect_test "list collapsing" = (meta ))))) (meta )))) (fdloc )) - ((fdrt (UReal)) (fdname g) (fdcaptures ()) + ((fdrt (UReal)) (fdname g) (fdsuffix FnPure) (fdcaptures ()) (fdargs ((AutoDiffable z UInt))) (fdbody (((pattern diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 15084c063d..b5e685e89d 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -16,6 +16,7 @@ let%expect_test "udf" = let w e = Expr.{Fixed.pattern= e; meta= Typed.Meta.empty} in { fdrt= None ; fdname= "sars" + ; fdsuffix= FnPure ; fdcaptures= None ; fdargs= [(DataOnly, "x", UMatrix); (AutoDiffable, "y", URowVector)] ; fdbody= @@ -48,8 +49,6 @@ let%expect_test "udf" = stan::value_type_t>; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { @@ -69,6 +68,7 @@ let%expect_test "udf-expressions" = let w e = Expr.{Fixed.pattern= e; meta= Typed.Meta.empty} in { fdrt= Some UMatrix ; fdname= "sars" + ; fdsuffix= FnPure ; fdcaptures= None ; fdargs= [ (DataOnly, "x", UMatrix) @@ -120,8 +120,6 @@ let%expect_test "udf-expressions" = const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); const auto& z = to_ref(z_arg__); - const static bool propto__ = true; - (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { From f4cf3e6c545eb0a6ea57af4343ffda7829800564 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sun, 21 Feb 2021 16:52:04 +0200 Subject: [PATCH 13/24] higher-order userdef suffix functions --- src/frontend/Semantic_check.ml | 28 +- src/frontend/parser.mly | 15 +- src/middle/Semantic_error.ml | 7 - src/middle/Semantic_error.mli | 1 - src/stan_math_backend/Expression_gen.ml | 9 +- src/stan_math_backend/Stan_math_code_gen.ml | 34 +- src/stan_math_backend/Statement_gen.ml | 2 +- .../cli-args/filename_good.expected | 2 + test/integration/good/code-gen/cl.expected | 2 + test/integration/good/code-gen/closures7.stan | 37 + test/integration/good/code-gen/cpp.expected | 949 ++++++++++++++++++ .../good/code-gen/expressions/cpp.expected | 2 + .../good/code-gen/opencl/cpp.expected | 4 + .../good/code-gen/profiling/cpp.expected | 2 + .../good/compiler-optimizations/cpp.expected | 52 + 15 files changed, 1097 insertions(+), 49 deletions(-) create mode 100644 test/integration/good/code-gen/closures7.stan diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 3f414eaf70..aab46f263e 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -1651,16 +1651,6 @@ and semantic_check_fundef_decl ~loc ~is_closure id body = Symbol_table.set_is_assigned vm id.name ; ok ()) -and semantic_check_closure_id ~is_closure id = - if not is_closure then Validate.ok () - else - let f suffix = not (String.is_suffix ~suffix id.name) in - if - List.for_all ~f - ["_rng"; "_lpdf"; "_lpmf"; "_lcdf"; "_lccdf"; "_log"; "_lp"] - then Validate.ok () - else Validate.error @@ Semantic_error.impure_closure id.id_loc - and semantic_check_fundef_dist_rt ~loc id return_ty = Validate.( let is_dist = @@ -1771,12 +1761,18 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = (semantic_check_pmf_fundef_first_arg_ty ~loc id uarg_types) >>= fun () -> List.map - ~f:(fun (_, ut, x) -> - check_fresh_variable x false - |> apply_const - (semantic_check_closure_id - ~is_closure:(UnsizedType.is_fun_type ut) - x) ) + ~f:(fun (_, ut, id) -> + match ut with + | UFun (uarg_types, _, (FnLpdf, _)) -> + check_fresh_variable id true + |> apply_const + (semantic_check_pdf_fundef_first_arg_ty ~loc:id.id_loc + id uarg_types) + |> apply_const + (semantic_check_pmf_fundef_first_arg_ty ~loc:id.id_loc + id uarg_types) + | UFun _ -> check_fresh_variable id true + | _ -> check_fresh_variable id false ) uargs |> sequence |> map ~f:(List.iter ~f:Fn.id) diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 3a31eefbb0..920dadf95a 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -21,6 +21,17 @@ let rec iterate_n f x = function | n -> iterate_n f (f x) (n - 1) let nest_unsized_array basic_type n = iterate_n (fun t -> UnsizedType.UArray t) basic_type n + +let fix_argtypes = + let open UnsizedType in + let suffix = Fun_kind.suffix_from_name in + let f (ad, ut, id) = + match ut with + | UFun (a, r, (FnPure, true)) -> + (ad, UFun (a, r, (suffix id.name, true)), id) + | ut -> (ad, ut, id) + in + List.map ~f %} %token FUNCTIONBLOCK DATABLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK @@ -180,7 +191,7 @@ function_def: { grammar_logger "function_def" ; {stmt=FunDef {returntype = rt; funname = name; - captures = None; arguments = args; body=b;}; + captures = None; arguments = fix_argtypes args; body=b;}; smeta={loc=Location_span.of_positions_exn $loc} } } @@ -191,7 +202,7 @@ closure_def: { grammar_logger "function_def" ; {stmt=FunDef {returntype = rt; funname = name; - captures = Some (); arguments = args; body=b;}; + captures = Some (); arguments = fix_argtypes args; body=b;}; smeta={loc=Location_span.of_positions_exn $loc} } } diff --git a/src/middle/Semantic_error.ml b/src/middle/Semantic_error.ml index 6e7b837a7d..141a093cdf 100644 --- a/src/middle/Semantic_error.ml +++ b/src/middle/Semantic_error.ml @@ -408,7 +408,6 @@ module StatementError = struct | FunDeclExists of string | FunDeclNoDefn | ClosureNoDefn - | ImpureClosure | RecursiveClosure | FunDeclNeedsBlock | NonRealProbFunDef @@ -490,10 +489,6 @@ For example, "target += normal_lpdf(y, 0, 1)" should become "y ~ normal(0, 1)." | ClosureNoDefn -> Fmt.pf ppf "Local function is declared without specifying a definition." - | ImpureClosure -> - Fmt.pf ppf - "Function argument cannot have suffix _rng, _lpdf, _lpmf, _lcdf, \ - _lccdf, _log, or _lp." | RecursiveClosure -> Fmt.pf ppf "Local function cannot be recursive." | FunDeclNeedsBlock -> Fmt.pf ppf "Function definitions must be wrapped in curly braces." @@ -737,8 +732,6 @@ let fn_decl_needs_block loc = let non_real_prob_fn_def loc = StatementError (loc, StatementError.NonRealProbFunDef) -let impure_closure loc = StatementError (loc, StatementError.ImpureClosure) - let recursive_closure loc = StatementError (loc, StatementError.RecursiveClosure) diff --git a/src/middle/Semantic_error.mli b/src/middle/Semantic_error.mli index 9de0372f80..e055f0aed7 100644 --- a/src/middle/Semantic_error.mli +++ b/src/middle/Semantic_error.mli @@ -117,7 +117,6 @@ val fn_decl_without_def : Location_span.t -> t val closure_without_def : Location_span.t -> t val fn_decl_needs_block : Location_span.t -> t val non_real_prob_fn_def : Location_span.t -> t -val impure_closure : Location_span.t -> t val recursive_closure : Location_span.t -> t val prob_density_non_real_variate : diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 47deb9896a..bfd434536d 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -131,15 +131,14 @@ let suffix_args f = let demangle_unnormalized_name udf f = if f = "multiply_log" || f = "binomial_coefficient_log" then f - else if Utils.is_unnormalized_distribution f then + else if Utils.is_unnormalized_distribution f || (udf && is_user_lp f) then Utils.stdlib_distribution_name f ^ "" - else if - Utils.is_distribution_name f || (udf && (is_user_dist f || is_user_lp f)) - then f ^ "" + else if Utils.is_distribution_name f || (udf && is_user_dist f) then + f ^ "" else f let demangle_unnormalized_closure f = - if Utils.is_unnormalized_distribution f then + if Utils.is_unnormalized_distribution f || is_user_lp f then Utils.stdlib_distribution_name f ^ ".template operator()" else if Utils.is_distribution_name f then f ^ ".template operator()" else f diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index e722e93b48..b8aab90c7c 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -358,7 +358,9 @@ let pp_closure ppf (fdrt, fdname, fdsuffix, fdcaptures, fdargs) = | FnLpdf | FnPure -> ["pstream__"] in let sfx = - match fdsuffix with FnLpdf -> "_impl__" | _ -> "_impl__" + match fdsuffix with + | FnLpdf | FnTarget -> "_impl__" + | FnPure | FnRng -> "_impl__" in pf ppf "%a const @,{@,return %a;@,}" pp_sig (fdrt, "operator()", fdargs) @@ -434,8 +436,8 @@ let pp_closure ppf (fdrt, fdname, fdsuffix, fdcaptures, fdargs) = if fdsuffix = FnLpdf then pf ppf "template@ auto with_propto() {@ return \ - stan::math::lpdf_wrapper<@[propto, %s%a, true@]>(*this);@ }@ auto \ - copy_of__() {@ return CopyOf__(@[%a@]);@ }" + stan::math::lpdf_wrapper<@[propto, %s%a, true@]>(*this);@ }@ \ + auto copy_of__() {@ return CopyOf__(@[%a@]);@ }" clsname pp_template false (list ~sep:comma string) (List.map ~f:(fun (_, _, x, _) -> x) fdcaptures) in @@ -458,7 +460,8 @@ let pp_closure ppf (fdrt, fdname, fdsuffix, fdcaptures, fdargs) = if not (List.is_empty templates) then pf ppf "<%a>" (list ~sep:comma string) ("false" :: templates) in - pf ppf "@[%aauto %s_make__(@[%a@]) {@ return %s%a(@[%a@]);@ }@]@," + pf ppf + "@[%aauto %s_make__(@[%a@]) {@ return %s%a(@[%a@]);@ }@]@," pp_make_template () fdname (list ~sep:comma string) ctor_args clsname pp_types () (list ~sep:comma string) (List.map ~f:(fun (_, _, id, _) -> id) fdcaptures) @@ -476,11 +479,7 @@ let pp_forward_decl funs_used_in_reduce_sum ppf if fdbody <> None then ( if Set.mem funs_used_in_reduce_sum fdname then pp_rs_functor ppf (fdrt, fdname, fdargs) ; - if - not - ( is_user_lp fdname || is_user_dist fdname - || String.is_suffix fdname ~suffix:"_rng" ) - then + if fdsuffix = FnPure then pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname functor_suffix pp_opsig (fdrt, "operator()", fdargs) @@ -513,13 +512,13 @@ let get_impl = function (* Creates functions outside the model namespaces which only call the ones inside the namespaces *) let pp_standalone_fun_def namespace_fun ppf - Program.({fdname; fdargs; fdbody; fdrt; _}) = + Program.({fdname; fdargs; fdsuffix; fdbody; fdrt; _}) = let extra, extra_templates = - if is_user_lp fdname then - (["lp__"; "lp_accum__"], ["double"; "stan::math::accumulator"]) - else if String.is_suffix fdname ~suffix:"_rng" then - (["base_rng__"], ["boost::ecuyer1988"]) - else ([], []) + match fdsuffix with + | FnTarget -> + (["lp__"; "lp_accum__"], ["double"; "stan::math::accumulator"]) + | FnRng -> (["base_rng__"], ["boost::ecuyer1988"]) + | FnLpdf | FnPure -> ([], []) in let args = List.map @@ -546,7 +545,7 @@ let pp_standalone_fun_def namespace_fun ppf pf ppf "@,%s@,%s %s%a @,{@, %s%s::%a;@,}@," mark_function_comment return_type fdname pp_sig_standalone "" return_stmt namespace_fun pp_call_str - ( ( if is_user_dist fdname || is_user_lp fdname then fdname ^ "" + ( ( if fdsuffix = FnLpdf || fdsuffix = FnTarget then fdname ^ "" else fdname ) , List.map ~f:(fun (_, name, _) -> name) fdargs @ extra @ ["pstream__"] ) @@ -717,7 +716,8 @@ let pp_write_array ppf {Program.prog_name; generate_quantities; _} = in let intro ppf () = pf ppf "%a@ %a@ %a" (list ~sep:cut string) - [ "using local_scalar_t__ = double;"; "vars__.resize(0);" + [ "const static bool propto__ = true;"; "(void) propto__;" + ; "using local_scalar_t__ = double;"; "vars__.resize(0);" ; "stan::io::reader in__(params_r__, params_i__);" ; "double lp__ = 0.0;" ; "(void) lp__; // dummy to suppress unused var warning" diff --git a/src/stan_math_backend/Statement_gen.ml b/src/stan_math_backend/Statement_gen.ml index 19fe6e569d..e57fce4615 100644 --- a/src/stan_math_backend/Statement_gen.ml +++ b/src/stan_math_backend/Statement_gen.ml @@ -115,7 +115,7 @@ let rec pp_statement (ppf : Format.formatter) | Assignment ( (vident, UFun _, []) , ({meta= {type_= UFun (_, _, (FnLpdf, true)); _}; _} as rhs) ) -> - pf ppf "@[auto %s = %a;@]" vident pp_expr rhs ; + pf ppf "@[auto %s = %a;@]" vident pp_expr rhs | Assignment ((vident, UFun _, []), ({meta= {type_= UFun _; _}; _} as rhs)) -> pf ppf "@[auto %s = %a;@]" vident pp_expr rhs diff --git a/test/integration/cli-args/filename_good.expected b/test/integration/cli-args/filename_good.expected index 3ac878bdf9..49f2cfb0ec 100644 --- a/test/integration/cli-args/filename_good.expected +++ b/test/integration/cli-args/filename_good.expected @@ -113,6 +113,8 @@ class filename_good_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); diff --git a/test/integration/good/code-gen/cl.expected b/test/integration/good/code-gen/cl.expected index 5a301f5b01..25fce94163 100644 --- a/test/integration/good/code-gen/cl.expected +++ b/test/integration/good/code-gen/cl.expected @@ -1276,6 +1276,8 @@ class optimize_glm_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); diff --git a/test/integration/good/code-gen/closures7.stan b/test/integration/good/code-gen/closures7.stan new file mode 100644 index 0000000000..dc1c3d6a6c --- /dev/null +++ b/test/integration/good/code-gen/closures7.stan @@ -0,0 +1,37 @@ +transformed data { + functions + real foo_rng(real(real) bar_lpdf) { + return bar_lpdf(1); + } + functions + real foo_lpdf(real zz, real(real) bar_lpdf) { + return bar_lupdf(1); + } + functions + real foo_lp(real(real) bar_lp) { + return bar_lp(1); + } + functions + real f2(real x) { + return x; + } + functions + real f3_lpdf(real x) { + return x; + } + functions + real f4_rng(real x) { + return x; + } + functions + real f5_lp(real x) { + return x; + } + real z = foo_rng(f3_lpdf); +} +transformed parameters { + real s = foo_lp(f5_lp); +} +model { + target += foo_lupdf(1|f3_lupdf); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 505bf34ab5..dc036ee12c 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -201,6 +201,8 @@ class _8_schools_ncp_model final : public model_base_crtp<_8_schools_ncp_model> const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -604,6 +606,8 @@ class _8start_with_number_model final : public model_base_crtp<_8start_with_numb const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -1269,6 +1273,8 @@ class closures1_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -2037,6 +2043,8 @@ class closures2_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -2715,6 +2723,8 @@ class closures3_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -3199,6 +3209,8 @@ class closures4_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -3821,6 +3833,8 @@ class closures5_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -4322,6 +4336,8 @@ class closures6_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -4555,6 +4571,907 @@ stan::math::profile_map& get_stan_profile_data() { + $ ../../../../../install/default/bin/stanc --print-cpp closures7.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures7_model_namespace { + +using stan::io::dump; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using stan::model::cons_list; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::nil_index_list; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static int current_statement__= 0; +static const std::vector locations_array__ = +{" (found before start of program)", + " (in 'closures7.stan', line 2, column 4 to line 5, column 5)", + " (in 'closures7.stan', line 6, column 4 to line 9, column 5)", + " (in 'closures7.stan', line 10, column 4 to line 13, column 5)", + " (in 'closures7.stan', line 14, column 4 to line 17, column 5)", + " (in 'closures7.stan', line 18, column 4 to line 21, column 5)", + " (in 'closures7.stan', line 22, column 4 to line 25, column 5)", + " (in 'closures7.stan', line 26, column 4 to line 29, column 5)", + " (in 'closures7.stan', line 33, column 4 to column 27)", + " (in 'closures7.stan', line 36, column 4 to column 36)", + " (in 'closures7.stan', line 30, column 4 to column 30)", + " (in 'closures7.stan', line 16, column 8 to column 17)", + " (in 'closures7.stan', line 15, column 20 to line 17, column 5)", + " (in 'closures7.stan', line 20, column 8 to column 17)", + " (in 'closures7.stan', line 19, column 25 to line 21, column 5)", + " (in 'closures7.stan', line 24, column 8 to column 17)", + " (in 'closures7.stan', line 23, column 24 to line 25, column 5)", + " (in 'closures7.stan', line 28, column 8 to column 17)", + " (in 'closures7.stan', line 27, column 23 to line 29, column 5)", + " (in 'closures7.stan', line 12, column 8 to column 25)", + " (in 'closures7.stan', line 11, column 35 to line 13, column 5)", + " (in 'closures7.stan', line 8, column 8 to column 28)", + " (in 'closures7.stan', line 7, column 48 to line 9, column 5)", + " (in 'closures7.stan', line 4, column 8 to column 27)", + " (in 'closures7.stan', line 3, column 38 to line 5, column 5)"}; + +template +stan::promote_args_t +f2_L15C9_impl__(const T0__& x, std::ostream* pstream__) ; + +class f2_L15C9_cfunctor__ { + + public: + const size_t vars_count__; + f2_L15C9_cfunctor__(const f2_L15C9_cfunctor__&) = default ; + f2_L15C9_cfunctor__(f2_L15C9_cfunctor__&&) = default ; + f2_L15C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const + { + return f2_L15C9_impl__(x, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f2_L15C9_cfunctor__; + using CopyOf__ = f2_L15C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f2_L15C9_make__() { +return f2_L15C9_cfunctor__(); +} + +template +stan::promote_args_t +f3_lpdf_L19C9_impl__(const T0__& x, std::ostream* pstream__) ; + +class f3_lpdf_L19C9_cfunctor__ { + + public: + const size_t vars_count__; + f3_lpdf_L19C9_cfunctor__(const f3_lpdf_L19C9_cfunctor__&) = default ; + f3_lpdf_L19C9_cfunctor__(f3_lpdf_L19C9_cfunctor__&&) = default ; + f3_lpdf_L19C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const + { + return f3_lpdf_L19C9_impl__(x, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f3_lpdf_L19C9_cfunctor__; + using CopyOf__ = f3_lpdf_L19C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); + } + + }; +auto f3_lpdf_L19C9_make__() { +return f3_lpdf_L19C9_cfunctor__(); +} + +template +stan::promote_args_t +f4_rng_L23C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + +class f4_rng_L23C9_cfunctor__ { + + public: + const size_t vars_count__; + f4_rng_L23C9_cfunctor__(const f4_rng_L23C9_cfunctor__&) = default ; + f4_rng_L23C9_cfunctor__(f4_rng_L23C9_cfunctor__&&) = default ; + f4_rng_L23C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const + { + return f4_rng_L23C9_impl__(x, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f4_rng_L23C9_cfunctor__; + using CopyOf__ = f4_rng_L23C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f4_rng_L23C9_make__() { +return f4_rng_L23C9_cfunctor__(); +} + +template +stan::promote_args_t +f5_lp_L27C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +class f5_lp_L27C9_cfunctor__ { + + public: + const size_t vars_count__; + f5_lp_L27C9_cfunctor__(const f5_lp_L27C9_cfunctor__&) = default ; + f5_lp_L27C9_cfunctor__(f5_lp_L27C9_cfunctor__&&) = default ; + f5_lp_L27C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, + const T0__& x) const + { + return f5_lp_L27C9_impl__(x, lp__, lp_accum__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f5_lp_L27C9_cfunctor__; + using CopyOf__ = f5_lp_L27C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f5_lp_L27C9_make__() { +return f5_lp_L27C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lp_L11C9_impl__(const T0__& bar_lp, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +class foo_lp_L11C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lp_L11C9_cfunctor__(const foo_lp_L11C9_cfunctor__&) = default ; + foo_lp_L11C9_cfunctor__(foo_lp_L11C9_cfunctor__&&) = default ; + foo_lp_L11C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, + const T0__& bar_lp) const + { + return foo_lp_L11C9_impl__(bar_lp, lp__, lp_accum__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lp_L11C9_cfunctor__; + using CopyOf__ = foo_lp_L11C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_lp_L11C9_make__() { +return foo_lp_L11C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lpdf_L7C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) ; + +class foo_lpdf_L7C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lpdf_L7C9_cfunctor__(const foo_lpdf_L7C9_cfunctor__&) = default ; + foo_lpdf_L7C9_cfunctor__(foo_lpdf_L7C9_cfunctor__&&) = default ; + foo_lpdf_L7C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& zz, const T1__& bar_lpdf) const + { + return foo_lpdf_L7C9_impl__(zz, bar_lpdf, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lpdf_L7C9_cfunctor__; + using CopyOf__ = foo_lpdf_L7C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); + } + + }; +auto foo_lpdf_L7C9_make__() { +return foo_lpdf_L7C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_rng_L3C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) ; + +class foo_rng_L3C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_rng_L3C9_cfunctor__(const foo_rng_L3C9_cfunctor__&) = default ; + foo_rng_L3C9_cfunctor__(foo_rng_L3C9_cfunctor__&&) = default ; + foo_rng_L3C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& bar_lpdf) const + { + return foo_rng_L3C9_impl__(bar_lpdf, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_rng_L3C9_cfunctor__; + using CopyOf__ = foo_rng_L3C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_rng_L3C9_make__() { +return foo_rng_L3C9_cfunctor__(); +} + +template +stan::promote_args_t +f2_L15C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 11; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f3_lpdf_L19C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 13; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f4_rng_L23C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 15; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f5_lp_L27C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 17; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lp_L11C9_impl__(const T0__& bar_lp, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 19; + return bar_lp.template operator()(lp__, lp_accum__, pstream__, + 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lpdf_L7C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 21; + return bar_lpdf.template operator()(pstream__, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_rng_L3C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 23; + return bar_lpdf.template operator()(pstream__, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures7_model final : public model_base_crtp { + + private: + double z; + + public: + ~closures7_model() { } + + inline std::string model_name() const final { return "closures7_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures7_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static const char* function__ = "closures7_model_namespace::closures7_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + + current_statement__ = 1; + auto foo_rng = foo_rng_L3C9_make__(); + + current_statement__ = 2; + auto foo_lpdf = foo_lpdf_L7C9_make__(); + + current_statement__ = 3; + auto foo_lp = foo_lp_L11C9_make__(); + + current_statement__ = 4; + auto f2 = f2_L15C9_make__(); + + current_statement__ = 5; + auto f3_lpdf = f3_lpdf_L19C9_make__(); + + current_statement__ = 6; + auto f4_rng = f4_rng_L23C9_make__(); + + current_statement__ = 7; + auto f5_lp = f5_lp_L27C9_make__(); + current_statement__ = 10; + z = std::numeric_limits::quiet_NaN(); + + current_statement__ = 10; + z = foo_rng(base_rng__, pstream__, + f3_lpdf.template with_propto()); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + try { + + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } + template * = nullptr, stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::reader in__(params_r__, params_i__); + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static const char* function__ = "closures7_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto foo_rng = foo_rng_L3C9_make__(); + + current_statement__ = 2; + auto foo_lpdf = foo_lpdf_L7C9_make__(); + + current_statement__ = 3; + auto foo_lp = foo_lp_L11C9_make__(); + + current_statement__ = 4; + auto f2 = f2_L15C9_make__(); + + current_statement__ = 5; + auto f3_lpdf = f3_lpdf_L19C9_make__(); + + current_statement__ = 6; + auto f4_rng = f4_rng_L23C9_make__(); + + current_statement__ = 7; + auto f5_lp = f5_lp_L27C9_make__(); + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 8; + s = foo_lp.template operator()(lp__, lp_accum__, pstream__, + f5_lp); + { + current_statement__ = 9; + lp_accum__.add( + foo_lpdf.template operator()(pstream__, 1, + f3_lpdf.template with_propto())); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, stan::require_vector_like_vt* = nullptr, stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::reader in__(params_r__, params_i__); + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static const char* function__ = "closures7_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto foo_rng = foo_rng_L3C9_make__(); + + current_statement__ = 2; + auto foo_lpdf = foo_lpdf_L7C9_make__(); + + current_statement__ = 3; + auto foo_lp = foo_lp_L11C9_make__(); + + current_statement__ = 4; + auto f2 = f2_L15C9_make__(); + + current_statement__ = 5; + auto f3_lpdf = f3_lpdf_L19C9_make__(); + + current_statement__ = 6; + auto f4_rng = f4_rng_L23C9_make__(); + + current_statement__ = 7; + auto f5_lp = f5_lp_L27C9_make__(); + double s; + s = std::numeric_limits::quiet_NaN(); + + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 8; + s = foo_lp.template operator()(lp__, lp_accum__, pstream__, + f5_lp); + if (emit_transformed_parameters__) { + vars__.emplace_back(s); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + + try { + + current_statement__ = 1; + auto foo_rng = foo_rng_L3C9_make__(); + + current_statement__ = 2; + auto foo_lpdf = foo_lpdf_L7C9_make__(); + + current_statement__ = 3; + auto foo_lp = foo_lp_L11C9_make__(); + + current_statement__ = 4; + auto f2 = f2_L15C9_make__(); + + current_statement__ = 5; + auto f3_lpdf = f3_lpdf_L19C9_make__(); + + current_statement__ = 6; + auto f4_rng = f4_rng_L23C9_make__(); + + current_statement__ = 7; + auto f5_lp = f5_lp_L27C9_make__(); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__.clear(); + names__.emplace_back("s"); + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + dimss__.clear(); + dimss__.emplace_back(std::vector{}); + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s"); + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s"); + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + std::stringstream s__; + s__ << "[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + std::stringstream s__; + s__ << "[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"; + return s__.str(); + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars.resize(vars_vec.size()); + for (int i = 0; i < vars.size(); ++i) { + vars.coeffRef(i) = vars_vec[i]; + } + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r.resize(params_r_vec.size()); + for (int i = 0; i < params_r.size(); ++i) { + params_r.coeffRef(i) = params_r_vec[i]; + } + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures7_model_namespace::closures7_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures7_model_namespace::profiles__; +} + +#endif + + + $ ../../../../../install/default/bin/stanc --print-cpp eight_schools_ncp.stan // Code generated by %%NAME%% %%VERSION%% @@ -4758,6 +5675,8 @@ class eight_schools_ncp_model final : public model_base_crtp in__(params_r__, params_i__); @@ -11095,6 +12014,8 @@ class mother_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -15575,6 +16496,8 @@ class motherHOF_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -19148,6 +20071,8 @@ class new_integrate_interface_model final : public model_base_crtp in__(params_r__, params_i__); @@ -21473,6 +22398,8 @@ class old_integrate_interface_model final : public model_base_crtp in__(params_r__, params_i__); @@ -23042,6 +23969,8 @@ class optimize_glm_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -23750,6 +24679,8 @@ class param_constraint_model final : public model_base_crtp in__(params_r__, params_i__); @@ -24408,6 +25339,8 @@ class reduce_sum_m1_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -26185,6 +27118,8 @@ class reduce_sum_m2_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -30488,6 +31423,8 @@ class reduce_sum_m3_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -31945,6 +32882,8 @@ class single_argument_lpmf_model final : public model_base_crtp in__(params_r__, params_i__); @@ -32290,6 +33229,8 @@ class tilde_block_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -33981,6 +34922,8 @@ class transform_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -36492,6 +37435,8 @@ class truncate_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -36860,6 +37805,8 @@ class udf_tilde_stmt_conflict_model final : public model_base_crtp in__(params_r__, params_i__); @@ -37216,6 +38163,8 @@ class user_constrain_model final : public model_base_crtp const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index e72e99e639..f74272d170 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -273,6 +273,8 @@ class simple_function_model final : public model_base_crtp in__(params_r__, params_i__); diff --git a/test/integration/good/code-gen/opencl/cpp.expected b/test/integration/good/code-gen/opencl/cpp.expected index 7c73311140..38fe3d794b 100644 --- a/test/integration/good/code-gen/opencl/cpp.expected +++ b/test/integration/good/code-gen/opencl/cpp.expected @@ -3498,6 +3498,8 @@ class distributions_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -6696,6 +6698,8 @@ class restricted_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); diff --git a/test/integration/good/code-gen/profiling/cpp.expected b/test/integration/good/code-gen/profiling/cpp.expected index 9d781b2833..98ad055ed9 100644 --- a/test/integration/good/code-gen/profiling/cpp.expected +++ b/test/integration/good/code-gen/profiling/cpp.expected @@ -286,6 +286,8 @@ class simple_function_model final : public model_base_crtp in__(params_r__, params_i__); diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index 50ba60e279..66fe268018 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -445,6 +445,8 @@ class ad_level_failing_model final : public model_base_crtp in__(params_r__, params_i__); @@ -2500,6 +2502,8 @@ class copy_fail_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -4280,6 +4284,8 @@ class dce_fail_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -5231,6 +5237,8 @@ class expr_prop_experiment_model final : public model_base_crtp in__(params_r__, params_i__); @@ -5565,6 +5573,8 @@ class expr_prop_experiment2_model final : public model_base_crtp in__(params_r__, params_i__); @@ -6022,6 +6032,8 @@ class expr_prop_fail_model final : public model_base_crtp const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -6586,6 +6598,8 @@ class expr_prop_fail2_model final : public model_base_crtp in__(params_r__, params_i__); @@ -7648,6 +7662,8 @@ class expr_prop_fail3_model final : public model_base_crtp in__(params_r__, params_i__); @@ -8803,6 +8819,8 @@ class expr_prop_fail4_model final : public model_base_crtp in__(params_r__, params_i__); @@ -10826,6 +10844,8 @@ class expr_prop_fail5_model final : public model_base_crtp in__(params_r__, params_i__); @@ -14503,6 +14523,8 @@ class expr_prop_fail6_model final : public model_base_crtp in__(params_r__, params_i__); @@ -16803,6 +16825,8 @@ class expr_prop_fail7_model final : public model_base_crtp in__(params_r__, params_i__); @@ -17930,6 +17954,8 @@ class expr_prop_fail8_model final : public model_base_crtp in__(params_r__, params_i__); @@ -20017,6 +20043,8 @@ class fails_test_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -23639,6 +23667,8 @@ class inlining_fail2_model final : public model_base_crtp const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -25229,6 +25259,8 @@ class lcm_experiment_model final : public model_base_crtp const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -25553,6 +25585,8 @@ class lcm_experiment2_model final : public model_base_crtp in__(params_r__, params_i__); @@ -25907,6 +25941,8 @@ class lcm_fails_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -27612,6 +27648,8 @@ class lcm_fails2_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -28723,6 +28761,8 @@ class lupdf_inlining_model final : public model_base_crtp const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -29518,6 +29558,8 @@ class off_dce_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -30467,6 +30509,8 @@ class off_small_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -31834,6 +31878,8 @@ class optimizations_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -32842,6 +32888,8 @@ class partial_eval_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); @@ -33653,6 +33701,8 @@ class stalled1_failure_model final : public model_base_crtp in__(params_r__, params_i__); @@ -34399,6 +34449,8 @@ class unroll_limit_model final : public model_base_crtp { const bool emit_transformed_parameters__ = true, const bool emit_generated_quantities__ = true, std::ostream* pstream__ = nullptr) const { + const static bool propto__ = true; + (void) propto__; using local_scalar_t__ = double; vars__.resize(0); stan::io::reader in__(params_r__, params_i__); From b4abd2b725c8a9edca13a8d9fa2074e6e8404546 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Tue, 23 Feb 2021 13:27:15 +0200 Subject: [PATCH 14/24] restore missing functor structs --- src/stan_math_backend/Expression_gen.ml | 13 +- src/stan_math_backend/Stan_math_code_gen.ml | 17 +- test/integration/good/code-gen/closures7.stan | 18 + test/integration/good/code-gen/cpp.expected | 632 ++++++++++++++---- .../standalone_functions/cpp.expected | 33 + .../good/compiler-optimizations/cpp.expected | 83 +++ 6 files changed, 635 insertions(+), 161 deletions(-) diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index bfd434536d..608cba97eb 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -166,9 +166,16 @@ let functor_suffix_select hof = let wrap_fn f = match Expr.(f.Fixed.meta.Typed.Meta.type_) with - | UFun (args, rt, (_, false)) -> - { Expr.Fixed.meta= {f.meta with type_= UFun (args, rt, (FnPure, true))} - ; pattern= FunApp (StanLib, "from_lambda", [f]) } + | UFun (args, rt, (suffix, false)) -> + let wrapper = + match suffix with + | FnPure -> "from_lambda" + | FnLpdf -> "lpdf_from_lambda" + | FnRng -> "rng_from_lambda" + | FnTarget -> "lp_from_lambda" + in + { Expr.Fixed.meta= {f.meta with type_= UFun (args, rt, (suffix, true))} + ; pattern= FunApp (StanLib, wrapper, [f]) } | _ -> f let rec pp_index ppf = function diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index b8aab90c7c..736eb77806 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -469,23 +469,18 @@ let pp_closure ppf (fdrt, fdname, fdsuffix, fdcaptures, fdargs) = let pp_forward_decl funs_used_in_reduce_sum ppf Program.({fdrt; fdname; fdsuffix; fdcaptures; fdargs; fdbody; _}) = let pp_sig = pp_signature fdsuffix false None in - let pp_opsig = - let suffix = if fdsuffix <> FnLpdf then fdsuffix else FnPure in - pp_signature suffix false None - in match fdcaptures with | None -> pf ppf "%a;" pp_sig (fdrt, fdname, fdargs) ; if fdbody <> None then ( if Set.mem funs_used_in_reduce_sum fdname then pp_rs_functor ppf (fdrt, fdname, fdargs) ; - if fdsuffix = FnPure then - pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname - functor_suffix pp_opsig - (fdrt, "operator()", fdargs) - pp_call_str - ( fdname - , List.map ~f:(fun (_, name, _) -> name) fdargs @ ["pstream__"] ) ) + pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname + functor_suffix pp_sig + (fdrt, "operator()", fdargs) + pp_call_str + ( (if fdsuffix = FnLpdf then fdname ^ "" else fdname) + , List.map ~f:(fun (_, name, _) -> name) fdargs @ ["pstream__"] ) ) | Some captures -> pf ppf "%a ;" pp_sig (fdrt, fdname ^ "_impl__", Program.captures_to_args captures @ fdargs) ; diff --git a/test/integration/good/code-gen/closures7.stan b/test/integration/good/code-gen/closures7.stan index dc1c3d6a6c..d88b514fc9 100644 --- a/test/integration/good/code-gen/closures7.stan +++ b/test/integration/good/code-gen/closures7.stan @@ -1,4 +1,22 @@ +functions { + real ff_lpdf(real x) { + real s = std_normal_lupdf(0|); + return x; + } + real ff_rng(real x) { + real s = std_normal_rng(); + return x; + } + real ff_lp(real x) { + real s = target(); + return x; + } +} transformed data { + functions + void hof(real(real) s_rng,real(real) s_lpdf, real(real) s_lp) {} + hof(ff_rng,ff_lpdf,ff_lp); + functions real foo_rng(real(real) bar_lpdf) { return bar_lpdf(1); diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index dc036ee12c..51fed20a14 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -4595,53 +4595,108 @@ stan::math::profile_map profiles__; static int current_statement__= 0; static const std::vector locations_array__ = {" (found before start of program)", - " (in 'closures7.stan', line 2, column 4 to line 5, column 5)", - " (in 'closures7.stan', line 6, column 4 to line 9, column 5)", - " (in 'closures7.stan', line 10, column 4 to line 13, column 5)", - " (in 'closures7.stan', line 14, column 4 to line 17, column 5)", - " (in 'closures7.stan', line 18, column 4 to line 21, column 5)", - " (in 'closures7.stan', line 22, column 4 to line 25, column 5)", - " (in 'closures7.stan', line 26, column 4 to line 29, column 5)", - " (in 'closures7.stan', line 33, column 4 to column 27)", - " (in 'closures7.stan', line 36, column 4 to column 36)", - " (in 'closures7.stan', line 30, column 4 to column 30)", - " (in 'closures7.stan', line 16, column 8 to column 17)", - " (in 'closures7.stan', line 15, column 20 to line 17, column 5)", - " (in 'closures7.stan', line 20, column 8 to column 17)", - " (in 'closures7.stan', line 19, column 25 to line 21, column 5)", - " (in 'closures7.stan', line 24, column 8 to column 17)", - " (in 'closures7.stan', line 23, column 24 to line 25, column 5)", - " (in 'closures7.stan', line 28, column 8 to column 17)", - " (in 'closures7.stan', line 27, column 23 to line 29, column 5)", - " (in 'closures7.stan', line 12, column 8 to column 25)", - " (in 'closures7.stan', line 11, column 35 to line 13, column 5)", - " (in 'closures7.stan', line 8, column 8 to column 28)", - " (in 'closures7.stan', line 7, column 48 to line 9, column 5)", - " (in 'closures7.stan', line 4, column 8 to column 27)", - " (in 'closures7.stan', line 3, column 38 to line 5, column 5)"}; + " (in 'closures7.stan', line 16, column 4 to line 17, column 68)", + " (in 'closures7.stan', line 20, column 4 to line 23, column 5)", + " (in 'closures7.stan', line 24, column 4 to line 27, column 5)", + " (in 'closures7.stan', line 28, column 4 to line 31, column 5)", + " (in 'closures7.stan', line 32, column 4 to line 35, column 5)", + " (in 'closures7.stan', line 36, column 4 to line 39, column 5)", + " (in 'closures7.stan', line 40, column 4 to line 43, column 5)", + " (in 'closures7.stan', line 44, column 4 to line 47, column 5)", + " (in 'closures7.stan', line 51, column 4 to column 27)", + " (in 'closures7.stan', line 54, column 4 to column 36)", + " (in 'closures7.stan', line 18, column 4 to column 30)", + " (in 'closures7.stan', line 48, column 4 to column 30)", + " (in 'closures7.stan', line 3, column 8 to column 38)", + " (in 'closures7.stan', line 4, column 8 to column 17)", + " (in 'closures7.stan', line 2, column 25 to line 5, column 5)", + " (in 'closures7.stan', line 7, column 8 to column 34)", + " (in 'closures7.stan', line 8, column 8 to column 17)", + " (in 'closures7.stan', line 6, column 24 to line 9, column 5)", + " (in 'closures7.stan', line 11, column 8 to column 26)", + " (in 'closures7.stan', line 12, column 8 to column 17)", + " (in 'closures7.stan', line 10, column 23 to line 13, column 5)", + " (in 'closures7.stan', line 34, column 8 to column 17)", + " (in 'closures7.stan', line 33, column 20 to line 35, column 5)", + " (in 'closures7.stan', line 38, column 8 to column 17)", + " (in 'closures7.stan', line 37, column 25 to line 39, column 5)", + " (in 'closures7.stan', line 42, column 8 to column 17)", + " (in 'closures7.stan', line 41, column 24 to line 43, column 5)", + " (in 'closures7.stan', line 46, column 8 to column 17)", + " (in 'closures7.stan', line 45, column 23 to line 47, column 5)", + " (in 'closures7.stan', line 30, column 8 to column 25)", + " (in 'closures7.stan', line 29, column 35 to line 31, column 5)", + " (in 'closures7.stan', line 26, column 8 to column 28)", + " (in 'closures7.stan', line 25, column 48 to line 27, column 5)", + " (in 'closures7.stan', line 22, column 8 to column 27)", + " (in 'closures7.stan', line 21, column 38 to line 23, column 5)", + " (in 'closures7.stan', line 17, column 66 to column 68)"}; + +template +stan::promote_args_t +ff_lpdf(const T0__& x, std::ostream* pstream__) ; + +struct ff_lpdf_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return ff_lpdf(x, pstream__); +} +}; + +template +stan::promote_args_t +ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + +struct ff_rng_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, RNG& base_rng__, std::ostream* pstream__) const +{ +return ff_rng(x, pstream__); +} +}; + +template +stan::promote_args_t +ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +struct ff_lp_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return ff_lp(x, pstream__); +} +}; template stan::promote_args_t -f2_L15C9_impl__(const T0__& x, std::ostream* pstream__) ; +f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) ; -class f2_L15C9_cfunctor__ { +class f2_L33C9_cfunctor__ { public: const size_t vars_count__; - f2_L15C9_cfunctor__(const f2_L15C9_cfunctor__&) = default ; - f2_L15C9_cfunctor__(f2_L15C9_cfunctor__&&) = default ; - f2_L15C9_cfunctor__() + f2_L33C9_cfunctor__(const f2_L33C9_cfunctor__&) = default ; + f2_L33C9_cfunctor__(f2_L33C9_cfunctor__&&) = default ; + f2_L33C9_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& x) const { - return f2_L15C9_impl__(x, pstream__); + return f2_L33C9_impl__(x, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = f2_L15C9_cfunctor__; - using CopyOf__ = f2_L15C9_cfunctor__; + using ValueOf__ = f2_L33C9_cfunctor__; + using CopyOf__ = f2_L33C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4663,32 +4718,32 @@ class f2_L15C9_cfunctor__ { }; -auto f2_L15C9_make__() { -return f2_L15C9_cfunctor__(); +auto f2_L33C9_make__() { +return f2_L33C9_cfunctor__(); } template stan::promote_args_t -f3_lpdf_L19C9_impl__(const T0__& x, std::ostream* pstream__) ; +f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) ; -class f3_lpdf_L19C9_cfunctor__ { +class f3_lpdf_L37C9_cfunctor__ { public: const size_t vars_count__; - f3_lpdf_L19C9_cfunctor__(const f3_lpdf_L19C9_cfunctor__&) = default ; - f3_lpdf_L19C9_cfunctor__(f3_lpdf_L19C9_cfunctor__&&) = default ; - f3_lpdf_L19C9_cfunctor__() + f3_lpdf_L37C9_cfunctor__(const f3_lpdf_L37C9_cfunctor__&) = default ; + f3_lpdf_L37C9_cfunctor__(f3_lpdf_L37C9_cfunctor__&&) = default ; + f3_lpdf_L37C9_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& x) const { - return f3_lpdf_L19C9_impl__(x, pstream__); + return f3_lpdf_L37C9_impl__(x, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = f3_lpdf_L19C9_cfunctor__; - using CopyOf__ = f3_lpdf_L19C9_cfunctor__; + using ValueOf__ = f3_lpdf_L37C9_cfunctor__; + using CopyOf__ = f3_lpdf_L37C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4709,39 +4764,39 @@ class f3_lpdf_L19C9_cfunctor__ { } template auto with_propto() { - return stan::math::lpdf_wrapper(*this); + return stan::math::lpdf_wrapper(*this); } auto copy_of__() { return CopyOf__(); } }; -auto f3_lpdf_L19C9_make__() { -return f3_lpdf_L19C9_cfunctor__(); +auto f3_lpdf_L37C9_make__() { +return f3_lpdf_L37C9_cfunctor__(); } template stan::promote_args_t -f4_rng_L23C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; +f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; -class f4_rng_L23C9_cfunctor__ { +class f4_rng_L41C9_cfunctor__ { public: const size_t vars_count__; - f4_rng_L23C9_cfunctor__(const f4_rng_L23C9_cfunctor__&) = default ; - f4_rng_L23C9_cfunctor__(f4_rng_L23C9_cfunctor__&&) = default ; - f4_rng_L23C9_cfunctor__() + f4_rng_L41C9_cfunctor__(const f4_rng_L41C9_cfunctor__&) = default ; + f4_rng_L41C9_cfunctor__(f4_rng_L41C9_cfunctor__&&) = default ; + f4_rng_L41C9_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const { - return f4_rng_L23C9_impl__(x, base_rng__, pstream__); + return f4_rng_L41C9_impl__(x, base_rng__, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = f4_rng_L23C9_cfunctor__; - using CopyOf__ = f4_rng_L23C9_cfunctor__; + using ValueOf__ = f4_rng_L41C9_cfunctor__; + using CopyOf__ = f4_rng_L41C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4763,23 +4818,23 @@ class f4_rng_L23C9_cfunctor__ { }; -auto f4_rng_L23C9_make__() { -return f4_rng_L23C9_cfunctor__(); +auto f4_rng_L41C9_make__() { +return f4_rng_L41C9_cfunctor__(); } template stan::promote_args_t -f5_lp_L27C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, +f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; -class f5_lp_L27C9_cfunctor__ { +class f5_lp_L45C9_cfunctor__ { public: const size_t vars_count__; - f5_lp_L27C9_cfunctor__(const f5_lp_L27C9_cfunctor__&) = default ; - f5_lp_L27C9_cfunctor__(f5_lp_L27C9_cfunctor__&&) = default ; - f5_lp_L27C9_cfunctor__() + f5_lp_L45C9_cfunctor__(const f5_lp_L45C9_cfunctor__&) = default ; + f5_lp_L45C9_cfunctor__(f5_lp_L45C9_cfunctor__&&) = default ; + f5_lp_L45C9_cfunctor__() : vars_count__(count_vars()) {} template @@ -4787,12 +4842,12 @@ class f5_lp_L27C9_cfunctor__ { operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, const T0__& x) const { - return f5_lp_L27C9_impl__(x, lp__, lp_accum__, pstream__); + return f5_lp_L45C9_impl__(x, lp__, lp_accum__, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = f5_lp_L27C9_cfunctor__; - using CopyOf__ = f5_lp_L27C9_cfunctor__; + using ValueOf__ = f5_lp_L45C9_cfunctor__; + using CopyOf__ = f5_lp_L45C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4814,23 +4869,23 @@ class f5_lp_L27C9_cfunctor__ { }; -auto f5_lp_L27C9_make__() { -return f5_lp_L27C9_cfunctor__(); +auto f5_lp_L45C9_make__() { +return f5_lp_L45C9_cfunctor__(); } template stan::promote_args_t -foo_lp_L11C9_impl__(const T0__& bar_lp, T_lp__& lp__, +foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; -class foo_lp_L11C9_cfunctor__ { +class foo_lp_L29C9_cfunctor__ { public: const size_t vars_count__; - foo_lp_L11C9_cfunctor__(const foo_lp_L11C9_cfunctor__&) = default ; - foo_lp_L11C9_cfunctor__(foo_lp_L11C9_cfunctor__&&) = default ; - foo_lp_L11C9_cfunctor__() + foo_lp_L29C9_cfunctor__(const foo_lp_L29C9_cfunctor__&) = default ; + foo_lp_L29C9_cfunctor__(foo_lp_L29C9_cfunctor__&&) = default ; + foo_lp_L29C9_cfunctor__() : vars_count__(count_vars()) {} template @@ -4838,12 +4893,12 @@ class foo_lp_L11C9_cfunctor__ { operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, const T0__& bar_lp) const { - return foo_lp_L11C9_impl__(bar_lp, lp__, lp_accum__, pstream__); + return foo_lp_L29C9_impl__(bar_lp, lp__, lp_accum__, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = foo_lp_L11C9_cfunctor__; - using CopyOf__ = foo_lp_L11C9_cfunctor__; + using ValueOf__ = foo_lp_L29C9_cfunctor__; + using CopyOf__ = foo_lp_L29C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4865,35 +4920,35 @@ class foo_lp_L11C9_cfunctor__ { }; -auto foo_lp_L11C9_make__() { -return foo_lp_L11C9_cfunctor__(); +auto foo_lp_L29C9_make__() { +return foo_lp_L29C9_cfunctor__(); } template stan::promote_args_t -foo_lpdf_L7C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) ; +foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) ; -class foo_lpdf_L7C9_cfunctor__ { +class foo_lpdf_L25C9_cfunctor__ { public: const size_t vars_count__; - foo_lpdf_L7C9_cfunctor__(const foo_lpdf_L7C9_cfunctor__&) = default ; - foo_lpdf_L7C9_cfunctor__(foo_lpdf_L7C9_cfunctor__&&) = default ; - foo_lpdf_L7C9_cfunctor__() + foo_lpdf_L25C9_cfunctor__(const foo_lpdf_L25C9_cfunctor__&) = default ; + foo_lpdf_L25C9_cfunctor__(foo_lpdf_L25C9_cfunctor__&&) = default ; + foo_lpdf_L25C9_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& zz, const T1__& bar_lpdf) const { - return foo_lpdf_L7C9_impl__(zz, bar_lpdf, pstream__); + return foo_lpdf_L25C9_impl__(zz, bar_lpdf, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = foo_lpdf_L7C9_cfunctor__; - using CopyOf__ = foo_lpdf_L7C9_cfunctor__; + using ValueOf__ = foo_lpdf_L25C9_cfunctor__; + using CopyOf__ = foo_lpdf_L25C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4914,40 +4969,40 @@ typename T1__::captured_scalar_t__> } template auto with_propto() { - return stan::math::lpdf_wrapper(*this); + return stan::math::lpdf_wrapper(*this); } auto copy_of__() { return CopyOf__(); } }; -auto foo_lpdf_L7C9_make__() { -return foo_lpdf_L7C9_cfunctor__(); +auto foo_lpdf_L25C9_make__() { +return foo_lpdf_L25C9_cfunctor__(); } template stan::promote_args_t -foo_rng_L3C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, - std::ostream* pstream__) ; +foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) ; -class foo_rng_L3C9_cfunctor__ { +class foo_rng_L21C9_cfunctor__ { public: const size_t vars_count__; - foo_rng_L3C9_cfunctor__(const foo_rng_L3C9_cfunctor__&) = default ; - foo_rng_L3C9_cfunctor__(foo_rng_L3C9_cfunctor__&&) = default ; - foo_rng_L3C9_cfunctor__() + foo_rng_L21C9_cfunctor__(const foo_rng_L21C9_cfunctor__&) = default ; + foo_rng_L21C9_cfunctor__(foo_rng_L21C9_cfunctor__&&) = default ; + foo_rng_L21C9_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& bar_lpdf) const { - return foo_rng_L3C9_impl__(bar_lpdf, base_rng__, pstream__); + return foo_rng_L21C9_impl__(bar_lpdf, base_rng__, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = foo_rng_L3C9_cfunctor__; - using CopyOf__ = foo_rng_L3C9_cfunctor__; + using ValueOf__ = foo_rng_L21C9_cfunctor__; + using CopyOf__ = foo_rng_L21C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4969,18 +5024,132 @@ class foo_rng_L3C9_cfunctor__ { }; -auto foo_rng_L3C9_make__() { -return foo_rng_L3C9_cfunctor__(); +auto foo_rng_L21C9_make__() { +return foo_rng_L21C9_cfunctor__(); } +template +void +hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, + std::ostream* pstream__) ; + +class hof_L17C9_cfunctor__ { + + public: + const size_t vars_count__; + hof_L17C9_cfunctor__(const hof_L17C9_cfunctor__&) = default ; + hof_L17C9_cfunctor__(hof_L17C9_cfunctor__&&) = default ; + hof_L17C9_cfunctor__() + : vars_count__(count_vars()) {} + template + void + operator()(std::ostream* pstream__, const T0__& s_rng, const T1__& s_lpdf, + const T2__& s_lp) const + { + return hof_L17C9_impl__(s_rng, s_lpdf, s_lp, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = hof_L17C9_cfunctor__; + using CopyOf__ = hof_L17C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto hof_L17C9_make__() { +return hof_L17C9_cfunctor__(); +} + +template +stan::promote_args_t +ff_lpdf(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 13; + s = std_normal_lpdf(0); + current_statement__ = 14; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 16; + s = std_normal_rng(base_rng__); + current_statement__ = 17; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 19; + s = get_lp(lp__, lp_accum__); + current_statement__ = 20; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} template stan::promote_args_t -f2_L15C9_impl__(const T0__& x, std::ostream* pstream__) { +f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 11; + current_statement__ = 22; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -4991,12 +5160,12 @@ f2_L15C9_impl__(const T0__& x, std::ostream* pstream__) { } template stan::promote_args_t -f3_lpdf_L19C9_impl__(const T0__& x, std::ostream* pstream__) { +f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 13; + current_statement__ = 24; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -5007,12 +5176,12 @@ f3_lpdf_L19C9_impl__(const T0__& x, std::ostream* pstream__) { } template stan::promote_args_t -f4_rng_L23C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { +f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 15; + current_statement__ = 26; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -5024,13 +5193,13 @@ f4_rng_L23C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { template stan::promote_args_t -f5_lp_L27C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, +f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 17; + current_statement__ = 28; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -5042,13 +5211,13 @@ f5_lp_L27C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, template stan::promote_args_t -foo_lp_L11C9_impl__(const T0__& bar_lp, T_lp__& lp__, +foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 19; + current_statement__ = 30; return bar_lp.template operator()(lp__, lp_accum__, pstream__, 1); } catch (const std::exception& e) { @@ -5061,14 +5230,14 @@ foo_lp_L11C9_impl__(const T0__& bar_lp, T_lp__& lp__, template stan::promote_args_t -foo_lpdf_L7C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) { +foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 21; + current_statement__ = 32; return bar_lpdf.template operator()(pstream__, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -5079,13 +5248,13 @@ foo_lpdf_L7C9_impl__(const T0__& zz, const T1__& bar_lpdf, } template stan::promote_args_t -foo_rng_L3C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, - std::ostream* pstream__) { +foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 23; + current_statement__ = 34; return bar_lpdf.template operator()(pstream__, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -5093,6 +5262,24 @@ foo_rng_L3C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } +} +template +void +hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } class closures7_model final : public model_base_crtp { @@ -5127,29 +5314,36 @@ class closures7_model final : public model_base_crtp { pos__ = 1; current_statement__ = 1; - auto foo_rng = foo_rng_L3C9_make__(); + auto hof = hof_L17C9_make__(); + current_statement__ = 11; + hof(pstream__, rng_from_lambda(ff_rng_functor__()), + lpdf_from_lambda(ff_lpdf_functor__()), + lp_from_lambda(ff_lp_functor__())); current_statement__ = 2; - auto foo_lpdf = foo_lpdf_L7C9_make__(); + auto foo_rng = foo_rng_L21C9_make__(); current_statement__ = 3; - auto foo_lp = foo_lp_L11C9_make__(); + auto foo_lpdf = foo_lpdf_L25C9_make__(); current_statement__ = 4; - auto f2 = f2_L15C9_make__(); + auto foo_lp = foo_lp_L29C9_make__(); current_statement__ = 5; - auto f3_lpdf = f3_lpdf_L19C9_make__(); + auto f2 = f2_L33C9_make__(); current_statement__ = 6; - auto f4_rng = f4_rng_L23C9_make__(); + auto f3_lpdf = f3_lpdf_L37C9_make__(); current_statement__ = 7; - auto f5_lp = f5_lp_L27C9_make__(); - current_statement__ = 10; + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); + current_statement__ = 12; z = std::numeric_limits::quiet_NaN(); - current_statement__ = 10; + current_statement__ = 12; z = foo_rng(base_rng__, pstream__, f3_lpdf.template with_propto()); } catch (const std::exception& e) { @@ -5184,33 +5378,36 @@ class closures7_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo_rng = foo_rng_L3C9_make__(); + auto hof = hof_L17C9_make__(); current_statement__ = 2; - auto foo_lpdf = foo_lpdf_L7C9_make__(); + auto foo_rng = foo_rng_L21C9_make__(); current_statement__ = 3; - auto foo_lp = foo_lp_L11C9_make__(); + auto foo_lpdf = foo_lpdf_L25C9_make__(); current_statement__ = 4; - auto f2 = f2_L15C9_make__(); + auto foo_lp = foo_lp_L29C9_make__(); current_statement__ = 5; - auto f3_lpdf = f3_lpdf_L19C9_make__(); + auto f2 = f2_L33C9_make__(); current_statement__ = 6; - auto f4_rng = f4_rng_L23C9_make__(); + auto f3_lpdf = f3_lpdf_L37C9_make__(); current_statement__ = 7; - auto f5_lp = f5_lp_L27C9_make__(); + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); local_scalar_t__ s; s = DUMMY_VAR__; - current_statement__ = 8; + current_statement__ = 9; s = foo_lp.template operator()(lp__, lp_accum__, pstream__, f5_lp); { - current_statement__ = 9; + current_statement__ = 10; lp_accum__.add( foo_lpdf.template operator()(pstream__, 1, f3_lpdf.template with_propto())); @@ -5246,25 +5443,28 @@ class closures7_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo_rng = foo_rng_L3C9_make__(); + auto hof = hof_L17C9_make__(); current_statement__ = 2; - auto foo_lpdf = foo_lpdf_L7C9_make__(); + auto foo_rng = foo_rng_L21C9_make__(); current_statement__ = 3; - auto foo_lp = foo_lp_L11C9_make__(); + auto foo_lpdf = foo_lpdf_L25C9_make__(); current_statement__ = 4; - auto f2 = f2_L15C9_make__(); + auto foo_lp = foo_lp_L29C9_make__(); current_statement__ = 5; - auto f3_lpdf = f3_lpdf_L19C9_make__(); + auto f2 = f2_L33C9_make__(); current_statement__ = 6; - auto f4_rng = f4_rng_L23C9_make__(); + auto f3_lpdf = f3_lpdf_L37C9_make__(); current_statement__ = 7; - auto f5_lp = f5_lp_L27C9_make__(); + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); double s; s = std::numeric_limits::quiet_NaN(); @@ -5272,7 +5472,7 @@ class closures7_model final : public model_base_crtp { primitive_value(emit_generated_quantities__)))) { return ; } - current_statement__ = 8; + current_statement__ = 9; s = foo_lp.template operator()(lp__, lp_accum__, pstream__, f5_lp); if (emit_transformed_parameters__) { @@ -5299,25 +5499,28 @@ class closures7_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo_rng = foo_rng_L3C9_make__(); + auto hof = hof_L17C9_make__(); current_statement__ = 2; - auto foo_lpdf = foo_lpdf_L7C9_make__(); + auto foo_rng = foo_rng_L21C9_make__(); current_statement__ = 3; - auto foo_lp = foo_lp_L11C9_make__(); + auto foo_lpdf = foo_lpdf_L25C9_make__(); current_statement__ = 4; - auto f2 = f2_L15C9_make__(); + auto foo_lp = foo_lp_L29C9_make__(); current_statement__ = 5; - auto f3_lpdf = f3_lpdf_L19C9_make__(); + auto f2 = f2_L33C9_make__(); current_statement__ = 6; - auto f4_rng = f4_rng_L23C9_make__(); + auto f3_lpdf = f3_lpdf_L37C9_make__(); current_statement__ = 7; - auto f5_lp = f5_lp_L27C9_make__(); + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); int pos__; pos__ = std::numeric_limits::min(); @@ -6844,6 +7047,16 @@ return foo_bar2(x, y, pstream__); template stan::promote_args_t foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) ; + +struct foo_lpmf_functor__ { +template +stan::promote_args_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +{ +return foo_lpmf(y, lambda, pstream__); +} +}; + template stan::promote_args_t foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) ; @@ -6875,11 +7088,35 @@ stan::promote_args_t foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, std::ostream* pstream__) ; + +struct foo_rng_functor__ { +template +stan::promote_args_t +operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) const +{ +return foo_rng(mu, sigma, pstream__); +} +}; + template void unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct unit_normal_lp_functor__ { +template +void +operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return unit_normal_lp(u, pstream__); +} +}; + int foo_1(const int& a, std::ostream* pstream__) ; @@ -6920,6 +7157,18 @@ typename T_lp_accum__> stan::promote_args_t foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct foo_lp_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return foo_lp(x, pstream__); +} +}; + template void foo_4(const T0__& x, std::ostream* pstream__) ; @@ -6997,6 +7246,21 @@ foo_five_args_lp(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, const T4__& x5, const T5__& x6, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct foo_five_args_lp_functor__ { +template +stan::promote_args_t> +operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, + const T4__& x5, const T5__& x6, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) const +{ +return foo_five_args_lp(x1, x2, x3, x4, x5, x6, pstream__); +} +}; + template Eigen::Matrix>, -1, -1> covsqrt2corsqrt(const T0__& mat, const int& invert, std::ostream* pstream__) ; @@ -25148,6 +25412,17 @@ return foo_lpdf(y_slice, start + 1, end + 1, pstream__); } }; + +struct foo_lpdf_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return foo_lpdf(y_slice, start, end, pstream__); +} +}; + template stan::promote_args_t g(const std::vector& y_slice, const int& start, const int& end, @@ -32688,24 +32963,87 @@ static const std::vector locations_array__ = template double foo0_log(const int& y, std::ostream* pstream__) ; + +struct foo0_log_functor__ { +template +double +operator()(const int& y, std::ostream* pstream__) const +{ +return foo0_log(y, pstream__); +} +}; + template double foo1_lpmf(const int& y, std::ostream* pstream__) ; + +struct foo1_lpmf_functor__ { +template +double +operator()(const int& y, std::ostream* pstream__) const +{ +return foo1_lpmf(y, pstream__); +} +}; + template double foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct foo4_lp_functor__ { +template +double +operator()(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return foo4_lp(y, pstream__); +} +}; + template stan::promote_args_t foo2_log(const T0__& y, std::ostream* pstream__) ; + +struct foo2_log_functor__ { +template +stan::promote_args_t +operator()(const T0__& y, std::ostream* pstream__) const +{ +return foo2_log(y, pstream__); +} +}; + template stan::promote_args_t foo3_lpdf(const T0__& y, std::ostream* pstream__) ; + +struct foo3_lpdf_functor__ { +template +stan::promote_args_t +operator()(const T0__& y, std::ostream* pstream__) const +{ +return foo3_lpdf(y, pstream__); +} +}; + template stan::promote_args_t foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct foo5_lp_functor__ { +template +stan::promote_args_t +operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return foo5_lp(y, pstream__); +} +}; + template double foo0_log(const int& y, std::ostream* pstream__) { diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index eab4a7113f..e9fe69362a 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -122,13 +122,46 @@ typename T_lp_accum__> void test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct test_lp_functor__ { +template +void +operator()(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return test_lp(a, pstream__); +} +}; + template stan::promote_args_t test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) ; + +struct test_rng_functor__ { +template +stan::promote_args_t +operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const +{ +return test_rng(a, pstream__); +} +}; + template stan::promote_args_t test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) ; + +struct test_lpdf_functor__ { +template +stan::promote_args_t +operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const +{ +return test_lpdf(a, b, pstream__); +} +}; + template stan::promote_args_t my_log1p_exp(const T0__& x, std::ostream* pstream__) { diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index 66fe268018..00ad93c632 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -12049,6 +12049,21 @@ js_super_lp(const std::vector>& y, const T3__& p, const T4__& phi, const T5__& psi, const T6__& nu, const T7__& chi, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct js_super_lp_functor__ { +template +void +operator()(const std::vector>& y, + const std::vector& first, const std::vector& last, + const T3__& p, const T4__& phi, const T5__& psi, const T6__& nu, + const T7__& chi, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return js_super_lp(y, first, last, p, phi, psi, nu, chi, pstream__); +} +}; + int first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; @@ -21207,6 +21222,21 @@ jolly_seber_lp(const std::vector>& y, const T3__& p, const T4__& phi, const T5__& gamma, const T6__& chi, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct jolly_seber_lp_functor__ { +template +void +operator()(const std::vector>& y, + const std::vector& first, const std::vector& last, + const T3__& p, const T4__& phi, const T5__& gamma, + const T6__& chi, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return jolly_seber_lp(y, first, last, p, phi, gamma, chi, pstream__); +} +}; + template Eigen::Matrix>, -1, 1> seq_cprob(const T0__& gamma, std::ostream* pstream__) ; @@ -28565,12 +28595,43 @@ template stan::promote_args_t foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) ; + +struct foo_lpdf_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, const T1__& mu, std::ostream* pstream__) const +{ +return foo_lpdf(x, mu, pstream__); +} +}; + template stan::promote_args_t bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) ; + +struct bar_lpmf_functor__ { +template +stan::promote_args_t +operator()(const int& n, const T1__& mu, std::ostream* pstream__) const +{ +return bar_lpmf(n, mu, pstream__); +} +}; + template stan::promote_args_t baz_lpdf(const T0__& x, std::ostream* pstream__) ; + +struct baz_lpdf_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return baz_lpdf(x, pstream__); +} +}; + template stan::promote_args_t @@ -31161,6 +31222,18 @@ typename T_lp_accum__> void nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct nrfun_lp_functor__ { +template +void +operator()(const T0__& x, const int& y, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) const +{ +return nrfun_lp(x, y, pstream__); +} +}; + int rfun(const int& y, std::ostream* pstream__) ; @@ -31175,6 +31248,16 @@ return rfun(y, pstream__); template int rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +struct rfun_lp_functor__ { +template +int +operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const +{ +return rfun_lp(pstream__); +} +}; + template void From 6f1fe48c4b83cb6d5b288822c974c04f7026136a Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Sat, 20 Mar 2021 14:07:47 +0200 Subject: [PATCH 15/24] new keyword for closures --- src/frontend/Pretty_printing.ml | 2 +- src/frontend/Semantic_check.ml | 3 +- src/frontend/lexer.mll | 1 + src/frontend/parser.messages | 8340 +++++++++++++---- src/frontend/parser.mly | 5 +- .../integration/bad/closures/forwarddecl.stan | 4 +- test/integration/bad/closures/mutate1.stan | 2 +- test/integration/bad/closures/mutate2.stan | 2 +- .../integration/bad/closures/no_keyword1.stan | 5 + .../integration/bad/closures/no_keyword2.stan | 5 + .../integration/bad/closures/no_keyword3.stan | 5 + .../integration/bad/closures/no_keyword4.stan | 5 + .../integration/bad/closures/no_keyword5.stan | 5 + test/integration/bad/closures/stanc.expected | 61 +- test/integration/good/code-gen/closures1.stan | 4 +- test/integration/good/code-gen/closures2.stan | 10 +- test/integration/good/code-gen/closures3.stan | 6 +- test/integration/good/code-gen/closures4.stan | 2 +- test/integration/good/code-gen/closures5.stan | 4 +- test/integration/good/code-gen/closures6.stan | 4 +- test/integration/good/code-gen/closures7.stan | 16 +- 21 files changed, 6410 insertions(+), 2081 deletions(-) create mode 100644 test/integration/bad/closures/no_keyword1.stan create mode 100644 test/integration/bad/closures/no_keyword2.stan create mode 100644 test/integration/bad/closures/no_keyword3.stan create mode 100644 test/integration/bad/closures/no_keyword4.stan create mode 100644 test/integration/bad/closures/no_keyword5.stan diff --git a/src/frontend/Pretty_printing.ml b/src/frontend/Pretty_printing.ml index b0efabcf42..2e9f8ce69a 100644 --- a/src/frontend/Pretty_printing.ml +++ b/src/frontend/Pretty_printing.ml @@ -336,7 +336,7 @@ and pp_statement ppf ({stmt= s_content; _} as ss) = Fmt.pf ppf "%a%a %a%a;" pp_array_dims es pp_transformed_type (pst, trans) pp_identifier id pp_init init ) | FunDef {returntype= rt; funname= id; captures; arguments= args; body= b} -> ( - if is_some captures then Fmt.pf ppf "functions" ; + if is_some captures then Fmt.pf ppf "function" ; Fmt.pf ppf "%a %a(" pp_returntype rt pp_identifier id ; with_box ppf 0 (fun () -> Fmt.pf ppf "%a" (Fmt.list ~sep:Fmt.comma pp_args) args ) ; diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index aab46f263e..b7dfd629fa 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -200,7 +200,8 @@ let reserved_keywords = ; "for"; "in"; "break"; "continue"; "void"; "int"; "real"; "vector" ; "row_vector"; "matrix"; "ordered"; "positive_ordered"; "simplex" ; "unit_vector"; "cholesky_factor_corr"; "cholesky_factor_cov"; "corr_matrix" - ; "cov_matrix"; "print"; "reject"; "target"; "get_lp"; "profile" ] + ; "cov_matrix"; "print"; "reject"; "target"; "get_lp"; "profile"; "function" + ] let semantic_check_identifier id = Validate.( diff --git a/src/frontend/lexer.mll b/src/frontend/lexer.mll index 74c0e57bdb..f66a651fbf 100644 --- a/src/frontend/lexer.mll +++ b/src/frontend/lexer.mll @@ -100,6 +100,7 @@ rule token = parse | "break" { lexer_logger "break" ; Parser.BREAK } | "continue" { lexer_logger "continue" ; Parser.CONTINUE } (* Types *) + | "function" { lexer_logger "function" ; Parser.FUNCTION } | "void" { lexer_logger "void" ; Parser.VOID } | "int" { lexer_logger "int" ; Parser.INT } | "real" { lexer_logger "real" ; Parser.REAL } diff --git a/src/frontend/parser.messages b/src/frontend/parser.messages index 6d32cc5926..2abf24f4db 100644 --- a/src/frontend/parser.messages +++ b/src/frontend/parser.messages @@ -12,9 +12,7 @@ Expected "functions {" or "data {" or "transformed data {" or "parameters {" or program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 697. -## Ends in an error in state: 656. -## Ends in an error in state: 660. +## Ends in an error in state: 679. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -60,7 +58,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> CHOLESKYFACTORCORR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCORR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCORR LBRACK non_lhs @@ -70,9 +68,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 699. -## Ends in an error in state: 658. -## Ends in an error in state: 662. +## Ends in an error in state: 681. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -118,7 +114,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> CHOLESKYFACTORCORR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCORR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCORR LBRACK lhs @@ -127,21 +123,17 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR LBRACK WHILE ## -## Ends in an error in state: 696. -## Ends in an error in state: 655. -## Ends in an error in state: 659. +## Ends in an error in state: 678. ## -## top_var_type -> CHOLESKYFACTORCORR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> CHOLESKYFACTORCORR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCORR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCORR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCORR LBRACK @@ -151,12 +143,10 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCORR WHILE ## -## Ends in an error in state: 695. -## Ends in an error in state: 654. -## Ends in an error in state: 658. +## Ends in an error in state: 677. ## -## top_var_type -> CHOLESKYFACTORCORR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> CHOLESKYFACTORCORR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCORR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCORR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCORR @@ -166,9 +156,7 @@ Expected "[" expression "]" for size of cholesky_factor_corr. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 686. -## Ends in an error in state: 645. -## Ends in an error in state: 649. +## Ends in an error in state: 668. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -214,7 +202,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## top_var_type -> CHOLESKYFACTORCOV LBRACK non_lhs . option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCOV LBRACK non_lhs . option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCOV LBRACK non_lhs @@ -224,9 +212,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 688. -## Ends in an error in state: 647. -## Ends in an error in state: 651. +## Ends in an error in state: 670. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -282,9 +268,7 @@ Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 689. -## Ends in an error in state: 648. -## Ends in an error in state: 652. +## Ends in an error in state: 671. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -339,18 +323,14 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 687. -## Ends in an error in state: 646. -## Ends in an error in state: 650. +## Ends in an error in state: 669. ## ## option(pair(COMMA,expression)) -> COMMA . lhs [ RBRACK ] ## option(pair(COMMA,expression)) -> COMMA . non_lhs [ RBRACK ] @@ -363,9 +343,7 @@ Expected comma separated list of expressions. Ill-formed expression. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 692. -## Ends in an error in state: 651. -## Ends in an error in state: 655. +## Ends in an error in state: 674. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -411,7 +389,7 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## top_var_type -> CHOLESKYFACTORCOV LBRACK lhs . option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCOV LBRACK lhs . option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCOV LBRACK lhs @@ -420,21 +398,17 @@ program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" or "[" expression "," expression "]" for size of cholesky_factor_cov. program: DATABLOCK LBRACE CHOLESKYFACTORCOV LBRACK WHILE ## -## Ends in an error in state: 685. -## Ends in an error in state: 644. -## Ends in an error in state: 648. +## Ends in an error in state: 667. ## -## top_var_type -> CHOLESKYFACTORCOV LBRACK . lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> CHOLESKYFACTORCOV LBRACK . non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCOV LBRACK . lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCOV LBRACK . non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCOV LBRACK @@ -444,12 +418,10 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CHOLESKYFACTORCOV WHILE ## -## Ends in an error in state: 684. -## Ends in an error in state: 643. -## Ends in an error in state: 647. +## Ends in an error in state: 666. ## -## top_var_type -> CHOLESKYFACTORCOV . LBRACK lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> CHOLESKYFACTORCOV . LBRACK non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCOV . LBRACK lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CHOLESKYFACTORCOV . LBRACK non_lhs option(pair(COMMA,expression)) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CHOLESKYFACTORCOV @@ -459,9 +431,7 @@ Expected "[" expression "]" or "[" expression "," expression "]" for size of cho program: DATABLOCK LBRACE CORRMATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 680. -## Ends in an error in state: 639. -## Ends in an error in state: 643. +## Ends in an error in state: 662. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -507,7 +477,7 @@ program: DATABLOCK LBRACE CORRMATRIX LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> CORRMATRIX LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CORRMATRIX LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CORRMATRIX LBRACK non_lhs @@ -517,9 +487,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 682. -## Ends in an error in state: 641. -## Ends in an error in state: 645. +## Ends in an error in state: 664. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -565,7 +533,7 @@ program: DATABLOCK LBRACE CORRMATRIX LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> CORRMATRIX LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CORRMATRIX LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CORRMATRIX LBRACK lhs @@ -574,21 +542,17 @@ program: DATABLOCK LBRACE CORRMATRIX LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX LBRACK WHILE ## -## Ends in an error in state: 679. -## Ends in an error in state: 638. -## Ends in an error in state: 642. +## Ends in an error in state: 661. ## -## top_var_type -> CORRMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> CORRMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CORRMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CORRMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CORRMATRIX LBRACK @@ -598,12 +562,10 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE CORRMATRIX WHILE ## -## Ends in an error in state: 678. -## Ends in an error in state: 637. -## Ends in an error in state: 641. +## Ends in an error in state: 660. ## -## top_var_type -> CORRMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> CORRMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CORRMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> CORRMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## CORRMATRIX @@ -613,9 +575,7 @@ Expected "[" expression "]" for size of corr_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 674. -## Ends in an error in state: 633. -## Ends in an error in state: 637. +## Ends in an error in state: 656. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -661,7 +621,7 @@ program: DATABLOCK LBRACE COVMATRIX LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> COVMATRIX LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COVMATRIX LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## COVMATRIX LBRACK non_lhs @@ -671,9 +631,7 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 676. -## Ends in an error in state: 635. -## Ends in an error in state: 639. +## Ends in an error in state: 658. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -719,7 +677,7 @@ program: DATABLOCK LBRACE COVMATRIX LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> COVMATRIX LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COVMATRIX LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## COVMATRIX LBRACK lhs @@ -728,21 +686,17 @@ program: DATABLOCK LBRACE COVMATRIX LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX LBRACK WHILE ## -## Ends in an error in state: 673. -## Ends in an error in state: 632. -## Ends in an error in state: 636. +## Ends in an error in state: 655. ## -## top_var_type -> COVMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> COVMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COVMATRIX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COVMATRIX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## COVMATRIX LBRACK @@ -752,12 +706,10 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE COVMATRIX WHILE ## -## Ends in an error in state: 672. -## Ends in an error in state: 631. -## Ends in an error in state: 635. +## Ends in an error in state: 654. ## -## top_var_type -> COVMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> COVMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COVMATRIX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> COVMATRIX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## COVMATRIX @@ -767,11 +719,9 @@ Expected "[" expression "]" for size of cov_matrix. program: DATABLOCK LBRACE INT LABRACK WHILE ## -## Ends in an error in state: 670. -## Ends in an error in state: 629. -## Ends in an error in state: 633. +## Ends in an error in state: 652. ## -## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## LABRACK @@ -781,11 +731,9 @@ Expected "lower = " expression or "upper = " expression for integer bounds. program: DATABLOCK LBRACE INT LBRACE ## -## Ends in an error in state: 669. -## Ends in an error in state: 628. -## Ends in an error in state: 632. +## Ends in an error in state: 651. ## -## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> INT . range_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## INT @@ -795,14 +743,12 @@ Expected range constraint or identifier as part of top-level variable declaratio program: DATABLOCK LBRACE MATRIX LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 655. -## Ends in an error in state: 614. -## Ends in an error in state: 618. +## Ends in an error in state: 637. ## -## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint . LBRACK non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint . LBRACK non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint . LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint . LBRACK non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint . LBRACK non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint @@ -812,9 +758,7 @@ Expected "[" expression "," expression "]" for matrix sizes as part of top-level program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 659. -## Ends in an error in state: 618. -## Ends in an error in state: 622. +## Ends in an error in state: 641. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -860,7 +804,7 @@ program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK non_lhs COMMA non_lhs @@ -870,9 +814,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE TILDE ## -## Ends in an error in state: 661. -## Ends in an error in state: 620. -## Ends in an error in state: 624. +## Ends in an error in state: 643. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -918,7 +860,7 @@ program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK non_lhs COMMA lhs @@ -927,21 +869,17 @@ program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA WHILE ## -## Ends in an error in state: 658. -## Ends in an error in state: 617. -## Ends in an error in state: 621. +## Ends in an error in state: 640. ## -## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK non_lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK non_lhs COMMA @@ -951,9 +889,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 657. -## Ends in an error in state: 616. -## Ends in an error in state: 620. +## Ends in an error in state: 639. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -999,8 +935,8 @@ program: DATABLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## top_var_type -> MATRIX type_constraint LBRACK non_lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint LBRACK non_lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK non_lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK non_lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK non_lhs @@ -1011,9 +947,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 665. -## Ends in an error in state: 624. -## Ends in an error in state: 628. +## Ends in an error in state: 647. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1059,7 +993,7 @@ program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK lhs COMMA non_lhs @@ -1069,9 +1003,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 667. -## Ends in an error in state: 626. -## Ends in an error in state: 630. +## Ends in an error in state: 649. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1117,7 +1049,7 @@ program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK lhs COMMA lhs @@ -1126,21 +1058,17 @@ program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 664. -## Ends in an error in state: 623. -## Ends in an error in state: 627. +## Ends in an error in state: 646. ## -## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK lhs COMMA @@ -1150,9 +1078,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 663. -## Ends in an error in state: 622. -## Ends in an error in state: 626. +## Ends in an error in state: 645. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -1198,8 +1124,8 @@ program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## top_var_type -> MATRIX type_constraint LBRACK lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint LBRACK lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK lhs @@ -1208,23 +1134,19 @@ program: DATABLOCK LBRACE MATRIX LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX LBRACK WHILE ## -## Ends in an error in state: 656. -## Ends in an error in state: 615. -## Ends in an error in state: 619. +## Ends in an error in state: 638. ## -## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint LBRACK . non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX type_constraint LBRACK . non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK . lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK . non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX type_constraint LBRACK . non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX type_constraint LBRACK @@ -1234,14 +1156,12 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE MATRIX WHILE ## -## Ends in an error in state: 654. -## Ends in an error in state: 613. -## Ends in an error in state: 617. +## Ends in an error in state: 636. ## -## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX . type_constraint LBRACK non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> MATRIX . type_constraint LBRACK non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX . type_constraint LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX . type_constraint LBRACK non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> MATRIX . type_constraint LBRACK non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX @@ -1251,9 +1171,7 @@ Expected "[" expression "," expression "]" for sizes of matrix. program: DATABLOCK LBRACE ORDERED LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 650. -## Ends in an error in state: 609. -## Ends in an error in state: 613. +## Ends in an error in state: 632. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1299,7 +1217,7 @@ program: DATABLOCK LBRACE ORDERED LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> ORDERED LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ORDERED LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ORDERED LBRACK non_lhs @@ -1309,9 +1227,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 652. -## Ends in an error in state: 611. -## Ends in an error in state: 615. +## Ends in an error in state: 634. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1357,7 +1273,7 @@ program: DATABLOCK LBRACE ORDERED LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> ORDERED LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ORDERED LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ORDERED LBRACK lhs @@ -1366,21 +1282,17 @@ program: DATABLOCK LBRACE ORDERED LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED LBRACK WHILE ## -## Ends in an error in state: 649. -## Ends in an error in state: 608. -## Ends in an error in state: 612. +## Ends in an error in state: 631. ## -## top_var_type -> ORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> ORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ORDERED LBRACK @@ -1390,12 +1302,10 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE ORDERED WHILE ## -## Ends in an error in state: 648. -## Ends in an error in state: 607. -## Ends in an error in state: 611. +## Ends in an error in state: 630. ## -## top_var_type -> ORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> ORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ORDERED @@ -1405,9 +1315,7 @@ Expected "[" expression "]" for size of ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 644. -## Ends in an error in state: 603. -## Ends in an error in state: 607. +## Ends in an error in state: 626. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1453,7 +1361,7 @@ program: DATABLOCK LBRACE POSITIVEORDERED LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> POSITIVEORDERED LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> POSITIVEORDERED LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## POSITIVEORDERED LBRACK non_lhs @@ -1463,9 +1371,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 646. -## Ends in an error in state: 605. -## Ends in an error in state: 609. +## Ends in an error in state: 628. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1511,7 +1417,7 @@ program: DATABLOCK LBRACE POSITIVEORDERED LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> POSITIVEORDERED LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> POSITIVEORDERED LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## POSITIVEORDERED LBRACK lhs @@ -1520,21 +1426,17 @@ program: DATABLOCK LBRACE POSITIVEORDERED LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED LBRACK WHILE ## -## Ends in an error in state: 643. -## Ends in an error in state: 602. -## Ends in an error in state: 606. +## Ends in an error in state: 625. ## -## top_var_type -> POSITIVEORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> POSITIVEORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> POSITIVEORDERED LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> POSITIVEORDERED LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## POSITIVEORDERED LBRACK @@ -1544,12 +1446,10 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE POSITIVEORDERED WHILE ## -## Ends in an error in state: 642. -## Ends in an error in state: 601. -## Ends in an error in state: 605. +## Ends in an error in state: 624. ## -## top_var_type -> POSITIVEORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> POSITIVEORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> POSITIVEORDERED . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> POSITIVEORDERED . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## POSITIVEORDERED @@ -1559,9 +1459,7 @@ Expected "[" expression "]" for size of positive_ordered. program: DATABLOCK LBRACE RBRACE WHILE ## -## Ends in an error in state: 724. -## Ends in an error in state: 683. -## Ends in an error in state: 690. +## Ends in an error in state: 709. ## ## 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 [ # ] ## @@ -1573,9 +1471,7 @@ Expected "transformed data {" or "parameters {" or "transformed parameters {" or program: DATABLOCK LBRACE REAL IDENTIFIER SEMICOLON WHILE ## -## Ends in an error in state: 713. -## Ends in an error in state: 672. -## Ends in an error in state: 680. +## Ends in an error in state: 699. ## ## list(top_var_decl_no_assign) -> top_var_decl_no_assign . list(top_var_decl_no_assign) [ RBRACE ] ## @@ -1587,9 +1483,7 @@ Only top-level variable declarations allowed in data and parameters blocks. program: DATABLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 704. -## Ends in an error in state: 663. -## Ends in an error in state: 676. +## Ends in an error in state: 695. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier . dims optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## id_and_optional_assignment(no_assign) -> decl_identifier . optional_assignment(no_assign) [ SEMICOLON COMMA ] @@ -1602,11 +1496,9 @@ program: DATABLOCK LBRACE REAL TRUNCATE WHILE program: DATABLOCK LBRACE REAL LBRACE ## -## Ends in an error in state: 640. -## Ends in an error in state: 599. -## Ends in an error in state: 603. +## Ends in an error in state: 622. ## -## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> REAL . type_constraint [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## REAL @@ -1616,12 +1508,10 @@ Identifier expected after type in top-level variable declaration. program: DATABLOCK LBRACE ROWVECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 634. -## Ends in an error in state: 593. -## Ends in an error in state: 597. +## Ends in an error in state: 616. ## -## top_var_type -> ROWVECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> ROWVECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR type_constraint @@ -1631,9 +1521,7 @@ Expected identifier as part of top-level variable declaration. program: DATABLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 636. -## Ends in an error in state: 595. -## Ends in an error in state: 599. +## Ends in an error in state: 618. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1679,7 +1567,7 @@ program: DATABLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> ROWVECTOR type_constraint LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR type_constraint LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR type_constraint LBRACK non_lhs @@ -1689,9 +1577,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 638. -## Ends in an error in state: 597. -## Ends in an error in state: 601. +## Ends in an error in state: 620. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1737,7 +1623,7 @@ program: DATABLOCK LBRACE ROWVECTOR LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> ROWVECTOR type_constraint LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR type_constraint LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR type_constraint LBRACK lhs @@ -1746,21 +1632,17 @@ program: DATABLOCK LBRACE ROWVECTOR LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR LBRACK WHILE ## -## Ends in an error in state: 635. -## Ends in an error in state: 594. -## Ends in an error in state: 598. +## Ends in an error in state: 617. ## -## top_var_type -> ROWVECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> ROWVECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR type_constraint LBRACK @@ -1770,12 +1652,10 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE ROWVECTOR WHILE ## -## Ends in an error in state: 633. -## Ends in an error in state: 592. -## Ends in an error in state: 596. +## Ends in an error in state: 615. ## -## top_var_type -> ROWVECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> ROWVECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> ROWVECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR @@ -1785,9 +1665,7 @@ Expected "[" expression "]" for size declaration of row_vector. program: DATABLOCK LBRACE SIMPLEX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 629. -## Ends in an error in state: 588. -## Ends in an error in state: 592. +## Ends in an error in state: 611. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1833,7 +1711,7 @@ program: DATABLOCK LBRACE SIMPLEX LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> SIMPLEX LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SIMPLEX LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## SIMPLEX LBRACK non_lhs @@ -1843,9 +1721,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 631. -## Ends in an error in state: 590. -## Ends in an error in state: 594. +## Ends in an error in state: 613. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1891,7 +1767,7 @@ program: DATABLOCK LBRACE SIMPLEX LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> SIMPLEX LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SIMPLEX LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## SIMPLEX LBRACK lhs @@ -1900,21 +1776,17 @@ program: DATABLOCK LBRACE SIMPLEX LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX LBRACK WHILE ## -## Ends in an error in state: 628. -## Ends in an error in state: 587. -## Ends in an error in state: 591. +## Ends in an error in state: 610. ## -## top_var_type -> SIMPLEX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> SIMPLEX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SIMPLEX LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SIMPLEX LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## SIMPLEX LBRACK @@ -1924,12 +1796,10 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE SIMPLEX WHILE ## -## Ends in an error in state: 627. -## Ends in an error in state: 586. -## Ends in an error in state: 590. +## Ends in an error in state: 609. ## -## top_var_type -> SIMPLEX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> SIMPLEX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SIMPLEX . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> SIMPLEX . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## SIMPLEX @@ -1939,9 +1809,7 @@ Expected "[" expression "]" for size declaration of simplex. program: DATABLOCK LBRACE UNITVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 623. -## Ends in an error in state: 582. -## Ends in an error in state: 586. +## Ends in an error in state: 605. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -1987,7 +1855,7 @@ program: DATABLOCK LBRACE UNITVECTOR LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> UNITVECTOR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> UNITVECTOR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## UNITVECTOR LBRACK non_lhs @@ -1997,9 +1865,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 625. -## Ends in an error in state: 584. -## Ends in an error in state: 588. +## Ends in an error in state: 607. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -2045,7 +1911,7 @@ program: DATABLOCK LBRACE UNITVECTOR LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> UNITVECTOR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> UNITVECTOR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## UNITVECTOR LBRACK lhs @@ -2054,21 +1920,17 @@ program: DATABLOCK LBRACE UNITVECTOR LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR LBRACK WHILE ## -## Ends in an error in state: 622. -## Ends in an error in state: 581. -## Ends in an error in state: 585. +## Ends in an error in state: 604. ## -## top_var_type -> UNITVECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> UNITVECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> UNITVECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> UNITVECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## UNITVECTOR LBRACK @@ -2078,12 +1940,10 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE UNITVECTOR WHILE ## -## Ends in an error in state: 621. -## Ends in an error in state: 580. -## Ends in an error in state: 584. +## Ends in an error in state: 603. ## -## top_var_type -> UNITVECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> UNITVECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> UNITVECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> UNITVECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## UNITVECTOR @@ -2093,9 +1953,7 @@ Expected "[" expression "]" for size declaration of unit_vector. program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 591. -## Ends in an error in state: 550. -## Ends in an error in state: 554. +## Ends in an error in state: 573. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2121,9 +1979,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 595. -## Ends in an error in state: 554. -## Ends in an error in state: 558. +## Ends in an error in state: 577. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2147,18 +2003,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ## 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 553, spurious reduction of production constr_expression -> identifier -## In state 512, spurious reduction of production constr_expression -> identifier -## In state 516, spurious reduction of production constr_expression -> identifier +## In state 535, spurious reduction of production constr_expression -> identifier ## Expected ">" after "multiplier = " expression. program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER ASSIGN WHILE ## -## Ends in an error in state: 594. -## Ends in an error in state: 553. -## Ends in an error in state: 557. +## Ends in an error in state: 576. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER ASSIGN . constr_expression [ RABRACK ] ## @@ -2170,9 +2022,7 @@ Expected "multiplier = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA MULTIPLIER WHILE ## -## Ends in an error in state: 593. -## Ends in an error in state: 552. -## Ends in an error in state: 556. +## Ends in an error in state: 575. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA MULTIPLIER . ASSIGN constr_expression [ RABRACK ] ## @@ -2184,9 +2034,7 @@ Expected "multiplier = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 592. -## Ends in an error in state: 551. -## Ends in an error in state: 555. +## Ends in an error in state: 574. ## ## offset_mult -> OFFSET ASSIGN constr_expression COMMA . MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## @@ -2198,9 +2046,7 @@ Expected ">" or ", multiplier = " expression (not containing binary logical oper program: DATABLOCK LBRACE VECTOR LABRACK OFFSET ASSIGN WHILE ## -## Ends in an error in state: 590. -## Ends in an error in state: 549. -## Ends in an error in state: 553. +## Ends in an error in state: 572. ## ## offset_mult -> OFFSET ASSIGN . constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET ASSIGN . constr_expression [ RABRACK ] @@ -2213,9 +2059,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK OFFSET WHILE ## -## Ends in an error in state: 589. -## Ends in an error in state: 548. -## Ends in an error in state: 552. +## Ends in an error in state: 571. ## ## offset_mult -> OFFSET . ASSIGN constr_expression COMMA MULTIPLIER ASSIGN constr_expression [ RABRACK ] ## offset_mult -> OFFSET . ASSIGN constr_expression [ RABRACK ] @@ -2228,9 +2072,7 @@ Expected "offset = " expression (not containing binary logical operators). program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 605. -## Ends in an error in state: 564. -## Ends in an error in state: 568. +## Ends in an error in state: 587. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2256,9 +2098,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 609. -## Ends in an error in state: 568. -## Ends in an error in state: 572. +## Ends in an error in state: 591. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -2282,18 +2122,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIG ## 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 553, spurious reduction of production constr_expression -> identifier -## In state 512, spurious reduction of production constr_expression -> identifier -## In state 516, spurious reduction of production constr_expression -> identifier +## In state 535, spurious reduction of production constr_expression -> identifier ## Expected ">" after "upper = " expression. program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER ASSIGN WHILE ## -## Ends in an error in state: 608. -## Ends in an error in state: 567. -## Ends in an error in state: 571. +## Ends in an error in state: 590. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER ASSIGN . constr_expression [ RABRACK ] ## @@ -2305,9 +2141,7 @@ Expected expression (not containing binary logical operators) after "upper = ". program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA UPPER WHILE ## -## Ends in an error in state: 607. -## Ends in an error in state: 566. -## Ends in an error in state: 570. +## Ends in an error in state: 589. ## ## range -> LOWER ASSIGN constr_expression COMMA UPPER . ASSIGN constr_expression [ RABRACK ] ## @@ -2319,9 +2153,7 @@ Expected "=" expression (not containing binary logical operators) after "upper". program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 606. -## Ends in an error in state: 565. -## Ends in an error in state: 569. +## Ends in an error in state: 588. ## ## range -> LOWER ASSIGN constr_expression COMMA . UPPER ASSIGN constr_expression [ RABRACK ] ## @@ -2333,9 +2165,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN TRUNCATE COMMA WHILE program: DATABLOCK LBRACE VECTOR LABRACK LOWER ASSIGN WHILE ## -## Ends in an error in state: 604. -## Ends in an error in state: 563. -## Ends in an error in state: 567. +## Ends in an error in state: 586. ## ## range -> LOWER ASSIGN . constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER ASSIGN . constr_expression [ RABRACK ] @@ -2348,9 +2178,7 @@ An expression (not containing binary logical operators) is expected for type low program: DATABLOCK LBRACE VECTOR LABRACK LOWER WHILE ## -## Ends in an error in state: 603. -## Ends in an error in state: 562. -## Ends in an error in state: 566. +## Ends in an error in state: 585. ## ## range -> LOWER . ASSIGN constr_expression COMMA UPPER ASSIGN constr_expression [ RABRACK ] ## range -> LOWER . ASSIGN constr_expression [ RABRACK ] @@ -2363,12 +2191,10 @@ Expected "=" expression (not containing binary logical operators), after "lower" program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN IDENTIFIER RABRACK WHILE ## -## Ends in an error in state: 614. -## Ends in an error in state: 573. -## Ends in an error in state: 577. +## Ends in an error in state: 596. ## -## top_var_type -> VECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> VECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR type_constraint . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR type_constraint . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR type_constraint @@ -2378,9 +2204,7 @@ Expected "[" expression "]" for vector size. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN WHILE ## -## Ends in an error in state: 597. -## Ends in an error in state: 556. -## Ends in an error in state: 560. +## Ends in an error in state: 579. ## ## offset_mult -> MULTIPLIER ASSIGN . constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER ASSIGN . constr_expression [ RABRACK ] @@ -2393,9 +2217,7 @@ Expected expression (not containing binary logical operators) after "multiplier program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER WHILE ## -## Ends in an error in state: 596. -## Ends in an error in state: 555. -## Ends in an error in state: 559. +## Ends in an error in state: 578. ## ## offset_mult -> MULTIPLIER . ASSIGN constr_expression COMMA OFFSET ASSIGN constr_expression [ RABRACK ] ## offset_mult -> MULTIPLIER . ASSIGN constr_expression [ RABRACK ] @@ -2408,9 +2230,7 @@ Expected "=" expression (not containing binary logical operators) ">" after "mul program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG REALNUMERAL WHILE ## -## Ends in an error in state: 554. -## Ends in an error in state: 513. -## Ends in an error in state: 517. +## Ends in an error in state: 536. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2435,9 +2255,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN BANG WHILE ## -## Ends in an error in state: 552. -## Ends in an error in state: 511. -## Ends in an error in state: 515. +## Ends in an error in state: 534. ## ## constr_expression -> BANG . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2449,9 +2267,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 564. -## Ends in an error in state: 523. -## Ends in an error in state: 527. +## Ends in an error in state: 546. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2476,9 +2292,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN MINUS WHILE ## -## Ends in an error in state: 551. -## Ends in an error in state: 510. -## Ends in an error in state: 514. +## Ends in an error in state: 533. ## ## constr_expression -> MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2490,9 +2304,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 565. -## Ends in an error in state: 524. -## Ends in an error in state: 528. +## Ends in an error in state: 547. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2517,9 +2329,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN PLUS WHILE ## -## Ends in an error in state: 550. -## Ends in an error in state: 509. -## Ends in an error in state: 513. +## Ends in an error in state: 532. ## ## constr_expression -> PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2531,9 +2341,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE DIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 582. -## Ends in an error in state: 541. -## Ends in an error in state: 545. +## Ends in an error in state: 564. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2558,9 +2366,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE DIVIDE WHILE ## -## Ends in an error in state: 581. -## Ends in an error in state: 540. -## Ends in an error in state: 544. +## Ends in an error in state: 563. ## ## constr_expression -> constr_expression DIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2572,9 +2378,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTDIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 580. -## Ends in an error in state: 539. -## Ends in an error in state: 543. +## Ends in an error in state: 562. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2599,9 +2403,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTDIVIDE WHILE ## -## Ends in an error in state: 579. -## Ends in an error in state: 538. -## Ends in an error in state: 542. +## Ends in an error in state: 561. ## ## constr_expression -> constr_expression ELTDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2613,9 +2415,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTTIMES REALNUMERAL WHILE ## -## Ends in an error in state: 578. -## Ends in an error in state: 537. -## Ends in an error in state: 541. +## Ends in an error in state: 560. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2640,9 +2440,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE ELTTIMES WHILE ## -## Ends in an error in state: 577. -## Ends in an error in state: 536. -## Ends in an error in state: 540. +## Ends in an error in state: 559. ## ## constr_expression -> constr_expression ELTTIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2654,9 +2452,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE HAT REALNUMERAL WHILE ## -## Ends in an error in state: 560. -## Ends in an error in state: 519. -## Ends in an error in state: 523. +## Ends in an error in state: 542. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2681,9 +2477,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE HAT WHILE ## -## Ends in an error in state: 559. -## Ends in an error in state: 518. -## Ends in an error in state: 522. +## Ends in an error in state: 541. ## ## constr_expression -> constr_expression HAT . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2695,9 +2489,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 556. -## Ends in an error in state: 515. -## Ends in an error in state: 519. +## Ends in an error in state: 538. ## ## constr_expression -> constr_expression LBRACK . indexes RBRACK [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2709,9 +2501,7 @@ Ill-formed expression. Expected expression followed by "]". program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LDIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 570. -## Ends in an error in state: 529. -## Ends in an error in state: 533. +## Ends in an error in state: 552. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2736,9 +2526,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE LDIVIDE WHILE ## -## Ends in an error in state: 569. -## Ends in an error in state: 528. -## Ends in an error in state: 532. +## Ends in an error in state: 551. ## ## constr_expression -> constr_expression LDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2750,9 +2538,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 584. -## Ends in an error in state: 543. -## Ends in an error in state: 547. +## Ends in an error in state: 566. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2777,9 +2563,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MINUS WHILE ## -## Ends in an error in state: 583. -## Ends in an error in state: 542. -## Ends in an error in state: 546. +## Ends in an error in state: 565. ## ## constr_expression -> constr_expression MINUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2791,9 +2575,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MODULO REALNUMERAL WHILE ## -## Ends in an error in state: 576. -## Ends in an error in state: 535. -## Ends in an error in state: 539. +## Ends in an error in state: 558. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2818,9 +2600,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE MODULO WHILE ## -## Ends in an error in state: 575. -## Ends in an error in state: 534. -## Ends in an error in state: 538. +## Ends in an error in state: 557. ## ## constr_expression -> constr_expression MODULO . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2832,9 +2612,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 574. -## Ends in an error in state: 533. -## Ends in an error in state: 537. +## Ends in an error in state: 556. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression PLUS constr_expression . [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2859,9 +2637,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE PLUS WHILE ## -## Ends in an error in state: 573. -## Ends in an error in state: 532. -## Ends in an error in state: 536. +## Ends in an error in state: 555. ## ## constr_expression -> constr_expression PLUS . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2873,9 +2649,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE TIMES REALNUMERAL WHILE ## -## Ends in an error in state: 568. -## Ends in an error in state: 527. -## Ends in an error in state: 531. +## Ends in an error in state: 550. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2900,9 +2674,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE TIMES WHILE ## -## Ends in an error in state: 567. -## Ends in an error in state: 526. -## Ends in an error in state: 530. +## Ends in an error in state: 549. ## ## constr_expression -> constr_expression TIMES . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## @@ -2914,9 +2686,7 @@ Ill-formed expression. Expected expression (not containing binary logical operat program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE WHILE ## -## Ends in an error in state: 553. -## Ends in an error in state: 512. -## Ends in an error in state: 516. +## Ends in an error in state: 535. ## ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## common_expression -> identifier . LPAREN lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -2931,9 +2701,7 @@ Expression expected. Ill-formed expression. Suggested alternatives: a standalone program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN WHILE ## -## Ends in an error in state: 549. -## Ends in an error in state: 508. -## Ends in an error in state: 512. +## Ends in an error in state: 531. ## ## range -> UPPER ASSIGN . constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER ASSIGN . constr_expression [ RABRACK ] @@ -2946,9 +2714,7 @@ Expression (not containing binary logical operators) expected after "upper =". I program: DATABLOCK LBRACE VECTOR LABRACK UPPER WHILE ## -## Ends in an error in state: 548. -## Ends in an error in state: 507. -## Ends in an error in state: 511. +## Ends in an error in state: 530. ## ## range -> UPPER . ASSIGN constr_expression COMMA LOWER ASSIGN constr_expression [ RABRACK ] ## range -> UPPER . ASSIGN constr_expression [ RABRACK ] @@ -2961,12 +2727,10 @@ Expect "=" expression ">" after seeing "upper". program: DATABLOCK LBRACE VECTOR LABRACK WHILE ## -## Ends in an error in state: 547. -## Ends in an error in state: 506. -## Ends in an error in state: 510. +## Ends in an error in state: 529. ## -## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## type_constraint -> LABRACK . offset_mult RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## range_constraint -> LABRACK . range RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## type_constraint -> LABRACK . offset_mult RABRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER LBRACK INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## LABRACK @@ -2976,9 +2740,7 @@ We expect to see "lower =", "upper =", "offset =" or "multiplier =" followed by program: DATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## -## Ends in an error in state: 701. -## Ends in an error in state: 660. -## Ends in an error in state: 664. +## Ends in an error in state: 683. ## ## decl(top_var_type,no_assign) -> top_var_type . decl_identifier dims optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## decl(top_var_type,no_assign) -> top_var_type . separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] @@ -2991,9 +2753,7 @@ We expect to see an identifier after a sized type. program: DATABLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 616. -## Ends in an error in state: 575. -## Ends in an error in state: 579. +## Ends in an error in state: 598. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3039,7 +2799,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> VECTOR type_constraint LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR type_constraint LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR type_constraint LBRACK non_lhs @@ -3049,9 +2809,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 618. -## Ends in an error in state: 577. -## Ends in an error in state: 581. +## Ends in an error in state: 600. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3097,7 +2855,7 @@ program: DATABLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## top_var_type -> VECTOR type_constraint LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR type_constraint LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR type_constraint LBRACK lhs @@ -3106,21 +2864,17 @@ program: DATABLOCK LBRACE VECTOR LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## "[" expression "]" expected for vector size. program: DATABLOCK LBRACE VECTOR LBRACK WHILE ## -## Ends in an error in state: 615. -## Ends in an error in state: 574. -## Ends in an error in state: 578. +## Ends in an error in state: 597. ## -## top_var_type -> VECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> VECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR type_constraint LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR type_constraint LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR type_constraint LBRACK @@ -3130,12 +2884,10 @@ program: DATABLOCK LBRACE VECTOR LBRACK WHILE program: DATABLOCK LBRACE VECTOR WHILE ## -## Ends in an error in state: 546. -## Ends in an error in state: 505. -## Ends in an error in state: 509. +## Ends in an error in state: 528. ## -## top_var_type -> VECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## top_var_type -> VECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR . type_constraint LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## top_var_type -> VECTOR . type_constraint LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR @@ -3145,9 +2897,7 @@ program: DATABLOCK LBRACE VECTOR WHILE program: DATABLOCK LBRACE WHILE ## -## Ends in an error in state: 545. -## Ends in an error in state: 504. -## Ends in an error in state: 508. +## Ends in an error in state: 527. ## ## data_block -> DATABLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -3159,9 +2909,7 @@ Expected top-level variable declaration or "}". program: DATABLOCK WHILE ## -## Ends in an error in state: 544. -## Ends in an error in state: 503. -## Ends in an error in state: 507. +## Ends in an error in state: 526. ## ## data_block -> DATABLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK TRANSFORMEDDATABLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -3173,9 +2921,7 @@ program: DATABLOCK WHILE program: FUNCTIONBLOCK LBRACE RBRACE COVMATRIX ## -## Ends in an error in state: 543. -## Ends in an error in state: 502. -## Ends in an error in state: 506. +## Ends in an error in state: 525. ## ## 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 [ # ] ## @@ -3201,8 +2947,7 @@ program: FUNCTIONBLOCK LBRACE VECTOR LBRACK WHILE ## ## Ends in an error in state: 10. ## -## unsized_dims -> LBRACK . list(COMMA) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## unsized_dims -> LBRACK . list(COMMA) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_dims -> LBRACK . list(COMMA) RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## LBRACK @@ -3212,13 +2957,9 @@ program: FUNCTIONBLOCK LBRACE VECTOR LBRACK WHILE program: FUNCTIONBLOCK LBRACE VECTOR LBRACE ## -## Ends in an error in state: 103. -## Ends in an error in state: 65. -## -## unsized_type -> basic_type . option(unsized_dims) [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## Ends in an error in state: 66. +## Ends in an error in state: 75. ## -## unsized_type -> basic_type . option(unsized_dims) [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_type -> basic_type . option(unsized_dims) [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## basic_type @@ -3228,9 +2969,7 @@ Either a number of unsized dimensions is expected as part of a function return t program: FUNCTIONBLOCK LBRACE VOID IDENTIFIER LPAREN RPAREN SEMICOLON WHILE ## -## Ends in an error in state: 540. -## Ends in an error in state: 499. -## Ends in an error in state: 503. +## Ends in an error in state: 522. ## ## list(function_def) -> function_def . list(function_def) [ RBRACE ] ## @@ -3242,10 +2981,10 @@ A "}" or a function definition/declaration is expected. program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN DATABLOCK WHILE ## -## Ends in an error in state: 63. +## Ends in an error in state: 64. ## -## arg_type -> option(DATABLOCK) . unsized_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## arg_type -> option(DATABLOCK) . function_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## arg_type -> option(DATABLOCK) . unsized_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## arg_type -> option(DATABLOCK) . function_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## option(DATABLOCK) @@ -3255,9 +2994,7 @@ An identifier is expected as a function argument name. program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN RPAREN VOID ## -## Ends in an error in state: 107. -## Ends in an error in state: 69. -## Ends in an error in state: 70. +## Ends in an error in state: 79. ## ## function_def -> return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ VOID VECTOR ROWVECTOR REAL RBRACE MATRIX INT ARRAY ] ## @@ -3269,9 +3006,7 @@ Either "{" statement "}" is expected for a function definition or ";" for a func program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR IDENTIFIER COMMA WHILE ## -## Ends in an error in state: 501. -## Ends in an error in state: 495. -## Ends in an error in state: 499. +## Ends in an error in state: 478. ## ## separated_nonempty_list(COMMA,arg_decl) -> arg_decl COMMA . separated_nonempty_list(COMMA,arg_decl) [ RPAREN ] ## @@ -3283,9 +3018,7 @@ An argument declaration (unsized type followed by identifier) is expected. program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR IDENTIFIER WHILE ## -## Ends in an error in state: 500. -## Ends in an error in state: 494. -## Ends in an error in state: 498. +## Ends in an error in state: 477. ## ## 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 ] @@ -3298,9 +3031,9 @@ program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR IDENTIFIER WHILE program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN VECTOR LBRACK RBRACK LBRACK ## -## Ends in an error in state: 64. +## Ends in an error in state: 65. ## -## arg_type -> option(DATABLOCK) unsized_type . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## arg_type -> option(DATABLOCK) unsized_type . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## return_type -> unsized_type . [ LPAREN ] ## ## The known suffix of the stack is as follows: @@ -3311,7 +3044,7 @@ An identifier is expected as a function argument name. program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 60. +## Ends in an error in state: 61. ## ## function_def -> return_type decl_identifier LPAREN . loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ VOID VECTOR ROWVECTOR REAL RBRACE MATRIX INT ARRAY ] ## @@ -3323,7 +3056,7 @@ program: FUNCTIONBLOCK LBRACE VOID TRUNCATE LPAREN WHILE program: FUNCTIONBLOCK LBRACE VOID TRUNCATE WHILE ## -## Ends in an error in state: 59. +## Ends in an error in state: 60. ## ## function_def -> return_type decl_identifier . LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ VOID VECTOR ROWVECTOR REAL RBRACE MATRIX INT ARRAY ] ## @@ -3371,9 +3104,7 @@ program: FUNCTIONBLOCK WHILE program: GENERATEDQUANTITIESBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 769. -## Ends in an error in state: 727. -## Ends in an error in state: 734. +## Ends in an error in state: 754. ## ## 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 [ # ] ## @@ -3385,9 +3116,7 @@ Expected end of file after end of generated quantities block. program: GENERATEDQUANTITIESBLOCK LBRACE VOID ## -## Ends in an error in state: 766. -## Ends in an error in state: 724. -## Ends in an error in state: 731. +## Ends in an error in state: 751. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -3399,9 +3128,7 @@ Variable declaration or statement or "}" expected in generated quantities block. program: GENERATEDQUANTITIESBLOCK WHILE ## -## Ends in an error in state: 765. -## Ends in an error in state: 723. -## Ends in an error in state: 730. +## Ends in an error in state: 750. ## ## generated_quantities_block -> GENERATEDQUANTITIESBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ EOF ] ## @@ -3413,9 +3140,7 @@ Expected "{" after block keyword. program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 360. -## Ends in an error in state: 326. -## Ends in an error in state: 327. +## Ends in an error in state: 336. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3461,7 +3186,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> MATRIX LBRACK non_lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK non_lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK non_lhs COMMA non_lhs @@ -3471,9 +3196,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA REALNUMERAL WHILE program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE TILDE ## -## Ends in an error in state: 362. -## Ends in an error in state: 328. -## Ends in an error in state: 329. +## Ends in an error in state: 338. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3519,7 +3242,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> MATRIX LBRACK non_lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK non_lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK non_lhs COMMA lhs @@ -3528,21 +3251,17 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## "[" expression "," expression "]" expected for matrix sizes. program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA WHILE ## -## Ends in an error in state: 359. -## Ends in an error in state: 325. -## Ends in an error in state: 326. +## Ends in an error in state: 335. ## -## sized_basic_type -> MATRIX LBRACK non_lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX LBRACK non_lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK non_lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK non_lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK non_lhs COMMA @@ -3552,9 +3271,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL COMMA WHILE program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 358. -## Ends in an error in state: 324. -## Ends in an error in state: 325. +## Ends in an error in state: 334. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -3600,8 +3317,8 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## sized_basic_type -> MATRIX LBRACK non_lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX LBRACK non_lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK non_lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK non_lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK non_lhs @@ -3611,9 +3328,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK REALNUMERAL WHILE program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## -## Ends in an error in state: 366. -## Ends in an error in state: 332. -## Ends in an error in state: 333. +## Ends in an error in state: 342. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3659,7 +3374,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> MATRIX LBRACK lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK lhs COMMA non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK lhs COMMA non_lhs @@ -3669,9 +3384,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA REALNUMERAL WHILE program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE TILDE ## -## Ends in an error in state: 368. -## Ends in an error in state: 334. -## Ends in an error in state: 335. +## Ends in an error in state: 344. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -3717,7 +3430,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> MATRIX LBRACK lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK lhs COMMA lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK lhs COMMA lhs @@ -3726,21 +3439,17 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## "[" expression "," expression "]" expected for matrix sizes. program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 365. -## Ends in an error in state: 331. -## Ends in an error in state: 332. +## Ends in an error in state: 341. ## -## sized_basic_type -> MATRIX LBRACK lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX LBRACK lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK lhs COMMA . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK lhs COMMA . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK lhs COMMA @@ -3750,9 +3459,7 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE COMMA WHILE program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 364. -## Ends in an error in state: 330. -## Ends in an error in state: 331. +## Ends in an error in state: 340. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -3798,8 +3505,8 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## sized_basic_type -> MATRIX LBRACK lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX LBRACK lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK lhs . COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK lhs . COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK lhs @@ -3808,23 +3515,19 @@ program: MODELBLOCK LBRACE MATRIX LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## "[" expression "," expression "]" expected for matrix sizes. program: MODELBLOCK LBRACE MATRIX LBRACK WHILE ## -## Ends in an error in state: 357. -## Ends in an error in state: 323. -## Ends in an error in state: 324. +## Ends in an error in state: 333. ## -## sized_basic_type -> MATRIX LBRACK . lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX LBRACK . lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX LBRACK . non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX LBRACK . non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK . lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK . lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK . non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX LBRACK . non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX LBRACK @@ -3834,14 +3537,12 @@ program: MODELBLOCK LBRACE MATRIX LBRACK WHILE program: MODELBLOCK LBRACE MATRIX WHILE ## -## Ends in an error in state: 356. -## Ends in an error in state: 322. -## Ends in an error in state: 323. +## Ends in an error in state: 332. ## -## sized_basic_type -> MATRIX . LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX . LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX . LBRACK non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> MATRIX . LBRACK non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX . LBRACK lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX . LBRACK lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX . LBRACK non_lhs COMMA lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> MATRIX . LBRACK non_lhs COMMA non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## MATRIX @@ -3851,9 +3552,7 @@ program: MODELBLOCK LBRACE MATRIX WHILE program: MODELBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 764. -## Ends in an error in state: 722. -## Ends in an error in state: 729. +## Ends in an error in state: 749. ## ## 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 [ # ] ## @@ -3865,9 +3564,7 @@ Expected "generated quantities {" or end of file after end of model block. program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 514. -## Ends in an error in state: 469. -## Ends in an error in state: 470. +## Ends in an error in state: 491. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -3923,55 +3620,7 @@ Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 515. -## Ends in an error in state: 470. -## -## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . PLUS lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . PLUS non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . MINUS lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . MINUS non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . TIMES lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . TIMES non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . DIVIDE lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . DIVIDE non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . IDIVIDE lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . MODULO lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . MODULO non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . LDIVIDE lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . ELTTIMES lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . HAT lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . HAT non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . ELTPOW lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . ELTPOW non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . OR lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . OR non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . AND lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . AND non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . EQUALS lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . EQUALS non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . NEQUALS lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . NEQUALS non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . LABRACK lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . LABRACK non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . LEQ lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . LEQ non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . RABRACK lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . RABRACK non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## option(pair(ASSIGN,expression)) -> ASSIGN lhs . [ SEMICOLON ] -## Ends in an error in state: 471. +## Ends in an error in state: 492. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -4026,18 +3675,14 @@ program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE ASSIGN WHILE ## -## Ends in an error in state: 513. -## Ends in an error in state: 468. -## Ends in an error in state: 469. +## Ends in an error in state: 490. ## ## option(pair(ASSIGN,expression)) -> ASSIGN . lhs [ SEMICOLON COMMA ] ## option(pair(ASSIGN,expression)) -> ASSIGN . non_lhs [ SEMICOLON COMMA ] @@ -4050,9 +3695,7 @@ Ill-formed expression. Expression followed by ";" expected after "=". program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE RBRACE ## -## Ends in an error in state: 511. -## Ends in an error in state: 466. -## Ends in an error in state: 476. +## Ends in an error in state: 497. ## ## dims -> LBRACK separated_nonempty_list(COMMA,expression) . RBRACK [ SEMICOLON ASSIGN ] ## @@ -4063,21 +3706,15 @@ program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs ## Ill-formed array sizes. "[" (non-empty comma separated list of expressions) "]" expected to specify array sizes. program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 510. -## Ends in an error in state: 465. -## Ends in an error in state: 475. +## Ends in an error in state: 496. ## ## dims -> LBRACK . separated_nonempty_list(COMMA,expression) RBRACK [ SEMICOLON ASSIGN ] ## @@ -4089,32 +3726,23 @@ Ill-formed array sizes. "[" (non-empty comma separated list of expressions) "]" program: MODELBLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 509. -## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## Ends in an error in state: 464. -## Ends in an error in state: 474. +## Ends in an error in state: 495. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] ## id_and_optional_assignment(expression) -> decl_identifier . optional_assignment(expression) [ SEMICOLON COMMA ] ## ## The known suffix of the stack is as follows: ## sized_basic_type decl_identifier ## -";" or plain assignment expected after variable declaration. +";" or plain assignment expected after variable declaration. (Local function definition requires 'function' keyword.) program: MODELBLOCK LBRACE REAL LBRACK ## -## Ends in an error in state: 506. -## -## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> sized_basic_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## Ends in an error in state: 461. -## Ends in an error in state: 462. +## Ends in an error in state: 483. ## -## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> sized_basic_type . separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type . separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type @@ -4124,9 +3752,7 @@ Identifier expected after sized type in local (or model block) variable declarat program: MODELBLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 351. -## Ends in an error in state: 312. -## Ends in an error in state: 313. +## Ends in an error in state: 322. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4172,7 +3798,7 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> ROWVECTOR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> ROWVECTOR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR LBRACK non_lhs @@ -4182,9 +3808,7 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK REALNUMERAL WHILE program: MODELBLOCK LBRACE ROWVECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 353. -## Ends in an error in state: 314. -## Ends in an error in state: 315. +## Ends in an error in state: 324. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4230,7 +3854,7 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> ROWVECTOR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> ROWVECTOR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR LBRACK lhs @@ -4239,21 +3863,17 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## "[" expression "]" expected for row_vector sizes. program: MODELBLOCK LBRACE ROWVECTOR LBRACK WHILE ## -## Ends in an error in state: 350. -## Ends in an error in state: 311. -## Ends in an error in state: 312. +## Ends in an error in state: 321. ## -## sized_basic_type -> ROWVECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> ROWVECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> ROWVECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> ROWVECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR LBRACK @@ -4263,12 +3883,10 @@ program: MODELBLOCK LBRACE ROWVECTOR LBRACK WHILE program: MODELBLOCK LBRACE ROWVECTOR WHILE ## -## Ends in an error in state: 349. -## Ends in an error in state: 310. -## Ends in an error in state: 311. +## Ends in an error in state: 320. ## -## sized_basic_type -> ROWVECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> ROWVECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> ROWVECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> ROWVECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ROWVECTOR @@ -4278,9 +3896,7 @@ program: MODELBLOCK LBRACE ROWVECTOR WHILE program: MODELBLOCK LBRACE SEMICOLON VOID ## -## Ends in an error in state: 503. -## Ends in an error in state: 458. -## Ends in an error in state: 459. +## Ends in an error in state: 480. ## ## list(vardecl_or_statement) -> vardecl_or_statement . list(vardecl_or_statement) [ RBRACE ] ## @@ -4292,9 +3908,7 @@ Variable declaration, statement or "}" expected. program: MODELBLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 345. -## Ends in an error in state: 306. -## Ends in an error in state: 307. +## Ends in an error in state: 316. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4340,7 +3954,7 @@ program: MODELBLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE ## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> VECTOR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> VECTOR LBRACK non_lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR LBRACK non_lhs @@ -4350,9 +3964,7 @@ program: MODELBLOCK LBRACE VECTOR LBRACK REALNUMERAL WHILE program: MODELBLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 347. -## Ends in an error in state: 308. -## Ends in an error in state: 309. +## Ends in an error in state: 318. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4398,7 +4010,7 @@ program: MODELBLOCK LBRACE VECTOR LBRACK TRUNCATE TILDE ## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## sized_basic_type -> VECTOR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> VECTOR LBRACK lhs . RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR LBRACK lhs @@ -4407,21 +4019,17 @@ program: MODELBLOCK LBRACE VECTOR LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## "[" expression "]" expected for vector sizes. program: MODELBLOCK LBRACE VECTOR LBRACK WHILE ## -## Ends in an error in state: 344. -## Ends in an error in state: 305. -## Ends in an error in state: 306. +## Ends in an error in state: 315. ## -## sized_basic_type -> VECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> VECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> VECTOR LBRACK . lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> VECTOR LBRACK . non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR LBRACK @@ -4431,12 +4039,10 @@ program: MODELBLOCK LBRACE VECTOR LBRACK WHILE program: MODELBLOCK LBRACE VECTOR WHILE ## -## Ends in an error in state: 343. -## Ends in an error in state: 304. -## Ends in an error in state: 305. +## Ends in an error in state: 314. ## -## sized_basic_type -> VECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## sized_basic_type -> VECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> VECTOR . LBRACK lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## sized_basic_type -> VECTOR . LBRACK non_lhs RBRACK [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## VECTOR @@ -4446,9 +4052,7 @@ program: MODELBLOCK LBRACE VECTOR WHILE program: MODELBLOCK LBRACE VOID ## -## Ends in an error in state: 761. -## Ends in an error in state: 719. -## Ends in an error in state: 726. +## Ends in an error in state: 746. ## ## model_block -> MODELBLOCK LBRACE . list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4460,9 +4064,7 @@ Variable declaration, statement or "}" expected. program: MODELBLOCK WHILE ## -## Ends in an error in state: 760. -## Ends in an error in state: 718. -## Ends in an error in state: 725. +## Ends in an error in state: 745. ## ## model_block -> MODELBLOCK . LBRACE list(vardecl_or_statement) RBRACE [ GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4474,9 +4076,7 @@ Expected "{" after "model". program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 753. -## Ends in an error in state: 711. -## Ends in an error in state: 718. +## Ends in an error in state: 738. ## ## 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 [ # ] ## @@ -4488,9 +4088,7 @@ program: PARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN program: PARAMETERSBLOCK LBRACE WHILE ## -## Ends in an error in state: 749. -## Ends in an error in state: 707. -## Ends in an error in state: 714. +## Ends in an error in state: 734. ## ## parameters_block -> PARAMETERSBLOCK LBRACE . list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4502,9 +4100,7 @@ Expected top-level variable declaration or "}". program: PARAMETERSBLOCK WHILE ## -## Ends in an error in state: 748. -## Ends in an error in state: 706. -## Ends in an error in state: 713. +## Ends in an error in state: 733. ## ## parameters_block -> PARAMETERSBLOCK . LBRACE list(top_var_decl_no_assign) RBRACE [ TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -4516,9 +4112,7 @@ Expected "{" after "parameters". program: TRANSFORMEDDATABLOCK LBRACE BANG REALNUMERAL WHILE ## -## Ends in an error in state: 124. -## Ends in an error in state: 86. -## Ends in an error in state: 87. +## Ends in an error in state: 96. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -4574,9 +4168,7 @@ Ill-formed expression. Expression expected after "!". program: TRANSFORMEDDATABLOCK LBRACE BANG TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 298. -## Ends in an error in state: 260. -## Ends in an error in state: 261. +## Ends in an error in state: 270. ## ## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -4632,9 +4224,7 @@ Ill-formed expression. Expression expected after "!". program: TRANSFORMEDDATABLOCK LBRACE BANG WHILE ## -## Ends in an error in state: 123. -## Ends in an error in state: 85. -## Ends in an error in state: 86. +## Ends in an error in state: 95. ## ## non_lhs -> BANG . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> BANG . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -4647,13 +4237,9 @@ Ill-formed expression. Expression expected after "!". program: TRANSFORMEDDATABLOCK LBRACE BREAK WHILE ## -## Ends in an error in state: 391. +## Ends in an error in state: 368. ## -## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 358. -## Ends in an error in state: 359. -## -## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> BREAK . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## BREAK @@ -4663,13 +4249,9 @@ Expected ";" after "break". program: TRANSFORMEDDATABLOCK LBRACE CONTINUE WHILE ## -## Ends in an error in state: 389. -## -## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 356. -## Ends in an error in state: 357. +## Ends in an error in state: 366. ## -## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> CONTINUE . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## CONTINUE @@ -4679,13 +4261,9 @@ Expected ";" after "continue". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 468. -## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 435. -## Ends in an error in state: 436. +## Ends in an error in state: 445. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs COLON non_lhs RPAREN @@ -4695,13 +4273,9 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON REALNUMERAL WHILE ## -## Ends in an error in state: 467. -## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 434. -## Ends in an error in state: 435. +## Ends in an error in state: 444. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4755,13 +4329,9 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TRUNCATE RPAREN VOID ## -## Ends in an error in state: 471. -## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 438. -## Ends in an error in state: 439. +## Ends in an error in state: 448. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs COLON lhs RPAREN @@ -4771,15 +4341,10 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TRUNCATE TILDE ## -## Ends in an error in state: 470. -## -## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 437. -## Ends in an error in state: 438. +## Ends in an error in state: 447. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -4831,24 +4396,17 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON TR ## 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expected expression followed by ")" after "for (" identifier "in" expression ":". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL COLON WHILE ## -## Ends in an error in state: 466. -## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 433. -## Ends in an error in state: 434. +## Ends in an error in state: 443. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs COLON @@ -4858,13 +4416,9 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 388. -## -## nested_statement -> FOR LPAREN identifier IN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 355. -## Ends in an error in state: 356. +## Ends in an error in state: 365. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN non_lhs RPAREN @@ -4874,17 +4428,11 @@ Ill-formed statement. Expected statement after ")" for the loop body of the fore program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN REALNUMERAL WHILE ## -## Ends in an error in state: 387. -## -## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 354. -## Ends in an error in state: 355. +## Ends in an error in state: 364. ## -## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] @@ -4938,13 +4486,9 @@ Ill-formed expression. Expected expression after "for (" identifier "in". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 478. -## -## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 445. -## Ends in an error in state: 446. +## Ends in an error in state: 455. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs COLON non_lhs RPAREN @@ -4954,13 +4498,9 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON REALNUMERAL WHILE ## -## Ends in an error in state: 477. -## -## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 444. -## Ends in an error in state: 445. +## Ends in an error in state: 454. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5014,13 +4554,9 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNCATE RPAREN VOID ## -## Ends in an error in state: 481. -## -## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 448. -## Ends in an error in state: 449. +## Ends in an error in state: 458. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs COLON lhs RPAREN @@ -5030,15 +4566,10 @@ Ill-formed statement. Expected statement after ")" for the loop body of the for program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNCATE TILDE ## -## Ends in an error in state: 480. -## -## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 447. -## Ends in an error in state: 448. +## Ends in an error in state: 457. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5090,24 +4621,17 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON TRUNC ## 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expected expression followed by ")" after "for (" identifier "in" expression ":". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE COLON WHILE ## -## Ends in an error in state: 476. -## -## nested_statement -> FOR LPAREN identifier IN lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 443. -## Ends in an error in state: 444. +## Ends in an error in state: 453. ## -## nested_statement -> FOR LPAREN identifier IN lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs COLON . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs COLON @@ -5117,13 +4641,9 @@ Ill-formed expression. Expected expression followed by ")" after "for (" identif program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE RPAREN VOID ## -## Ends in an error in state: 474. -## -## nested_statement -> FOR LPAREN identifier IN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 441. -## Ends in an error in state: 442. +## Ends in an error in state: 451. ## -## nested_statement -> FOR LPAREN identifier IN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN lhs RPAREN @@ -5133,19 +4653,12 @@ Ill-formed statement. Expected statement after ")" for the loop body of the fore program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE TILDE ## -## Ends in an error in state: 473. -## -## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] -## nested_statement -> FOR LPAREN identifier IN lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 440. -## Ends in an error in state: 441. +## Ends in an error in state: 450. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] -## nested_statement -> FOR LPAREN identifier IN lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs . COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs . COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] @@ -5197,32 +4710,21 @@ program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expected expression followed by ")" or ":" after "for (" identifier "in". program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE IN WHILE ## -## Ends in an error in state: 386. -## -## nested_statement -> FOR LPAREN identifier IN . lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 353. -## Ends in an error in state: 354. +## Ends in an error in state: 363. ## -## nested_statement -> FOR LPAREN identifier IN . lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier IN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier IN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier IN @@ -5232,23 +4734,14 @@ Ill-formed expression. Expected expression followed by ")" or ":" after "for (" program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN TRUNCATE WHILE ## -## Ends in an error in state: 385. -## -## nested_statement -> FOR LPAREN identifier . IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 352. -## Ends in an error in state: 353. +## Ends in an error in state: 362. ## -## nested_statement -> FOR LPAREN identifier . IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN identifier . IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN identifier . IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN identifier @@ -5258,23 +4751,14 @@ Expected "in" after loop identifier. program: TRANSFORMEDDATABLOCK LBRACE FOR LPAREN WHILE ## -## Ends in an error in state: 384. -## -## nested_statement -> FOR LPAREN . identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 351. -## Ends in an error in state: 352. +## Ends in an error in state: 361. ## -## nested_statement -> FOR LPAREN . identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR LPAREN . identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR LPAREN . identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR LPAREN @@ -5284,23 +4768,14 @@ Expected (loop) identifier after "(". program: TRANSFORMEDDATABLOCK LBRACE FOR WHILE ## -## Ends in an error in state: 383. -## -## nested_statement -> FOR . LPAREN identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 350. -## Ends in an error in state: 351. +## Ends in an error in state: 360. ## -## nested_statement -> FOR . LPAREN identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> FOR . LPAREN identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN non_lhs COLON non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> FOR . LPAREN identifier IN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## FOR @@ -5310,9 +4785,7 @@ Expected "(" after "for". program: TRANSFORMEDDATABLOCK LBRACE GETLP LPAREN WHILE ## -## Ends in an error in state: 121. -## Ends in an error in state: 83. -## Ends in an error in state: 84. +## Ends in an error in state: 93. ## ## common_expression -> GETLP 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 DIVIDE COMMA COLON BAR AND ] ## @@ -5324,9 +4797,7 @@ Expected ")" after "get_lp(". program: TRANSFORMEDDATABLOCK LBRACE GETLP WHILE ## -## Ends in an error in state: 120. -## Ends in an error in state: 82. -## Ends in an error in state: 83. +## Ends in an error in state: 92. ## ## common_expression -> GETLP . 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 DIVIDE COMMA COLON BAR AND ] ## @@ -5338,13 +4809,9 @@ Expected "()" after "get_lp". program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON ELSE VOID ## -## Ends in an error in state: 484. -## -## nested_statement -> IF LPAREN non_lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 451. -## Ends in an error in state: 452. +## Ends in an error in state: 461. ## -## nested_statement -> IF LPAREN non_lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN non_lhs RPAREN statement ELSE @@ -5353,17 +4820,28 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON ELSE Ill-formed statement. Expected statement after "else". program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON VOID -program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON UNREACHABLE ## -## Ends in an error in state: 483. +## Ends in an error in state: 712. ## -## nested_statement -> IF LPAREN non_lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 450. -## Ends in an error in state: 451. +## list(top_vardecl_or_statement) -> top_vardecl_or_statement . list(top_vardecl_or_statement) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## top_vardecl_or_statement +## +## WARNING: This example involves spurious reductions. +## 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 460, spurious reduction of production nested_statement -> IF LPAREN non_lhs RPAREN statement +## In state 388, spurious reduction of production statement -> nested_statement +## In state 721, spurious reduction of production top_vardecl_or_statement -> statement +## +program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN SEMICOLON UNREACHABLE +## +## Ends in an error in state: 460. ## -## nested_statement -> IF LPAREN non_lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN non_lhs RPAREN statement @@ -5373,15 +4851,10 @@ Ill-formed block. Expected a statement, variable declaration, or just "}". program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 382. -## -## nested_statement -> IF LPAREN non_lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 349. -## Ends in an error in state: 350. +## Ends in an error in state: 359. ## -## nested_statement -> IF LPAREN non_lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN non_lhs RPAREN @@ -5391,15 +4864,10 @@ Ill-formed statement. Statement expected for true branch of conditional. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 381. -## -## nested_statement -> IF LPAREN non_lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 348. -## Ends in an error in state: 349. +## Ends in an error in state: 358. ## -## nested_statement -> IF LPAREN non_lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5453,13 +4921,9 @@ Expected ")" after test expression of conditional control flow construct. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE RPAREN SEMICOLON ELSE VOID ## -## Ends in an error in state: 489. -## -## nested_statement -> IF LPAREN lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 456. -## Ends in an error in state: 457. +## Ends in an error in state: 466. ## -## nested_statement -> IF LPAREN lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN statement ELSE . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN lhs RPAREN statement ELSE @@ -5469,15 +4933,10 @@ Ill-formed statement. Expected statement after else. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE RPAREN VOID ## -## Ends in an error in state: 487. -## -## nested_statement -> IF LPAREN lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 454. -## Ends in an error in state: 455. +## Ends in an error in state: 464. ## -## nested_statement -> IF LPAREN lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN . statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN lhs RPAREN @@ -5487,17 +4946,11 @@ Ill-formed statement. Expected statement after ")" for true branch of conditiona program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 486. -## -## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> IF LPAREN lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 453. -## Ends in an error in state: 454. +## Ends in an error in state: 463. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> IF LPAREN lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs . RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5549,28 +5002,19 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expression expected after "(", for test of conditional control flow construct. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN WHILE ## -## Ends in an error in state: 380. -## -## nested_statement -> IF LPAREN . lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 347. -## Ends in an error in state: 348. +## Ends in an error in state: 357. ## -## nested_statement -> IF LPAREN . lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN @@ -5580,19 +5024,12 @@ Expected expression for test of conditional control flow construct. program: TRANSFORMEDDATABLOCK LBRACE IF WHILE ## -## Ends in an error in state: 379. -## -## nested_statement -> IF . LPAREN lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 346. -## Ends in an error in state: 347. +## Ends in an error in state: 356. ## -## nested_statement -> IF . LPAREN lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN non_lhs RPAREN statement ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF @@ -5602,13 +5039,9 @@ program: TRANSFORMEDDATABLOCK LBRACE IF WHILE program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN REALNUMERAL RPAREN WHILE ## -## Ends in an error in state: 374. -## -## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 341. -## Ends in an error in state: 342. +## Ends in an error in state: 351. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB LPAREN non_lhs RPAREN @@ -5618,13 +5051,9 @@ Ill-formed statement. Expected ";" after ")". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 373. -## -## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 340. -## Ends in an error in state: 341. +## Ends in an error in state: 350. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN non_lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5678,13 +5107,9 @@ Ill-formed statement. Expected expression followed by ");" after "(". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE RPAREN WHILE ## -## Ends in an error in state: 377. -## -## atomic_statement -> INCREMENTLOGPROB LPAREN lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 344. -## Ends in an error in state: 345. +## Ends in an error in state: 354. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN lhs RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB LPAREN lhs RPAREN @@ -5694,13 +5119,9 @@ Ill-formed statement. Expected ";" after ")". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 376. -## -## atomic_statement -> INCREMENTLOGPROB LPAREN lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 343. -## Ends in an error in state: 344. +## Ends in an error in state: 353. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN lhs . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -5753,24 +5174,17 @@ program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed statement. Expected expression followed by ");" after "(". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB LPAREN WHILE ## -## Ends in an error in state: 372. -## -## atomic_statement -> INCREMENTLOGPROB LPAREN . lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> INCREMENTLOGPROB LPAREN . non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 339. -## Ends in an error in state: 340. +## Ends in an error in state: 349. ## -## atomic_statement -> INCREMENTLOGPROB LPAREN . lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> INCREMENTLOGPROB LPAREN . non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN . lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB LPAREN . non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB LPAREN @@ -5780,15 +5194,10 @@ Ill-formed statement. Expected expression followed by ");" after "(". program: TRANSFORMEDDATABLOCK LBRACE INCREMENTLOGPROB WHILE ## -## Ends in an error in state: 371. -## -## atomic_statement -> INCREMENTLOGPROB . LPAREN lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> INCREMENTLOGPROB . LPAREN non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 338. -## Ends in an error in state: 339. +## Ends in an error in state: 348. ## -## atomic_statement -> INCREMENTLOGPROB . LPAREN lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> INCREMENTLOGPROB . LPAREN non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB . LPAREN lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> INCREMENTLOGPROB . LPAREN non_lhs RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## INCREMENTLOGPROB @@ -5798,9 +5207,7 @@ Ill-formed statement. Expected "(" followed by an expression and ");", after "in program: TRANSFORMEDDATABLOCK LBRACE LBRACE REALNUMERAL COMMA WHILE ## -## Ends in an error in state: 263. -## Ends in an error in state: 225. -## Ends in an error in state: 226. +## Ends in an error in state: 235. ## ## separated_nonempty_list(COMMA,expression) -> non_lhs COMMA . separated_nonempty_list(COMMA,expression) [ RPAREN RBRACK RBRACE ] ## @@ -5812,13 +5219,9 @@ Ill-formed expression. Expected a comma-separated list of expressions. program: TRANSFORMEDDATABLOCK LBRACE LBRACE REALNUMERAL WHILE ## -## Ends in an error in state: 529. -## -## atomic_statement -> non_lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## Ends in an error in state: 483. -## Ends in an error in state: 487. +## Ends in an error in state: 509. ## -## atomic_statement -> non_lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> non_lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -5874,47 +5277,26 @@ Ill-formed phrase. Found an expression. This can be followed by a "~", a ",", a program: TRANSFORMEDDATABLOCK LBRACE LBRACE TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 532. -## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> lhs . sized_basic_type id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## Ends in an error in state: 486. -## Ends in an error in state: 490. +## Ends in an error in state: 512. ## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] -## decl(sized_basic_type,expression) -> lhs . sized_basic_type separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> lhs . sized_basic_type separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR TRANSPOSE TIMESASSIGN TIMES TILDE ROWVECTOR REAL RBRACE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS MATRIX LEQ LDIVIDE LBRACK LABRACK INT IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE COMMA ASSIGN ARROWASSIGN AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -5970,15 +5352,10 @@ Ill-formed phrase. Found an L-value. This can be followed by a "~", a ",", a "}" program: TRANSFORMEDDATABLOCK LBRACE LBRACE VOID ## -## Ends in an error in state: 342. -## -## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 336. -## Ends in an error in state: 337. +## Ends in an error in state: 346. ## ## common_expression -> LBRACE . separated_nonempty_list(COMMA,expression) RBRACE [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] -## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## LBRACE @@ -5988,9 +5365,7 @@ Ill-formed phrase. "{" should be followed by a statement, variable declaration o program: TRANSFORMEDDATABLOCK LBRACE LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 265. -## Ends in an error in state: 227. -## Ends in an error in state: 228. +## Ends in an error in state: 237. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6047,9 +5422,7 @@ Ill-formed phrase. Found an expression. This can be followed by a ",", a "}", a program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE COMMA WHILE ## -## Ends in an error in state: 267. -## Ends in an error in state: 229. -## Ends in an error in state: 230. +## Ends in an error in state: 239. ## ## separated_nonempty_list(COMMA,expression) -> lhs COMMA . separated_nonempty_list(COMMA,expression) [ RPAREN RBRACK RBRACE ] ## @@ -6060,11 +5433,70 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE COMMA WHILE Ill-formed expression. We expect a comma separated list of expressions. program: DATABLOCK LBRACE ARRAY LBRACK UPPER RPAREN +## +## Ends in an error in state: 256. +## +## indexes -> lhs . [ RBRACK COMMA ] +## indexes -> lhs . COLON [ RBRACK COMMA ] +## indexes -> lhs . COLON lhs [ RBRACK COMMA ] +## indexes -> lhs . COLON non_lhs [ RBRACK COMMA ] +## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . PLUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . PLUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . MINUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . MINUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . TIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . TIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . DIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . IDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . MODULO lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . MODULO non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . LDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . ELTTIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . HAT lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . HAT non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . ELTPOW lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . OR lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . OR non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . AND lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . AND non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . EQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . EQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . NEQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . LABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . LABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . LEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . LEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . RABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . RABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## +## The known suffix of the stack is as follows: +## lhs +## +## WARNING: This example involves spurious reductions. +## 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 128, spurious reduction of production lhs -> identifier +## program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE RPAREN ## -## Ends in an error in state: 301. -## Ends in an error in state: 263. -## Ends in an error in state: 264. +## Ends in an error in state: 273. ## ## common_expression -> LBRACK loption(separated_nonempty_list(COMMA,expression)) . RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## @@ -6075,24 +5507,16 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 120, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 121, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 130, 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 "]". program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 266. -## Ends in an error in state: 228. -## Ends in an error in state: 229. +## Ends in an error in state: 238. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RBRACK RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6148,18 +5572,14 @@ program: TRANSFORMEDDATABLOCK LBRACE LBRACK TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. We found an L-value. Parse failed on token after the L-value. program: TRANSFORMEDDATABLOCK LBRACE LBRACK WHILE ## -## Ends in an error in state: 117. -## Ends in an error in state: 79. -## Ends in an error in state: 80. +## Ends in an error in state: 89. ## ## common_expression -> LBRACK . loption(separated_nonempty_list(COMMA,expression)) RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## @@ -6171,9 +5591,7 @@ Comma separated list of expressions followed by "]" expected after "[". program: TRANSFORMEDDATABLOCK LBRACE LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 303. -## Ends in an error in state: 265. -## Ends in an error in state: 266. +## Ends in an error in state: 275. ## ## common_expression -> LPAREN non_lhs . 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -6229,9 +5647,7 @@ Expression or range of expressions followed by ")" expected after "(". program: TRANSFORMEDDATABLOCK LBRACE LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 305. -## Ends in an error in state: 267. -## Ends in an error in state: 268. +## Ends in an error in state: 277. ## ## common_expression -> LPAREN lhs . 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 DIVIDE COMMA COLON BAR AND ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -6286,18 +5702,14 @@ program: TRANSFORMEDDATABLOCK LBRACE LPAREN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found "(" followed by expression. Expect a "[", "," or ")" or an infix or postfix operator. program: TRANSFORMEDDATABLOCK LBRACE LPAREN WHILE ## -## Ends in an error in state: 116. -## Ends in an error in state: 78. -## Ends in an error in state: 79. +## Ends in an error in state: 88. ## ## common_expression -> LPAREN . lhs 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 DIVIDE COMMA COLON BAR AND ] ## common_expression -> LPAREN . non_lhs 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 DIVIDE COMMA COLON BAR AND ] @@ -6310,9 +5722,7 @@ Expression expected after "(". program: TRANSFORMEDDATABLOCK LBRACE MINUS REALNUMERAL WHILE ## -## Ends in an error in state: 307. -## Ends in an error in state: 269. -## Ends in an error in state: 270. +## Ends in an error in state: 279. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6368,9 +5778,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE MINUS TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 308. -## Ends in an error in state: 270. -## Ends in an error in state: 271. +## Ends in an error in state: 280. ## ## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6426,9 +5834,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE MINUS WHILE ## -## Ends in an error in state: 115. -## Ends in an error in state: 77. -## Ends in an error in state: 78. +## Ends in an error in state: 87. ## ## non_lhs -> MINUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> MINUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6441,9 +5847,7 @@ Ill-formed expression. Expect an expression after "-". program: TRANSFORMEDDATABLOCK LBRACE PLUS REALNUMERAL WHILE ## -## Ends in an error in state: 309. -## Ends in an error in state: 271. -## Ends in an error in state: 272. +## Ends in an error in state: 281. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6499,9 +5903,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE PLUS TRUNCATE LBRACK RBRACK WHILE ## -## Ends in an error in state: 310. -## Ends in an error in state: 272. -## Ends in an error in state: 273. +## Ends in an error in state: 282. ## ## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6557,9 +5959,7 @@ Ill-formed expression. Found an expression. Expect an infix or postfix operator program: TRANSFORMEDDATABLOCK LBRACE PLUS WHILE ## -## Ends in an error in state: 114. -## Ends in an error in state: 76. -## Ends in an error in state: 77. +## Ends in an error in state: 86. ## ## non_lhs -> PLUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> PLUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6572,13 +5972,9 @@ Ill-formed expression. Expect an expression after "+". program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN STRINGLITERAL WHILE ## -## Ends in an error in state: 339. -## -## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 319. -## Ends in an error in state: 320. +## Ends in an error in state: 329. ## -## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## ## The known suffix of the stack is as follows: @@ -6589,13 +5985,9 @@ Expected a comma-separated list of expressions or strings followed by ");" after program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN TRUNCATE RPAREN WHILE ## -## Ends in an error in state: 340. -## -## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 320. -## Ends in an error in state: 321. +## Ends in an error in state: 330. ## -## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN printables RPAREN @@ -6605,13 +5997,9 @@ Expected a ";" after "print(...)". program: TRANSFORMEDDATABLOCK LBRACE PRINT LPAREN WHILE ## -## Ends in an error in state: 338. -## -## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 318. -## Ends in an error in state: 319. +## Ends in an error in state: 328. ## -## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT LPAREN @@ -6621,13 +6009,9 @@ Expected a comma-separated list of expressions or strings followed by ");" after program: TRANSFORMEDDATABLOCK LBRACE PRINT WHILE ## -## Ends in an error in state: 337. -## -## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 317. -## Ends in an error in state: 318. +## Ends in an error in state: 327. ## -## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> PRINT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PRINT @@ -6637,9 +6021,7 @@ Expected "(" followed by a comma-separated list of expressions or strings follow program: TRANSFORMEDDATABLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 747. -## Ends in an error in state: 705. -## Ends in an error in state: 712. +## Ends in an error in state: 732. ## ## 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 [ # ] ## @@ -6651,13 +6033,9 @@ Expected "parameters {", "transformed parameters {", "model {", "generated quant program: TRANSFORMEDDATABLOCK LBRACE REAL TRUNCATE WHILE ## -## Ends in an error in state: 731. -## -## decl(top_var_type,expression) -> top_var_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 690. -## Ends in an error in state: 697. +## Ends in an error in state: 716. ## -## decl(top_var_type,expression) -> top_var_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type decl_identifier . dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## id_and_optional_assignment(expression) -> decl_identifier . optional_assignment(expression) [ SEMICOLON COMMA ] ## ## The known suffix of the stack is as follows: @@ -6667,92 +6045,4706 @@ program: TRANSFORMEDDATABLOCK LBRACE REAL TRUNCATE WHILE ";" or plain assignment is expected after a top-level variable declaration. program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL AND TRUNCATE LBRACK RBRACK WHILE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL DIVIDE REALNUMERAL WHILE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL DIVIDE TRUNCATE LBRACK RBRACK WHILE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 205. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs AND lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs AND lhs +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL DIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 154. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs DIVIDE non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs DIVIDE non_lhs +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL DIVIDE TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 155. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs DIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs DIVIDE lhs +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 151. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs ELTDIVIDE non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs ELTDIVIDE non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 104. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LDIVIDE non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LDIVIDE non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTDIVIDE TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 152. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs ELTDIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs ELTDIVIDE lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTTIMES REALNUMERAL WHILE +## +## Ends in an error in state: 141. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs ELTTIMES non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs ELTTIMES non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTTIMES TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 142. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs ELTTIMES lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs ELTTIMES lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL EQUALS REALNUMERAL WHILE +## +## Ends in an error in state: 201. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs EQUALS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs EQUALS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL EQUALS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 202. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs EQUALS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs EQUALS lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL GEQ REALNUMERAL WHILE +## +## Ends in an error in state: 185. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs GEQ non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs GEQ non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL GEQ TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 186. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs GEQ lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs GEQ lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL HAT REALNUMERAL WHILE +## +## Ends in an error in state: 106. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs HAT non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs HAT non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL HAT TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 264. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs HAT lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs HAT lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LABRACK REALNUMERAL WHILE +## +## Ends in an error in state: 182. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LABRACK non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LABRACK non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LABRACK TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 183. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LABRACK lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LABRACK lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LDIVIDE TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 265. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LDIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LDIVIDE lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LEQ REALNUMERAL WHILE +## +## Ends in an error in state: 173. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LEQ non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LEQ non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LEQ TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 174. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LEQ lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LEQ lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL MINUS REALNUMERAL WHILE +## +## Ends in an error in state: 139. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs MINUS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs MINUS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL MINUS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 156. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs MINUS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs MINUS lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL MODULO REALNUMERAL WHILE +## +## Ends in an error in state: 118. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs MODULO non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs MODULO non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL MODULO TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 250. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs MODULO lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs MODULO lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL NEQUALS REALNUMERAL WHILE +## +## Ends in an error in state: 137. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs NEQUALS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs NEQUALS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL NEQUALS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 187. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs NEQUALS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs NEQUALS lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL OR REALNUMERAL WHILE +## +## Ends in an error in state: 135. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs OR non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs OR non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL OR TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 212. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs OR lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs OR lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL PLUS REALNUMERAL WHILE +## +## Ends in an error in state: 116. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs PLUS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs PLUS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL PLUS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 251. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs PLUS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs PLUS lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK REALNUMERAL COLON REALNUMERAL WHILE +## +## Ends in an error in state: 217. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs QMARK non_lhs COLON non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK non_lhs COLON non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK REALNUMERAL COLON TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 218. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs QMARK non_lhs COLON lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK non_lhs COLON lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK TRUNCATE COLON REALNUMERAL WHILE +## +## Ends in an error in state: 233. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs QMARK lhs COLON non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK lhs COLON non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK TRUNCATE COLON TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 234. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs QMARK lhs COLON lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK lhs COLON lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL RABRACK REALNUMERAL WHILE +## +## Ends in an error in state: 114. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs RABRACK non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs RABRACK non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL RABRACK TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 252. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs RABRACK lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs RABRACK lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TIMES REALNUMERAL WHILE +## +## Ends in an error in state: 102. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs TIMES non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs TIMES non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TIMES TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 266. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs TIMES lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs TIMES lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL WHILE +## +## Ends in an error in state: 371. +## +## atomic_statement -> non_lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . PLUS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . MINUS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . TIMES lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . MODULO lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . HAT lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . HAT non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . OR lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . OR non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . AND lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . AND non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . EQUALS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . LABRACK lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . LEQ lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . RABRACK lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . GEQ lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## +## The known suffix of the stack is as follows: +## non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE AND REALNUMERAL WHILE +## +## Ends in an error in state: 214. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs AND non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs AND non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE AND TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 215. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs AND lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs AND lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDE TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 171. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs DIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs DIVIDE lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 167. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTDIVIDE non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTDIVIDE non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDE TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 168. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTDIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTDIVIDE lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMES REALNUMERAL WHILE +## +## Ends in an error in state: 164. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTTIMES non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTTIMES non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMES TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 165. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTTIMES lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTTIMES lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE EQUALS REALNUMERAL WHILE +## +## Ends in an error in state: 210. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs EQUALS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs EQUALS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE EQUALS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 211. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs EQUALS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs EQUALS lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE GEQ REALNUMERAL WHILE +## +## Ends in an error in state: 198. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs GEQ non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs GEQ non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE GEQ TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 199. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs GEQ lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs GEQ lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE HAT REALNUMERAL WHILE +## +## Ends in an error in state: 123. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs HAT non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs HAT non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE HAT TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 124. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs HAT lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs HAT lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LABRACK REALNUMERAL WHILE +## +## Ends in an error in state: 195. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LABRACK non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LABRACK non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LABRACK TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 196. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LABRACK lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LABRACK lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 144. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LDIVIDE non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LDIVIDE non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LDIVIDE TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 145. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LDIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LDIVIDE lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LEQ REALNUMERAL WHILE +## +## Ends in an error in state: 192. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LEQ non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LEQ non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LEQ TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 193. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LEQ lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LEQ lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUS REALNUMERAL WHILE +## +## Ends in an error in state: 179. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs MINUS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs MINUS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 180. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs MINUS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs MINUS lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MODULO REALNUMERAL WHILE +## +## Ends in an error in state: 161. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs MODULO non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs MODULO non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MODULO TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 162. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs MODULO lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs MODULO lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE NEQUALS REALNUMERAL WHILE +## +## Ends in an error in state: 207. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs NEQUALS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs NEQUALS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE NEQUALS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 208. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs NEQUALS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs NEQUALS lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE OR REALNUMERAL WHILE +## +## Ends in an error in state: 225. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs OR non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs OR non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE OR TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 226. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs OR lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs OR lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUS REALNUMERAL WHILE +## +## Ends in an error in state: 176. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs PLUS non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs PLUS non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUS TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 177. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs PLUS lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs PLUS lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK TRUNCATE COLON REALNUMERAL WHILE +## +## Ends in an error in state: 229. +## +## non_lhs -> lhs QMARK lhs COLON non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK lhs COLON non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK TRUNCATE COLON TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 230. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK lhs COLON lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK lhs COLON lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE RABRACK REALNUMERAL WHILE +## +## Ends in an error in state: 189. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs RABRACK non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs RABRACK non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE RABRACK TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 190. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs RABRACK lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs RABRACK lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMES REALNUMERAL WHILE +## +## Ends in an error in state: 158. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs TIMES non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs TIMES non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMES TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 159. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs TIMES lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs TIMES lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK REALNUMERAL COLON TRUNCATE LBRACK RBRACK WHILE +## +## Ends in an error in state: 223. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK non_lhs COLON lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK non_lhs COLON lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK REALNUMERAL COLON REALNUMERAL WHILE +## +## Ends in an error in state: 222. +## +## non_lhs -> lhs QMARK non_lhs COLON non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK non_lhs COLON non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE UPPER IDIVIDE UPPER LBRACK RBRACK WHILE +## +## Ends in an error in state: 149. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs IDIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs IDIVIDE lhs +## program: TRANSFORMEDDATABLOCK LBRACE UPPER IDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 148. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs IDIVIDE non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs IDIVIDE non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE UPPER ELTPOW UPPER LBRACK RBRACK WHILE +## +## Ends in an error in state: 127. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTPOW lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTPOW lhs +## program: TRANSFORMEDDATABLOCK LBRACE UPPER ELTPOW REALNUMERAL WHILE +## +## Ends in an error in state: 126. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTPOW non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTPOW non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL IDIVIDE UPPER LBRACK RBRACK WHILE +## +## Ends in an error in state: 121. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs IDIVIDE lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs IDIVIDE lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL IDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 120. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs IDIVIDE non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs IDIVIDE non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW UPPER LBRACK RBRACK WHILE +## +## Ends in an error in state: 109. +## +## lhs -> lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs ELTPOW lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs ELTPOW lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW REALNUMERAL WHILE ## -## Ends in an error in state: 136. -## Ends in an error in state: 98. -## Ends in an error in state: 99. +## Ends in an error in state: 108. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs ELTPOW non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . TRANSPOSE [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs ELTPOW non_lhs +## + +Found a expression where we expected a statement. Is there a missing semi-colon here? +Or did you mean to use the preceding expression in: +* a function call +* a sampling statement +* the conditional in a for, while, or if statement +* assignment to a variable? + +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK TRUNCATE COLON REALNUMERAL WHILE +## +## Ends in an error in state: 258. +## +## indexes -> lhs COLON non_lhs . [ RBRACK COMMA ] +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . PLUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MINUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MODULO lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . HAT lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . HAT non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . OR lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . OR non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . AND lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . AND non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . EQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . RABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## +## The known suffix of the stack is as follows: +## lhs COLON non_lhs +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL COLON REALNUMERAL WHILE +## +## Ends in an error in state: 254. +## +## indexes -> non_lhs COLON non_lhs . [ RBRACK COMMA ] +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . PLUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MINUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MODULO lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . HAT lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . HAT non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . OR lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . OR non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . AND lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . AND non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . EQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . RABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## +## The known suffix of the stack is as follows: +## non_lhs COLON non_lhs +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL COLON TRUNCATE TILDE +## +## Ends in an error in state: 255. +## +## indexes -> non_lhs COLON lhs . [ RBRACK COMMA ] +## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . PLUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . PLUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MINUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MINUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . TIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . TIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . DIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . IDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MODULO lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MODULO non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTTIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . HAT lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . HAT non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTPOW lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . OR lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . OR non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . AND lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . AND non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . EQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . EQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . NEQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . RABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . RABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## +## The known suffix of the stack is as follows: +## non_lhs COLON lhs +## +## WARNING: This example involves spurious reductions. +## 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 128, spurious reduction of production lhs -> identifier +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL WHILE +## +## Ends in an error in state: 112. +## +## indexes -> non_lhs . [ RBRACK COMMA ] +## indexes -> non_lhs . COLON [ RBRACK COMMA ] +## indexes -> non_lhs . COLON lhs [ RBRACK COMMA ] +## indexes -> non_lhs . COLON non_lhs [ RBRACK COMMA ] +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . PLUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . MINUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . TIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . MODULO lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . HAT lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . HAT non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . OR lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . OR non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . AND lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . AND non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . EQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . LABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . LEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . RABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA COLON AND ] +## +## The known suffix of the stack is as follows: +## non_lhs +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK TRUNCATE COLON TRUNCATE TILDE +## +## Ends in an error in state: 259. +## +## indexes -> lhs COLON lhs . [ RBRACK COMMA ] +## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . PLUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . PLUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MINUS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MINUS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . TIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . TIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . DIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . IDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MODULO lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . MODULO non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTTIMES lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . HAT lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . HAT non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTPOW lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . OR lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . OR non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . AND lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . AND non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . EQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . EQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . NEQUALS lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . LEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . RABRACK lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . RABRACK non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## +## The known suffix of the stack is as follows: +## lhs COLON lhs +## +## WARNING: This example involves spurious reductions. +## 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 128, spurious reduction of production lhs -> identifier +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK TRUNCATE COLON WHILE +## +## Ends in an error in state: 257. +## +## indexes -> lhs COLON . [ RBRACK COMMA ] +## indexes -> lhs COLON . lhs [ RBRACK COMMA ] +## indexes -> lhs COLON . non_lhs [ RBRACK COMMA ] +## +## The known suffix of the stack is as follows: +## lhs COLON +## +program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL AND REALNUMERAL WHILE +## +## Ends in an error in state: 204. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6780,11 +10772,11 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW REALNUMERAL WHILE ## non_lhs -> non_lhs . HAT non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . ELTPOW lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . ELTPOW non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] -## non_lhs -> non_lhs ELTPOW non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . OR lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . OR non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . AND lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . AND non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs AND non_lhs . [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . EQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . EQUALS non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . NEQUALS lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6801,28 +10793,11 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW REALNUMERAL WHILE ## non_lhs -> non_lhs . LBRACK indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## ## The known suffix of the stack is as follows: -## non_lhs ELTPOW non_lhs +## non_lhs AND non_lhs ## - -Found a expression where we expected a statement. Is there a missing semi-colon here? -Or did you mean to use the preceding expression in: -* a function call -* a sampling statement -* the conditional in a for, while, or if statement -* assignment to a variable? - -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK TRUNCATE COLON REALNUMERAL WHILE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL COLON REALNUMERAL WHILE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL COLON TRUNCATE TILDE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL WHILE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK TRUNCATE COLON TRUNCATE TILDE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK TRUNCATE COLON WHILE -program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL AND REALNUMERAL WHILE program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK WHILE ## -## Ends in an error in state: 126. -## Ends in an error in state: 88. -## Ends in an error in state: 89. +## Ends in an error in state: 98. ## ## non_lhs -> non_lhs LBRACK . indexes RBRACK [ 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 DIVIDE COMMA COLON BAR AND ] ## @@ -6833,41 +10808,316 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK WHILE Found an ill-formed expression where we expected a statement. Did you forget to close your "["? program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LDIVIDE WHILE +## +## Ends in an error in state: 103. +## +## non_lhs -> non_lhs LDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LDIVIDE +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL MINUS WHILE +## +## Ends in an error in state: 138. +## +## non_lhs -> non_lhs MINUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs MINUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs MINUS +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL PLUS WHILE +## +## Ends in an error in state: 115. +## +## non_lhs -> non_lhs PLUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs PLUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs PLUS +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL OR WHILE +## +## Ends in an error in state: 134. +## +## non_lhs -> non_lhs OR . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs OR . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs OR +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL NEQUALS WHILE +## +## Ends in an error in state: 136. +## +## non_lhs -> non_lhs NEQUALS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs NEQUALS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs NEQUALS +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL MODULO WHILE +## +## Ends in an error in state: 117. +## +## non_lhs -> non_lhs MODULO . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs MODULO . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs MODULO +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LEQ WHILE +## +## Ends in an error in state: 172. +## +## non_lhs -> non_lhs LEQ . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs LEQ . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs LEQ +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL RABRACK WHILE +## +## Ends in an error in state: 113. +## +## non_lhs -> non_lhs RABRACK . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs RABRACK . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs RABRACK +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TIMES WHILE +## +## Ends in an error in state: 101. +## +## non_lhs -> non_lhs TIMES . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs TIMES . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs TIMES +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE AND WHILE +## +## Ends in an error in state: 213. +## +## non_lhs -> lhs AND . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs AND . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs AND +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDE WHILE +## +## Ends in an error in state: 169. +## +## non_lhs -> lhs DIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs DIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs DIVIDE +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDE WHILE +## +## Ends in an error in state: 166. +## +## non_lhs -> lhs ELTDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTDIVIDE +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMES WHILE +## +## Ends in an error in state: 163. +## +## non_lhs -> lhs ELTTIMES . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTTIMES . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTTIMES +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE EQUALS WHILE +## +## Ends in an error in state: 209. +## +## non_lhs -> lhs EQUALS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs EQUALS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs EQUALS +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE GEQ WHILE +## +## Ends in an error in state: 197. +## +## non_lhs -> lhs GEQ . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs GEQ . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs GEQ +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE HAT WHILE +## +## Ends in an error in state: 122. +## +## non_lhs -> lhs HAT . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs HAT . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs HAT +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LABRACK WHILE +## +## Ends in an error in state: 194. +## +## non_lhs -> lhs LABRACK . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LABRACK . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LABRACK +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LDIVIDE WHILE +## +## Ends in an error in state: 143. +## +## non_lhs -> lhs LDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LDIVIDE +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LEQ WHILE +## +## Ends in an error in state: 191. +## +## non_lhs -> lhs LEQ . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs LEQ . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs LEQ +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUS WHILE +## +## Ends in an error in state: 178. +## +## non_lhs -> lhs MINUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs MINUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs MINUS +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MODULO WHILE +## +## Ends in an error in state: 160. +## +## non_lhs -> lhs MODULO . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs MODULO . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs MODULO +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE NEQUALS WHILE +## +## Ends in an error in state: 206. +## +## non_lhs -> lhs NEQUALS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs NEQUALS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs NEQUALS +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN WHILE +## +## Ends in an error in state: 412. +## +## atomic_statement -> lhs ELTTIMESASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTTIMESASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## lhs ELTTIMESASSIGN +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE OR WHILE +## +## Ends in an error in state: 224. +## +## non_lhs -> lhs OR . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs OR . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs OR +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUS WHILE +## +## Ends in an error in state: 175. +## +## non_lhs -> lhs PLUS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs PLUS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs PLUS +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE RABRACK WHILE +## +## Ends in an error in state: 188. +## +## non_lhs -> lhs RABRACK . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs RABRACK . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs RABRACK +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMES WHILE +## +## Ends in an error in state: 157. +## +## non_lhs -> lhs TIMES . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs TIMES . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs TIMES +## program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER IDIVIDE WHILE +## +## Ends in an error in state: 553. +## +## constr_expression -> constr_expression IDIVIDE . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## +## The known suffix of the stack is as follows: +## constr_expression IDIVIDE +## program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER ELTPOW WHILE +## +## Ends in an error in state: 543. +## +## constr_expression -> constr_expression ELTPOW . constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## +## The known suffix of the stack is as follows: +## constr_expression ELTPOW +## program: TRANSFORMEDDATABLOCK LBRACE UPPER IDIVIDE WHILE +## +## Ends in an error in state: 147. +## +## non_lhs -> lhs IDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs IDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs IDIVIDE +## program: TRANSFORMEDDATABLOCK LBRACE UPPER ELTPOW WHILE +## +## Ends in an error in state: 125. +## +## non_lhs -> lhs ELTPOW . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs ELTPOW . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs ELTPOW +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW WHILE ## -## Ends in an error in state: 135. -## Ends in an error in state: 97. -## Ends in an error in state: 98. +## Ends in an error in state: 107. ## ## non_lhs -> non_lhs ELTPOW . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs ELTPOW . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6879,19 +11129,288 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTPOW WHILE Found an incomplete binary expression - are you missing the right hand side? program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK REALNUMERAL COLON WHILE +## +## Ends in an error in state: 221. +## +## non_lhs -> lhs QMARK non_lhs COLON . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK non_lhs COLON . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK non_lhs COLON +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK REALNUMERAL WHILE +## +## Ends in an error in state: 220. +## +## non_lhs -> lhs QMARK non_lhs . COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK non_lhs . COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . PLUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MINUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . TIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MODULO lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . HAT lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . HAT non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . OR lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . OR non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . AND lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . AND non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . EQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . RABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . GEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK TRUNCATE COLON WHILE +## +## Ends in an error in state: 228. +## +## non_lhs -> lhs QMARK lhs COLON . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK lhs COLON . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK lhs COLON +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK TRUNCATE TILDE +## +## Ends in an error in state: 227. +## +## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs QMARK lhs . COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs QMARK lhs . COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . PLUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . PLUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MINUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MINUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . TIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . TIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . DIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . IDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MODULO lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MODULO non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTTIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . HAT lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . HAT non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTPOW lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . OR lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . OR non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . AND lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . AND non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . EQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . EQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . NEQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . RABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . RABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK lhs +## +## WARNING: This example involves spurious reductions. +## 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 128, spurious reduction of production lhs -> identifier +## program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE QMARK WHILE +## +## Ends in an error in state: 219. +## +## non_lhs -> lhs QMARK . lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK . lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK . non_lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs QMARK . non_lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## lhs QMARK +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK REALNUMERAL COLON WHILE +## +## Ends in an error in state: 216. +## +## non_lhs -> non_lhs QMARK non_lhs COLON . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs QMARK non_lhs COLON . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK non_lhs COLON +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK REALNUMERAL WHILE +## +## Ends in an error in state: 133. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs QMARK non_lhs . COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs QMARK non_lhs . COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs . PLUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MINUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . TIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MODULO lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . HAT lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . HAT non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . OR lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . OR non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . AND lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . AND non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . EQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . RABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . GEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK TRUNCATE COLON WHILE +## +## Ends in an error in state: 232. +## +## non_lhs -> non_lhs QMARK lhs COLON . lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs QMARK lhs COLON . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK lhs COLON +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK TRUNCATE TILDE +## +## Ends in an error in state: 231. +## +## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> non_lhs QMARK lhs . COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> non_lhs QMARK lhs . COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] +## non_lhs -> lhs . PLUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . PLUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MINUS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MINUS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . TIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . TIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . DIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . IDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MODULO lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . MODULO non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTTIMES lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . HAT lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . HAT non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTPOW lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . OR lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . OR non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . AND lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . AND non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . EQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . EQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . NEQUALS lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . LEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . RABRACK lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . RABRACK non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COLON AND ] +## +## The known suffix of the stack is as follows: +## non_lhs QMARK lhs +## +## WARNING: This example involves spurious reductions. +## 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 128, spurious reduction of production lhs -> identifier +## program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL QMARK WHILE ## -## Ends in an error in state: 160. -## Ends in an error in state: 122. -## Ends in an error in state: 123. +## Ends in an error in state: 132. ## ## non_lhs -> non_lhs QMARK . lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs QMARK . lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -6908,11 +11427,61 @@ For example, this returns 3.0: 1 ? 0.0 : 3.0 program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN REALNUMERAL WHILE +## +## Ends in an error in state: 307. +## +## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . PLUS lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . PLUS non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MINUS lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MINUS non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TIMES lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TIMES non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . DIVIDE lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . DIVIDE non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . IDIVIDE lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MODULO lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . MODULO non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LDIVIDE lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTTIMES lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . HAT lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . HAT non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTPOW lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . ELTPOW non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . OR lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . OR non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . AND lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . AND non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . EQUALS lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . EQUALS non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . NEQUALS lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . NEQUALS non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LABRACK lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LABRACK non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LEQ lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LEQ non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . RABRACK lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . RABRACK non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . GEQ lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . GEQ non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . TRANSPOSE [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## non_lhs -> non_lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] +## printables -> non_lhs . [ RPAREN COMMA ] +## +## The known suffix of the stack is as follows: +## non_lhs +## program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 336. -## Ends in an error in state: 298. -## Ends in an error in state: 299. +## Ends in an error in state: 308. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -6967,18 +11536,14 @@ program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Got an incomplete statement - are you missing a paren or semi-colon? program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDE REALNUMERAL WHILE ## -## Ends in an error in state: 198. -## Ends in an error in state: 160. -## Ends in an error in state: 161. +## Ends in an error in state: 170. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7034,9 +11599,7 @@ Looks like program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL AND WHILE ## -## Ends in an error in state: 231. -## Ends in an error in state: 193. -## Ends in an error in state: 194. +## Ends in an error in state: 203. ## ## non_lhs -> non_lhs AND . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs AND . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7052,9 +11615,7 @@ Ill-formed expression. Expected expression after expression followed by "&&". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL IDIVIDE WHILE ## -## Ends in an error in state: 147. -## Ends in an error in state: 109. -## Ends in an error in state: 110. +## Ends in an error in state: 119. ## ## non_lhs -> non_lhs IDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs IDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7067,9 +11628,7 @@ Ill-formed expression. Expected expression after expression followed by "%/%". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL DIVIDE WHILE ## -## Ends in an error in state: 181. -## Ends in an error in state: 143. -## Ends in an error in state: 144. +## Ends in an error in state: 153. ## ## non_lhs -> non_lhs DIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs DIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7083,9 +11642,7 @@ Ill-formed expression. Expected expression after expression followed by "/". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTDIVIDE WHILE ## -## Ends in an error in state: 178. -## Ends in an error in state: 140. -## Ends in an error in state: 141. +## Ends in an error in state: 150. ## ## non_lhs -> non_lhs ELTDIVIDE . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs ELTDIVIDE . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7100,9 +11657,7 @@ Ill-formed expression. Expected expression after expression followed by "./". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL ELTTIMES WHILE ## -## Ends in an error in state: 168. -## Ends in an error in state: 130. -## Ends in an error in state: 131. +## Ends in an error in state: 140. ## ## non_lhs -> non_lhs ELTTIMES . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs ELTTIMES . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7115,9 +11670,7 @@ Ill-formed expression. Expected expression after expression followed by ".*". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL EQUALS WHILE ## -## Ends in an error in state: 228. -## Ends in an error in state: 190. -## Ends in an error in state: 191. +## Ends in an error in state: 200. ## ## non_lhs -> non_lhs EQUALS . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs EQUALS . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7130,9 +11683,7 @@ Ill-formed expression. Expected expression after expression followed by "==". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL GEQ WHILE ## -## Ends in an error in state: 212. -## Ends in an error in state: 174. -## Ends in an error in state: 175. +## Ends in an error in state: 184. ## ## non_lhs -> non_lhs GEQ . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs GEQ . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7145,9 +11696,7 @@ Ill-formed expression. Expected expression after expression followed by ">=". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL HAT WHILE ## -## Ends in an error in state: 133. -## Ends in an error in state: 95. -## Ends in an error in state: 96. +## Ends in an error in state: 105. ## ## non_lhs -> non_lhs HAT . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs HAT . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7160,9 +11709,7 @@ Ill-formed expression. Expected expression after expression followed by "^". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LABRACK WHILE ## -## Ends in an error in state: 209. -## Ends in an error in state: 171. -## Ends in an error in state: 172. +## Ends in an error in state: 181. ## ## non_lhs -> non_lhs LABRACK . lhs [ 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs LABRACK . non_lhs [ 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 DIVIDE COMMA COLON BAR AND ] @@ -7175,9 +11722,7 @@ Ill-formed expression. Expected expression after expression followed by "<". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON REALNUMERAL WHILE ## -## Ends in an error in state: 128. -## Ends in an error in state: 90. -## Ends in an error in state: 91. +## Ends in an error in state: 100. ## ## indexes -> COLON non_lhs . [ RBRACK COMMA ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -7233,9 +11778,7 @@ Ill-formed phrase. Found ":" expression. We expect either an infix or postfix op program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON TRUNCATE TILDE ## -## Ends in an error in state: 295. -## Ends in an error in state: 257. -## Ends in an error in state: 258. +## Ends in an error in state: 267. ## ## indexes -> COLON lhs . [ RBRACK COMMA ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -7290,18 +11833,14 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found ":" expression. We expect either an infix or postfix operator, or "," or or "[" or "]" next. program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COLON WHILE ## -## Ends in an error in state: 127. -## Ends in an error in state: 89. -## Ends in an error in state: 90. +## Ends in an error in state: 99. ## ## indexes -> COLON . [ RBRACK COMMA ] ## indexes -> COLON . lhs [ RBRACK COMMA ] @@ -7315,9 +11854,7 @@ Ill-formed expression. Expected expression or "]" or "," after ":". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK COMMA WHILE ## -## Ends in an error in state: 290. -## Ends in an error in state: 252. -## Ends in an error in state: 253. +## Ends in an error in state: 262. ## ## indexes -> indexes COMMA . indexes [ RBRACK COMMA ] ## @@ -7329,9 +11866,7 @@ Expected index after indices followed by ",". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL LBRACK REALNUMERAL COLON WHILE ## -## Ends in an error in state: 281. -## Ends in an error in state: 243. -## Ends in an error in state: 244. +## Ends in an error in state: 253. ## ## indexes -> non_lhs COLON . [ RBRACK COMMA ] ## indexes -> non_lhs COLON . lhs [ RBRACK COMMA ] @@ -7346,13 +11881,9 @@ Ill-formed expression. Expected expression or "]" or "," after ":". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA RBRACK MULTIPLIER ## -## Ends in an error in state: 409. -## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 376. -## Ends in an error in state: 377. +## Ends in an error in state: 386. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) @@ -7362,9 +11893,7 @@ Expected ";" after "~"-statement (with optional truncation). program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA TRUNCATE COMMA ## -## Ends in an error in state: 404. -## Ends in an error in state: 371. -## Ends in an error in state: 372. +## Ends in an error in state: 381. ## ## truncation -> TRUNCATE LBRACK option(expression) COMMA option(expression) . RBRACK [ SEMICOLON ] ## @@ -7375,21 +11904,15 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TR ## 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 156, spurious reduction of production lhs -> identifier -## In state 407, spurious reduction of production option(expression) -> lhs -## In state 118, spurious reduction of production lhs -> identifier -## In state 374, spurious reduction of production option(expression) -> lhs -## In state 119, spurious reduction of production lhs -> identifier -## In state 375, spurious reduction of production option(expression) -> lhs +## In state 128, spurious reduction of production lhs -> identifier +## In state 384, spurious reduction of production option(expression) -> lhs ## Ill-formed truncation. Expect the format "T[" optional expression "," optional expression "];". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA WHILE ## -## Ends in an error in state: 403. -## Ends in an error in state: 370. -## Ends in an error in state: 371. +## Ends in an error in state: 380. ## ## truncation -> TRUNCATE LBRACK option(expression) COMMA . option(expression) RBRACK [ SEMICOLON ] ## @@ -7401,9 +11924,7 @@ Ill-formed truncation. Expect the format "T[" optional expression "," optional e program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK REALNUMERAL WHILE ## -## Ends in an error in state: 406. -## Ends in an error in state: 373. -## Ends in an error in state: 374. +## Ends in an error in state: 383. ## ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -7459,9 +11980,7 @@ Ill-formed expression. Found an expression. Expect a infix or postfix operator o program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK TRUNCATE RBRACK ## -## Ends in an error in state: 402. -## Ends in an error in state: 369. -## Ends in an error in state: 370. +## Ends in an error in state: 379. ## ## truncation -> TRUNCATE LBRACK option(expression) . COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -7472,21 +11991,15 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TR ## 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 156, spurious reduction of production lhs -> identifier -## In state 407, spurious reduction of production option(expression) -> lhs -## In state 118, spurious reduction of production lhs -> identifier -## In state 374, spurious reduction of production option(expression) -> lhs -## In state 119, spurious reduction of production lhs -> identifier -## In state 375, spurious reduction of production option(expression) -> lhs +## In state 128, spurious reduction of production lhs -> identifier +## In state 384, spurious reduction of production option(expression) -> lhs ## Ill-formed truncation. Expect the format "T[" optional expression "," optional expression "];". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK TRUNCATE TILDE ## -## Ends in an error in state: 407. -## Ends in an error in state: 374. -## Ends in an error in state: 375. +## Ends in an error in state: 384. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RBRACK RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -7541,18 +12054,14 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TR ## 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. Found an expression. Expect a infix or postfix operator or "[" or "]" or "," next. program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK WHILE ## -## Ends in an error in state: 401. -## Ends in an error in state: 368. -## Ends in an error in state: 369. +## Ends in an error in state: 378. ## ## truncation -> TRUNCATE LBRACK . option(expression) COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -7564,9 +12073,7 @@ Ill-formed truncation. Expect the format "T[" optional expression "," optional e program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN TRUNCATE WHILE ## -## Ends in an error in state: 400. -## Ends in an error in state: 367. -## Ends in an error in state: 368. +## Ends in an error in state: 377. ## ## truncation -> TRUNCATE . LBRACK option(expression) COMMA option(expression) RBRACK [ SEMICOLON ] ## @@ -7578,13 +12085,9 @@ Ill-formed truncation. Expect the format "T[" optional expression "," optional e program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN RPAREN WHILE ## -## Ends in an error in state: 399. -## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 366. -## Ends in an error in state: 367. +## Ends in an error in state: 376. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN @@ -7594,13 +12097,9 @@ Ill-formed "~"-statement. Expect either ";" or a truncation with the format "T[" program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN TRUNCATE RBRACK ## -## Ends in an error in state: 398. -## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 365. -## Ends in an error in state: 366. +## Ends in an error in state: 375. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) @@ -7609,28 +12108,18 @@ program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN TRUNCATE ## 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 120, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 121, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 130, 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 ")". program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 397. -## -## atomic_statement -> non_lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 364. -## Ends in an error in state: 365. +## Ends in an error in state: 374. ## -## atomic_statement -> non_lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier LPAREN @@ -7640,13 +12129,9 @@ Ill-formed "~"-statement. Expect a comma separated list of expressions for argum program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE TRUNCATE WHILE ## -## Ends in an error in state: 396. -## -## atomic_statement -> non_lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 363. -## Ends in an error in state: 364. +## Ends in an error in state: 373. ## -## atomic_statement -> non_lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE identifier @@ -7656,13 +12141,9 @@ Ill-formed "~"-statement. Expect "(" after distribution name, followed by a comm program: TRANSFORMEDDATABLOCK LBRACE REALNUMERAL TILDE WHILE ## -## Ends in an error in state: 395. -## -## atomic_statement -> non_lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 362. -## Ends in an error in state: 363. +## Ends in an error in state: 372. ## -## atomic_statement -> non_lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> non_lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## non_lhs TILDE @@ -7672,13 +12153,9 @@ Ill-formed "~"-statement. Expect an distribution name after "~". program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN STRINGLITERAL WHILE ## -## Ends in an error in state: 330. -## -## atomic_statement -> REJECT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 292. -## Ends in an error in state: 293. +## Ends in an error in state: 302. ## -## atomic_statement -> REJECT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN printables . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## ## The known suffix of the stack is as follows: @@ -7689,9 +12166,7 @@ Ill-formed printable. After "reject(", we expect a comma separated list of eithe program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE COMMA STRINGLITERAL WHILE ## -## Ends in an error in state: 334. -## Ends in an error in state: 296. -## Ends in an error in state: 297. +## Ends in an error in state: 306. ## ## printables -> printables . COMMA printables [ RPAREN COMMA ] ## printables -> printables COMMA printables . [ RPAREN COMMA ] @@ -7704,9 +12179,7 @@ Ill-formed printable. After "print(" and "reject(", we expect a comma separated program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 333. -## Ends in an error in state: 295. -## Ends in an error in state: 296. +## Ends in an error in state: 305. ## ## printables -> printables COMMA . printables [ RPAREN COMMA ] ## @@ -7718,13 +12191,9 @@ Ill-formed printable. After "print(" and "reject(", we expect a comma separated program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN TRUNCATE RPAREN WHILE ## -## Ends in an error in state: 331. -## -## atomic_statement -> REJECT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 293. -## Ends in an error in state: 294. +## Ends in an error in state: 303. ## -## atomic_statement -> REJECT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN printables RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT LPAREN printables RPAREN @@ -7734,13 +12203,9 @@ Ill-formed reject statement. After "reject(", we expect a comma separated list o program: TRANSFORMEDDATABLOCK LBRACE REJECT LPAREN WHILE ## -## Ends in an error in state: 327. -## -## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 289. -## Ends in an error in state: 290. +## Ends in an error in state: 299. ## -## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT LPAREN . printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT LPAREN @@ -7750,13 +12215,9 @@ Ill-formed reject statement. After "reject(", we expect a comma separated list o program: TRANSFORMEDDATABLOCK LBRACE REJECT WHILE ## -## Ends in an error in state: 326. -## -## atomic_statement -> REJECT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 288. -## Ends in an error in state: 289. +## Ends in an error in state: 298. ## -## atomic_statement -> REJECT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> REJECT . LPAREN printables RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## REJECT @@ -7766,9 +12227,7 @@ Ill-formed reject statement. After "reject(", we expect a comma separated list o program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE TRUNCATE RPAREN ## -## Ends in an error in state: 299. -## Ends in an error in state: 261. -## Ends in an error in state: 262. +## Ends in an error in state: 271. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7779,21 +12238,15 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs ## Expected either "," followed by expression or "}" next. program: TRANSFORMEDDATABLOCK LBRACE RETURN LBRACE WHILE ## -## Ends in an error in state: 118. -## Ends in an error in state: 80. -## Ends in an error in state: 81. +## Ends in an error in state: 90. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7805,13 +12258,9 @@ Expression expected after "{" in array expression. program: TRANSFORMEDDATABLOCK LBRACE RETURN REALNUMERAL WHILE ## -## Ends in an error in state: 322. -## -## atomic_statement -> RETURN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 284. -## Ends in an error in state: 285. +## Ends in an error in state: 294. ## -## atomic_statement -> RETURN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7865,9 +12314,7 @@ Ill formed expression followed by ";". Expect expression after "return". program: TRANSFORMEDDATABLOCK LBRACE RETURN TARGET WHILE ## -## Ends in an error in state: 110. -## Ends in an error in state: 72. -## Ends in an error in state: 73. +## Ends in an error in state: 82. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7879,9 +12326,7 @@ Ill formed expression. After "target", we expect "()". program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE LPAREN TRUNCATE COMMA IDENTIFIER RBRACK ## -## Ends in an error in state: 272. -## Ends in an error in state: 234. -## Ends in an error in state: 235. +## Ends in an error in state: 244. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -7892,27 +12337,17 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE LPAREN TRUNCATE COMMA IDENT ## 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 268, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 230, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 120, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 231, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 121, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 240, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) +## In state 130, 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 "(". program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 157. -## Ends in an error in state: 119. -## Ends in an error in state: 120. +## Ends in an error in state: 129. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## common_expression -> identifier LPAREN . lhs 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 DIVIDE COMMA COLON BAR AND ] @@ -7926,13 +12361,9 @@ Ill-formed expression. In function application, expect comma-separated list of e program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE TILDE ## -## Ends in an error in state: 324. -## -## atomic_statement -> RETURN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 286. -## Ends in an error in state: 287. +## Ends in an error in state: 296. ## -## atomic_statement -> RETURN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -7985,18 +12416,14 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed return statement. ";" or expression followed by ";" expected after "return". program: TRANSFORMEDDATABLOCK LBRACE RETURN TRUNCATE WHILE ## -## Ends in an error in state: 156. -## Ends in an error in state: 118. -## Ends in an error in state: 119. +## Ends in an error in state: 128. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## common_expression -> identifier . LPAREN lhs 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 DIVIDE COMMA COLON BAR AND ] @@ -8011,17 +12438,11 @@ Ill-formed expression. Found identifier. There are many ways to complete this to program: TRANSFORMEDDATABLOCK LBRACE RETURN WHILE ## -## Ends in an error in state: 320. -## -## atomic_statement -> RETURN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> RETURN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> RETURN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 282. -## Ends in an error in state: 283. +## Ends in an error in state: 292. ## -## atomic_statement -> RETURN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> RETURN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> RETURN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> RETURN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## RETURN @@ -8031,9 +12452,7 @@ program: TRANSFORMEDDATABLOCK LBRACE RETURN WHILE program: TRANSFORMEDDATABLOCK LBRACE TARGET LPAREN WHILE ## -## Ends in an error in state: 111. -## Ends in an error in state: 73. -## Ends in an error in state: 74. +## Ends in an error in state: 83. ## ## 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 DIVIDE COMMA COLON BAR AND ] ## @@ -8045,13 +12464,9 @@ Ill-formed expression. Expected ")" after "target(". program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 315. -## -## atomic_statement -> TARGET PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 277. -## Ends in an error in state: 278. +## Ends in an error in state: 287. ## -## atomic_statement -> TARGET PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8105,13 +12520,9 @@ Ill-formed expression. Expression followed by ";" expected after "target +=". program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 317. -## -## atomic_statement -> TARGET PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 279. -## Ends in an error in state: 280. +## Ends in an error in state: 289. ## -## atomic_statement -> TARGET PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8164,24 +12575,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. Expression followed by ";" expected after "target +=". program: TRANSFORMEDDATABLOCK LBRACE TARGET PLUSASSIGN WHILE ## -## Ends in an error in state: 314. -## -## atomic_statement -> TARGET PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> TARGET PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 276. -## Ends in an error in state: 277. +## Ends in an error in state: 286. ## -## atomic_statement -> TARGET PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> TARGET PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## TARGET PLUSASSIGN @@ -8191,15 +12595,10 @@ Expected an expression followed by a ";", after "target +=". program: TRANSFORMEDDATABLOCK LBRACE TARGET WHILE ## -## Ends in an error in state: 313. -## -## atomic_statement -> TARGET . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> TARGET . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 275. -## Ends in an error in state: 276. +## Ends in an error in state: 285. ## -## atomic_statement -> TARGET . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> TARGET . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> TARGET . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> TARGET . LPAREN RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## ## The known suffix of the stack is as follows: @@ -8210,13 +12609,9 @@ Ill-formed phrase. Expect either "+=" or "()" after "target". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 456. -## -## atomic_statement -> lhs ARROWASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 423. -## Ends in an error in state: 424. +## Ends in an error in state: 433. ## -## atomic_statement -> lhs ARROWASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8270,13 +12665,9 @@ Ill-formed phrase. Found L-value "<-" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 458. -## -## atomic_statement -> lhs ARROWASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 425. -## Ends in an error in state: 426. +## Ends in an error in state: 435. ## -## atomic_statement -> lhs ARROWASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8329,24 +12720,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "<-" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ARROWASSIGN WHILE ## -## Ends in an error in state: 455. -## -## atomic_statement -> lhs ARROWASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ARROWASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 422. -## Ends in an error in state: 423. +## Ends in an error in state: 432. ## -## atomic_statement -> lhs ARROWASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ARROWASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ARROWASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs ARROWASSIGN @@ -8356,13 +12740,9 @@ Ill-formed expression. Found L-value "<-". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 451. -## -## atomic_statement -> lhs ASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 418. -## Ends in an error in state: 419. +## Ends in an error in state: 428. ## -## atomic_statement -> lhs ASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8416,13 +12796,9 @@ Ill-formed phrase. Found L-value "=" expression. There are many ways in which th program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 453. -## -## atomic_statement -> lhs ASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 420. -## Ends in an error in state: 421. +## Ends in an error in state: 430. ## -## atomic_statement -> lhs ASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8475,24 +12851,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ASSIGN WHILE ## -## Ends in an error in state: 450. -## -## atomic_statement -> lhs ASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 417. -## Ends in an error in state: 418. +## Ends in an error in state: 427. ## -## atomic_statement -> lhs ASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs ASSIGN @@ -8502,13 +12871,9 @@ Ill-formed expression. Found L-value "=". Expect an expression followed by ";" n program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 446. -## -## atomic_statement -> lhs DIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 413. -## Ends in an error in state: 414. +## Ends in an error in state: 423. ## -## atomic_statement -> lhs DIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8562,13 +12927,9 @@ Ill-formed phrase. Found L-value "/=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 448. -## -## atomic_statement -> lhs DIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 415. -## Ends in an error in state: 416. +## Ends in an error in state: 425. ## -## atomic_statement -> lhs DIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8621,24 +12982,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "/=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE DIVIDEASSIGN WHILE ## -## Ends in an error in state: 445. -## -## atomic_statement -> lhs DIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs DIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 412. -## Ends in an error in state: 413. +## Ends in an error in state: 422. ## -## atomic_statement -> lhs DIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs DIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs DIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs DIVIDEASSIGN @@ -8648,13 +13002,9 @@ Ill-formed expression. Found L-value "/=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 441. -## -## atomic_statement -> lhs ELTDIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 408. -## Ends in an error in state: 409. +## Ends in an error in state: 418. ## -## atomic_statement -> lhs ELTDIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8708,13 +13058,9 @@ Ill-formed phrase. Found L-value "./=" expression. There are many ways in which program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 443. -## -## atomic_statement -> lhs ELTDIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 410. -## Ends in an error in state: 411. +## Ends in an error in state: 420. ## -## atomic_statement -> lhs ELTDIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8767,24 +13113,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "./=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTDIVIDEASSIGN WHILE ## -## Ends in an error in state: 440. -## -## atomic_statement -> lhs ELTDIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ELTDIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 407. -## Ends in an error in state: 408. +## Ends in an error in state: 417. ## -## atomic_statement -> lhs ELTDIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs ELTDIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTDIVIDEASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs ELTDIVIDEASSIGN @@ -8794,13 +13133,9 @@ Ill-formed expression. Found L-value "./=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 436. -## -## atomic_statement -> lhs ELTTIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 403. -## Ends in an error in state: 404. +## Ends in an error in state: 413. ## -## atomic_statement -> lhs ELTTIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTTIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8854,13 +13189,9 @@ Ill-formed phrase. Found L-value ".*=" expression. There are many ways in which program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 438. -## -## atomic_statement -> lhs ELTTIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 405. -## Ends in an error in state: 406. +## Ends in an error in state: 415. ## -## atomic_statement -> lhs ELTTIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs ELTTIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -8913,18 +13244,14 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE ELTTIMESASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value ".*=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL BAR TRUNCATE RBRACK ## -## Ends in an error in state: 270. -## Ends in an error in state: 232. -## Ends in an error in state: 233. +## Ends in an error in state: 242. ## ## common_expression -> identifier LPAREN non_lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -8935,24 +13262,16 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL BAR TRUNCATE RB ## 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 120, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 121, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 130, 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 "|". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL BAR WHILE ## -## Ends in an error in state: 269. -## Ends in an error in state: 231. -## Ends in an error in state: 232. +## Ends in an error in state: 241. ## ## common_expression -> identifier LPAREN non_lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -8964,9 +13283,7 @@ Ill-formed conditional distribution evaluation. Expect comma-separated list of e program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 159. -## Ends in an error in state: 121. -## Ends in an error in state: 122. +## Ends in an error in state: 131. ## ## common_expression -> identifier LPAREN non_lhs . 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 DIVIDE COMMA COLON BAR AND ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA BAR AND ] @@ -9024,13 +13341,9 @@ Ill-formed function application. Expect comma-separated list of expressions foll program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN RPAREN WHILE ## -## Ends in an error in state: 463. -## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 430. -## Ends in an error in state: 431. +## Ends in an error in state: 440. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## ## The known suffix of the stack is as follows: @@ -9041,9 +13354,7 @@ Ill-formed phrase. Found a well-formed function application. After this, there a program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE BAR TRUNCATE RBRACK ## -## Ends in an error in state: 276. -## Ends in an error in state: 238. -## Ends in an error in state: 239. +## Ends in an error in state: 248. ## ## common_expression -> identifier LPAREN lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -9054,24 +13365,16 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE BAR TRUNCATE RBRAC ## 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 120, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 121, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 130, 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 "|". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE BAR WHILE ## -## Ends in an error in state: 275. -## Ends in an error in state: 237. -## Ends in an error in state: 238. +## Ends in an error in state: 247. ## ## common_expression -> identifier LPAREN lhs 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 DIVIDE COMMA COLON BAR AND ] ## @@ -9083,13 +13386,9 @@ Ill-formed conditional distribution evaluation. Expect comma-separated list of e program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE COMMA IDENTIFIER RBRACK ## -## Ends in an error in state: 462. -## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 429. -## Ends in an error in state: 430. +## Ends in an error in state: 439. ## -## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## ## The known suffix of the stack is as follows: @@ -9099,27 +13398,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE COMMA IDENTIFIER R ## 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 268, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 230, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 120, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 231, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) -## In state 121, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 240, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs COMMA separated_nonempty_list(COMMA,expression) +## In state 130, 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 "(". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 274. -## Ends in an error in state: 236. -## Ends in an error in state: 237. +## Ends in an error in state: 246. ## ## common_expression -> identifier LPAREN lhs . 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 DIVIDE COMMA COLON BAR AND ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA BAR AND ] @@ -9176,22 +13465,16 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed function application. Expect comma-separated list of expressions followed by ")" after "(". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 461. -## -## atomic_statement -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 428. -## Ends in an error in state: 429. +## Ends in an error in state: 438. ## -## atomic_statement -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier LPAREN . lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier LPAREN . non_lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -9204,13 +13487,9 @@ Ill-formed function application. Expect comma-separated list of expressions foll program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 431. -## -## atomic_statement -> lhs MINUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 398. -## Ends in an error in state: 399. +## Ends in an error in state: 408. ## -## atomic_statement -> lhs MINUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9264,13 +13543,9 @@ Ill-formed phrase. Found L-value "-=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 433. -## -## atomic_statement -> lhs MINUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 400. -## Ends in an error in state: 401. +## Ends in an error in state: 410. ## -## atomic_statement -> lhs MINUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9323,24 +13598,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "-=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE MINUSASSIGN WHILE ## -## Ends in an error in state: 430. -## -## atomic_statement -> lhs MINUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs MINUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 397. -## Ends in an error in state: 398. +## Ends in an error in state: 407. ## -## atomic_statement -> lhs MINUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs MINUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs MINUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs MINUSASSIGN @@ -9350,13 +13618,9 @@ Ill-formed expression. Found L-value "-=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 426. -## -## atomic_statement -> lhs PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 393. -## Ends in an error in state: 394. +## Ends in an error in state: 403. ## -## atomic_statement -> lhs PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9410,13 +13674,9 @@ Ill-formed phrase. Found L-value "+=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 428. -## -## atomic_statement -> lhs PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 395. -## Ends in an error in state: 396. +## Ends in an error in state: 405. ## -## atomic_statement -> lhs PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9469,24 +13729,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "+=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE PLUSASSIGN WHILE ## -## Ends in an error in state: 425. -## -## atomic_statement -> lhs PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 392. -## Ends in an error in state: 393. +## Ends in an error in state: 402. ## -## atomic_statement -> lhs PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs PLUSASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs PLUSASSIGN @@ -9496,47 +13749,26 @@ Ill-formed expression. Found L-value "+=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE RBRACE ## -## Ends in an error in state: 738. +## Ends in an error in state: 723. ## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> lhs . top_var_type id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 697. -## Ends in an error in state: 704. -## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> lhs . top_var_type separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> lhs . top_var_type separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR UNITVECTOR TRANSPOSE TIMESASSIGN TIMES TILDE SIMPLEX ROWVECTOR REAL RABRACK QMARK POSITIVEORDERED PLUSASSIGN PLUS ORDERED OR NEQUALS MODULO MINUSASSIGN MINUS MATRIX LEQ LDIVIDE LBRACK LABRACK INT IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ASSIGN ARROWASSIGN AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9589,22 +13821,16 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE 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 460, spurious reduction of production lhs -> identifier -## In state 427, spurious reduction of production lhs -> identifier -## In state 428, spurious reduction of production lhs -> identifier +## In state 437, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value. This can be completed in many ways. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN RPAREN TRUNCATE LBRACK COMMA RBRACK MULTIPLIER ## -## Ends in an error in state: 423. -## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 390. -## Ends in an error in state: 391. +## Ends in an error in state: 400. ## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) @@ -9614,13 +13840,9 @@ Ill-formed "~"-statement. Expected ";". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN RPAREN WHILE ## -## Ends in an error in state: 422. -## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 389. -## Ends in an error in state: 390. +## Ends in an error in state: 399. ## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN . option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN @@ -9630,13 +13852,9 @@ Ill-formed "~"-statement. Expected ";" or "T[" optional expression "," optional program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN TRUNCATE RBRACK ## -## Ends in an error in state: 421. -## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 388. -## Ends in an error in state: 389. +## Ends in an error in state: 398. ## -## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) . RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) @@ -9645,28 +13863,18 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN TRUNCATE RBR ## 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 156, spurious reduction of production lhs -> identifier -## In state 266, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 158, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 118, spurious reduction of production lhs -> identifier -## In state 228, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 120, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) -## In state 119, spurious reduction of production lhs -> identifier -## In state 229, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs -## In state 121, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) +## In state 128, spurious reduction of production lhs -> identifier +## In state 238, spurious reduction of production separated_nonempty_list(COMMA,expression) -> lhs +## In state 130, spurious reduction of production loption(separated_nonempty_list(COMMA,expression)) -> separated_nonempty_list(COMMA,expression) ## Ill-formed "~"-statement. Expected "," or ")". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE LPAREN WHILE ## -## Ends in an error in state: 420. -## -## atomic_statement -> lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 387. -## Ends in an error in state: 388. +## Ends in an error in state: 397. ## -## atomic_statement -> lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier LPAREN . loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier LPAREN @@ -9676,13 +13884,9 @@ Ill-formed "~"-statement. Expected comma-separated list of expressions followed program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE TRUNCATE WHILE ## -## Ends in an error in state: 419. -## -## atomic_statement -> lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 386. -## Ends in an error in state: 387. +## Ends in an error in state: 396. ## -## atomic_statement -> lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE identifier @@ -9692,13 +13896,9 @@ Ill-formed "~"-statement. Expected "(" followed by a comma-separated list of exp program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TILDE WHILE ## -## Ends in an error in state: 418. -## -## atomic_statement -> lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 385. -## Ends in an error in state: 386. +## Ends in an error in state: 395. ## -## atomic_statement -> lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TILDE . identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TILDE @@ -9708,13 +13908,9 @@ Ill-formed "~"-statement. Expected identifier for distribution name after "~". program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 414. -## -## atomic_statement -> lhs TIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 381. -## Ends in an error in state: 382. +## Ends in an error in state: 391. ## -## atomic_statement -> lhs TIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN non_lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9768,13 +13964,9 @@ Ill-formed phrase. Found L-value "*=" expression. There are many ways in which t program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN TRUNCATE TILDE ## -## Ends in an error in state: 416. -## -## atomic_statement -> lhs TIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 383. -## Ends in an error in state: 384. +## Ends in an error in state: 393. ## -## atomic_statement -> lhs TIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN lhs . SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES SEMICOLON RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9827,24 +14019,17 @@ program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed phrase. Found L-value "*=" expression. There are many ways in which this can be completed to a valid phrase. program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE TIMESASSIGN WHILE ## -## Ends in an error in state: 413. -## -## atomic_statement -> lhs TIMESASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs TIMESASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 380. -## Ends in an error in state: 381. +## Ends in an error in state: 390. ## -## atomic_statement -> lhs TIMESASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs TIMESASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN . lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs TIMESASSIGN . non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## lhs TIMESASSIGN @@ -9854,13 +14039,9 @@ Ill-formed expression. Found L-value "*=". Expect an expression followed by ";" program: TRANSFORMEDDATABLOCK LBRACE TRUNCATE WHILE ## -## Ends in an error in state: 460. -## -## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 427. -## Ends in an error in state: 428. +## Ends in an error in state: 437. ## -## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## common_expression -> identifier . LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier . LPAREN lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] ## common_expression -> identifier . LPAREN non_lhs BAR loption(separated_nonempty_list(COMMA,expression)) RPAREN [ TRANSPOSE TIMES TILDE RBRACE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA AND ] @@ -9874,15 +14055,10 @@ Ill-formed statement or expression. A statement or expression could be expected program: TRANSFORMEDDATABLOCK LBRACE VECTOR LBRACK INTNUMERAL RBRACK HAT ## -## Ends in an error in state: 728. -## -## decl(top_var_type,expression) -> top_var_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> top_var_type . id_and_optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 687. -## Ends in an error in state: 694. +## Ends in an error in state: 713. ## -## decl(top_var_type,expression) -> top_var_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## decl(top_var_type,expression) -> top_var_type . separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . decl_identifier dims optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type . separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type @@ -9892,9 +14068,7 @@ Ill-formed top-level variable declaration. Expect an identifier next. program: TRANSFORMEDDATABLOCK LBRACE VOID ## -## Ends in an error in state: 726. -## Ends in an error in state: 685. -## Ends in an error in state: 692. +## Ends in an error in state: 711. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -9906,13 +14080,9 @@ Expect a statement or top-level variable declaration. program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN REALNUMERAL RPAREN VOID ## -## Ends in an error in state: 312. -## -## nested_statement -> WHILE LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 274. -## Ends in an error in state: 275. +## Ends in an error in state: 284. ## -## nested_statement -> WHILE LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN non_lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN non_lhs RPAREN @@ -9922,13 +14092,9 @@ Ill-formed statement. We expect a statement after ")", for the body of the while program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN REALNUMERAL WHILE ## -## Ends in an error in state: 311. -## -## nested_statement -> WHILE LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 273. -## Ends in an error in state: 274. +## Ends in an error in state: 283. ## -## nested_statement -> WHILE LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN non_lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> non_lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> non_lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -9982,13 +14148,9 @@ Ill-formed expression. We expect an expression after "(" for the test of the whi program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE RPAREN VOID ## -## Ends in an error in state: 535. -## -## nested_statement -> WHILE LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 491. -## Ends in an error in state: 495. +## Ends in an error in state: 517. ## -## nested_statement -> WHILE LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN lhs RPAREN . statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN lhs RPAREN @@ -9998,15 +14160,10 @@ Ill-formed statement. We expect a statement after ")", for the body of the while program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE TILDE ## -## Ends in an error in state: 534. -## -## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> WHILE LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 490. -## Ends in an error in state: 494. +## Ends in an error in state: 516. ## ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] -## nested_statement -> WHILE LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN lhs . RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES RPAREN RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -10058,24 +14215,17 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN TRUNCATE 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 156, spurious reduction of production lhs -> identifier -## In state 118, spurious reduction of production lhs -> identifier -## In state 119, spurious reduction of production lhs -> identifier +## In state 128, spurious reduction of production lhs -> identifier ## Ill-formed expression. We expect an expression after "(" for the test of the while-loop. program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN WHILE ## -## Ends in an error in state: 109. -## -## nested_statement -> WHILE LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> WHILE LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 71. -## Ends in an error in state: 72. +## Ends in an error in state: 81. ## -## nested_statement -> WHILE LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> WHILE LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN . lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE LPAREN . non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE LPAREN @@ -10085,15 +14235,10 @@ Ill-formed expression. We expect an expression after "(" for the test of the whi program: TRANSFORMEDDATABLOCK LBRACE WHILE WHILE ## -## Ends in an error in state: 108. -## -## nested_statement -> WHILE . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> WHILE . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 70. -## Ends in an error in state: 71. +## Ends in an error in state: 80. ## -## nested_statement -> WHILE . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> WHILE . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE . LPAREN lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> WHILE . LPAREN non_lhs RPAREN statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## WHILE @@ -10103,9 +14248,7 @@ After "while", we expect "(" expression ")" statement. program: TRANSFORMEDDATABLOCK WHILE ## -## Ends in an error in state: 725. -## Ends in an error in state: 684. -## Ends in an error in state: 691. +## Ends in an error in state: 710. ## ## transformed_data_block -> TRANSFORMEDDATABLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ TRANSFORMEDPARAMETERSBLOCK PARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -10117,9 +14260,7 @@ We expect "{" after "transformed data". program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN ## -## Ends in an error in state: 759. -## Ends in an error in state: 717. -## Ends in an error in state: 724. +## Ends in an error in state: 744. ## ## 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 [ # ] ## @@ -10131,9 +14272,7 @@ program: TRANSFORMEDPARAMETERSBLOCK LBRACE RBRACE ELTTIMESASSIGN program: TRANSFORMEDPARAMETERSBLOCK LBRACE VOID ## -## Ends in an error in state: 755. -## Ends in an error in state: 713. -## Ends in an error in state: 720. +## Ends in an error in state: 740. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK LBRACE . list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -10145,9 +14284,7 @@ Expect a statement or top-level variable declaration. program: TRANSFORMEDPARAMETERSBLOCK WHILE ## -## Ends in an error in state: 754. -## Ends in an error in state: 712. -## Ends in an error in state: 719. +## Ends in an error in state: 739. ## ## transformed_parameters_block -> TRANSFORMEDPARAMETERSBLOCK . LBRACE list(top_vardecl_or_statement) RBRACE [ MODELBLOCK GENERATEDQUANTITIESBLOCK EOF ] ## @@ -10159,13 +14296,9 @@ We expect "{" after "transformed parameters". program: MODELBLOCK LBRACE REAL TRUNCATE LBRACK TRUNCATE RBRACK ARROWASSIGN ## -## Ends in an error in state: 518. -## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR CONTINUE BREAK BANG ARRAY ] -## Ends in an error in state: 473. -## Ends in an error in state: 478. +## Ends in an error in state: 499. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type decl_identifier dims @@ -10175,9 +14308,7 @@ Expected ";" or assignment. program: DATABLOCK LBRACE REAL TRUNCATE LBRACK IDENTIFIER RBRACK WHILE ## -## Ends in an error in state: 710. -## Ends in an error in state: 669. -## Ends in an error in state: 677. +## Ends in an error in state: 696. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier dims . optional_assignment(no_assign) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -10189,13 +14320,9 @@ Expected ";". program: TRANSFORMEDDATABLOCK LBRACE REAL TRUNCATE LBRACK IDENTIFIER RBRACK ARROWASSIGN ## -## Ends in an error in state: 732. -## -## decl(top_var_type,expression) -> top_var_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 691. -## Ends in an error in state: 698. +## Ends in an error in state: 717. ## -## decl(top_var_type,expression) -> top_var_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## decl(top_var_type,expression) -> top_var_type decl_identifier dims . optional_assignment(expression) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## top_var_type decl_identifier dims @@ -10205,9 +14332,7 @@ Expected ";" or assignment. program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 566. -## Ends in an error in state: 525. -## Ends in an error in state: 529. +## Ends in an error in state: 548. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -10233,9 +14358,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN REALNUMERAL WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 585. -## Ends in an error in state: 544. -## Ends in an error in state: 548. +## Ends in an error in state: 567. ## ## range -> UPPER ASSIGN constr_expression COMMA . LOWER ASSIGN constr_expression [ RABRACK ] ## @@ -10247,9 +14370,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER WHILE ## -## Ends in an error in state: 586. -## Ends in an error in state: 545. -## Ends in an error in state: 549. +## Ends in an error in state: 568. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER . ASSIGN constr_expression [ RABRACK ] ## @@ -10261,9 +14382,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER WHILE program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIGN WHILE ## -## Ends in an error in state: 587. -## Ends in an error in state: 546. -## Ends in an error in state: 550. +## Ends in an error in state: 569. ## ## range -> UPPER ASSIGN constr_expression COMMA LOWER ASSIGN . constr_expression [ RABRACK ] ## @@ -10275,9 +14394,7 @@ Numerical expression expected after '=' in a lower expression. program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 588. -## Ends in an error in state: 547. -## Ends in an error in state: 551. +## Ends in an error in state: 570. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -10301,18 +14418,14 @@ program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN TRUNCATE COMMA LOWER ASSIG ## 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 553, spurious reduction of production constr_expression -> identifier -## In state 512, spurious reduction of production constr_expression -> identifier -## In state 516, spurious reduction of production constr_expression -> identifier +## In state 535, spurious reduction of production constr_expression -> identifier ## Expected '>' after lower expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN REALNUMERAL WHILE ## -## Ends in an error in state: 598. -## Ends in an error in state: 557. -## Ends in an error in state: 561. +## Ends in an error in state: 580. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -10338,9 +14451,7 @@ Expected '>' after multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA WHILE ## -## Ends in an error in state: 599. -## Ends in an error in state: 558. -## Ends in an error in state: 562. +## Ends in an error in state: 581. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA . OFFSET ASSIGN constr_expression [ RABRACK ] ## @@ -10352,9 +14463,7 @@ Expected '>' or offset expression after multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET WHILE ## -## Ends in an error in state: 600. -## Ends in an error in state: 559. -## Ends in an error in state: 563. +## Ends in an error in state: 582. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET . ASSIGN constr_expression [ RABRACK ] ## @@ -10366,9 +14475,7 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ASSIGN WHILE ## -## Ends in an error in state: 601. -## Ends in an error in state: 560. -## Ends in an error in state: 564. +## Ends in an error in state: 583. ## ## offset_mult -> MULTIPLIER ASSIGN constr_expression COMMA OFFSET ASSIGN . constr_expression [ RABRACK ] ## @@ -10380,9 +14487,7 @@ Numerical expression expected after '=' in a multiplier expression. program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ASSIGN TRUNCATE COMMA ## -## Ends in an error in state: 602. -## Ends in an error in state: 561. -## Ends in an error in state: 565. +## Ends in an error in state: 584. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE ] @@ -10406,24 +14511,17 @@ program: DATABLOCK LBRACE VECTOR LABRACK MULTIPLIER ASSIGN TRUNCATE COMMA OFFSET ## 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 553, spurious reduction of production constr_expression -> identifier -## In state 512, spurious reduction of production constr_expression -> identifier -## In state 516, spurious reduction of production constr_expression -> identifier +## In state 535, spurious reduction of production constr_expression -> identifier ## Expected '>' after multiplier expression. program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN UPPER RPAREN SEMICOLON UNREACHABLE ## -## Ends in an error in state: 488. -## -## nested_statement -> IF LPAREN lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 455. -## Ends in an error in state: 456. +## Ends in an error in state: 465. ## -## nested_statement -> IF LPAREN lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## nested_statement -> IF LPAREN lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN statement . ELSE statement [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> IF LPAREN lhs RPAREN statement . [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## IF LPAREN lhs RPAREN statement @@ -10432,11 +14530,30 @@ program: TRANSFORMEDDATABLOCK LBRACE IF LPAREN UPPER RPAREN SEMICOLON UNREACHABL 'if (cond)' should be followed by '{' and statements to execute if true. program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER IDIVIDE REALNUMERAL WHILE +## +## Ends in an error in state: 554. +## +## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . TIMES constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . DIVIDE constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . IDIVIDE constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression IDIVIDE constr_expression . [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . MODULO constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . LDIVIDE constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . ELTTIMES constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . ELTDIVIDE constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . HAT constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . ELTPOW constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . TRANSPOSE [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## constr_expression -> constr_expression . LBRACK indexes RBRACK [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] +## +## The known suffix of the stack is as follows: +## constr_expression IDIVIDE constr_expression +## program: DATABLOCK LBRACE VECTOR LABRACK UPPER ASSIGN UPPER ELTPOW REALNUMERAL WHILE ## -## Ends in an error in state: 562. -## Ends in an error in state: 521. -## Ends in an error in state: 525. +## Ends in an error in state: 544. ## ## constr_expression -> constr_expression . PLUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] ## constr_expression -> constr_expression . MINUS constr_expression [ TRANSPOSE TIMES RABRACK PLUS MODULO MINUS LDIVIDE LBRACK IDIVIDE HAT ELTTIMES ELTPOW ELTDIVIDE DIVIDE COMMA ] @@ -10462,9 +14579,7 @@ Missing an ">"? Constraints on a vector declaration should be of the form program: TRANSFORMEDDATABLOCK LBRACE UPPER LBRACK WHILE ## -## Ends in an error in state: 139. -## Ends in an error in state: 101. -## Ends in an error in state: 102. +## Ends in an error in state: 111. ## ## lhs -> lhs LBRACK . indexes RBRACK [ VECTOR UNITVECTOR TRANSPOSE TIMESASSIGN TIMES TILDE SIMPLEX SEMICOLON RPAREN ROWVECTOR REAL RBRACK RBRACE RABRACK QMARK POSITIVEORDERED PLUSASSIGN PLUS ORDERED OR NEQUALS MODULO MINUSASSIGN MINUS MATRIX LEQ LDIVIDE LBRACK LABRACK INT IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE COVMATRIX CORRMATRIX COMMA COLON CHOLESKYFACTORCOV CHOLESKYFACTORCORR BAR ASSIGN ARROWASSIGN AND ] ## @@ -10478,11 +14593,17 @@ not var[for (n in 1:N) ...] program: FUNCTIONBLOCK LBRACE ARRAY WHILE +## +## Ends in an error in state: 9. +## +## unsized_type -> ARRAY . always(unsized_dims) basic_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## +## The known suffix of the stack is as follows: +## ARRAY +## program: DATABLOCK LBRACE ARRAY WHILE ## -## Ends in an error in state: 715. -## Ends in an error in state: 674. -## Ends in an error in state: 682. +## Ends in an error in state: 701. ## ## decl(top_var_type,no_assign) -> lhs . top_var_type separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR UNITVECTOR SIMPLEX ROWVECTOR REAL POSITIVEORDERED ORDERED MATRIX LBRACK INT COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ] @@ -10498,28 +14619,127 @@ Invalid type in declaration. Valid types: optionally preceded by a single array[...] program: TRANSFORMEDDATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK REAL UPPER WHILE +## +## Ends in an error in state: 489. +## +## id_and_optional_assignment(expression) -> decl_identifier . optional_assignment(expression) [ SEMICOLON COMMA ] +## +## The known suffix of the stack is as follows: +## decl_identifier +## program: DATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK REAL UPPER WHILE +## +## Ends in an error in state: 689. +## +## id_and_optional_assignment(no_assign) -> decl_identifier . optional_assignment(no_assign) [ SEMICOLON COMMA ] +## +## The known suffix of the stack is as follows: +## decl_identifier +## program: MODELBLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK WHILE +## +## Ends in an error in state: 503. +## +## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> lhs . sized_basic_type separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## lhs -> lhs . LBRACK indexes RBRACK [ VECTOR TRANSPOSE TIMESASSIGN TIMES TILDE ROWVECTOR REAL RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS MATRIX LEQ LDIVIDE LBRACK LABRACK INT IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE ASSIGN ARROWASSIGN AND ] +## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . QMARK non_lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . QMARK non_lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . PLUS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . PLUS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . MINUS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . MINUS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . TIMES lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . TIMES non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . DIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . DIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . IDIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . IDIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . MODULO lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . MODULO non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . LDIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . LDIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . ELTTIMES lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . ELTTIMES non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . ELTDIVIDE lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . ELTDIVIDE non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . HAT lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . HAT non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . ELTPOW lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . ELTPOW non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . OR lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . OR non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . AND lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . AND non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . EQUALS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . EQUALS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . NEQUALS lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . NEQUALS non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . LABRACK lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . LABRACK non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . LEQ lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . LEQ non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . RABRACK lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . RABRACK non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . GEQ lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . GEQ non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## non_lhs -> lhs . TRANSPOSE [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] +## +## The known suffix of the stack is as follows: +## lhs +## program: FUNCTIONBLOCK LBRACE ARRAY LBRACK RBRACK WHILE ## ## Ends in an error in state: 16. ## -## unsized_type -> ARRAY always(unsized_dims) . basic_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] -## unsized_type -> ARRAY always(unsized_dims) . basic_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## unsized_type -> ARRAY always(unsized_dims) . basic_type [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LPAREN LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## ARRAY always(unsized_dims) ## -Expected non-array type after array in return type. +Expected non-array type after array in return type. (Local function definition requires 'function' keyword.) program: DATABLOCK LBRACE REAL UPPER ASSIGN WHILE +## +## Ends in an error in state: 690. +## +## option(pair(ASSIGN,no_assign)) -> ASSIGN . no_assign [ SEMICOLON COMMA ] +## +## The known suffix of the stack is as follows: +## ASSIGN +## program: DATABLOCK LBRACE REAL UPPER ASSIGN UNREACHABLE WHILE +## +## Ends in an error in state: 686. +## +## separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) -> id_and_optional_assignment(no_assign) . [ SEMICOLON ] +## separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) -> id_and_optional_assignment(no_assign) . COMMA separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) [ SEMICOLON ] +## +## The known suffix of the stack is as follows: +## id_and_optional_assignment(no_assign) +## program: DATABLOCK LBRACE REAL UPPER LBRACK IDENTIFIER RBRACK ASSIGN UNREACHABLE WHILE ## -## Ends in an error in state: 711. -## Ends in an error in state: 670. -## Ends in an error in state: 678. +## Ends in an error in state: 697. ## ## decl(top_var_type,no_assign) -> top_var_type decl_identifier dims optional_assignment(no_assign) . SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] ## @@ -10531,49 +14751,53 @@ Cannot assign to variables in the `data` or `parameters` blocks; expected ';' after variable declaration. program: MODELBLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK REAL UNREACHABLE +## +## Ends in an error in state: 504. +## +## decl(sized_basic_type,expression) -> lhs sized_basic_type . separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## lhs sized_basic_type +## program: DATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK VECTOR LBRACK INTNUMERAL RBRACK AND +## +## Ends in an error in state: 702. +## +## decl(top_var_type,no_assign) -> lhs top_var_type . separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) SEMICOLON [ VECTOR UPPER UNITVECTOR TRUNCATE SIMPLEX ROWVECTOR REAL RBRACE POSITIVEORDERED ORDERED OFFSET MULTIPLIER MATRIX LOWER INT IDENTIFIER COVMATRIX CORRMATRIX CHOLESKYFACTORCOV CHOLESKYFACTORCORR ARRAY ] +## +## The known suffix of the stack is as follows: +## lhs top_var_type +## program: TRANSFORMEDDATABLOCK LBRACE ARRAY LBRACK IDENTIFIER RBRACK VECTOR LBRACK INTNUMERAL RBRACK AND -program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN UPPER RPAREN UPPER VECTOR ## -## Ends in an error in state: 412. +## Ends in an error in state: 724. ## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## Ends in an error in state: 379. -## Ends in an error in state: 380. +## decl(top_var_type,expression) -> lhs top_var_type . separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## lhs top_var_type +## +program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN UPPER RPAREN UPPER VECTOR +## +## Ends in an error in state: 389. ## -## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] -## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ARROWASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . PLUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . MINUSASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . DIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTTIMESASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . ELTDIVIDEASSIGN non_lhs SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## atomic_statement -> lhs . TILDE identifier LPAREN loption(separated_nonempty_list(COMMA,expression)) RPAREN option(truncation) SEMICOLON [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## lhs -> lhs . LBRACK indexes RBRACK [ TRANSPOSE TIMESASSIGN TIMES TILDE RABRACK QMARK PLUSASSIGN PLUS OR NEQUALS MODULO MINUSASSIGN MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMESASSIGN ELTTIMES ELTPOW ELTDIVIDEASSIGN ELTDIVIDE DIVIDEASSIGN DIVIDE ASSIGN ARROWASSIGN AND ] ## non_lhs -> lhs . QMARK lhs COLON lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] ## non_lhs -> lhs . QMARK lhs COLON non_lhs [ TRANSPOSE TIMES TILDE RABRACK QMARK PLUS OR NEQUALS MODULO MINUS LEQ LDIVIDE LBRACK LABRACK IDIVIDE HAT GEQ EQUALS ELTTIMES ELTPOW ELTDIVIDE DIVIDE AND ] @@ -10626,17 +14850,23 @@ program: TRANSFORMEDDATABLOCK LBRACE WHILE LPAREN UPPER RPAREN UPPER VECTOR ## 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 460, spurious reduction of production lhs -> identifier -## In state 427, spurious reduction of production lhs -> identifier -## In state 428, spurious reduction of production lhs -> identifier +## In state 437, spurious reduction of production lhs -> identifier ## Expected identifier after type in declaration. program: DATABLOCK LBRACE REAL UPPER COMMA UNREACHABLE +## +## Ends in an error in state: 687. +## +## separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) -> id_and_optional_assignment(no_assign) COMMA . separated_nonempty_list(COMMA,id_and_optional_assignment(no_assign)) [ SEMICOLON ] +## +## The known suffix of the stack is as follows: +## id_and_optional_assignment(no_assign) COMMA +## program: MODELBLOCK LBRACE REAL UPPER COMMA UNREACHABLE ## -## Ends in an error in state: 466. +## Ends in an error in state: 487. ## ## separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) -> id_and_optional_assignment(expression) COMMA . separated_nonempty_list(COMMA,id_and_optional_assignment(expression)) [ SEMICOLON ] ## @@ -10647,11 +14877,27 @@ program: MODELBLOCK LBRACE REAL UPPER COMMA UNREACHABLE Expected identifier after comma in multiple declaration. program: TRANSFORMEDDATABLOCK LBRACE REAL UPPER LBRACK ARRAY RBRACK ASSIGN ARRAY COMMA +## +## Ends in an error in state: 718. +## +## decl(top_var_type,expression) -> top_var_type decl_identifier dims optional_assignment(expression) . SEMICOLON [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## +## The known suffix of the stack is as follows: +## top_var_type decl_identifier dims optional_assignment(expression) +## +## WARNING: This example involves spurious reductions. +## 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 128, spurious reduction of production lhs -> identifier +## In state 492, spurious reduction of production option(pair(ASSIGN,expression)) -> ASSIGN lhs +## In state 494, spurious reduction of production optional_assignment(expression) -> option(pair(ASSIGN,expression)) +## program: MODELBLOCK LBRACE REAL UPPER LBRACK UPPER RBRACK ASSIGN ARRAY COMMA ## -## Ends in an error in state: 479. +## Ends in an error in state: 500. ## -## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims optional_assignment(expression) . SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR CONTINUE BREAK BANG ARRAY ] +## decl(sized_basic_type,expression) -> sized_basic_type decl_identifier dims optional_assignment(expression) . SEMICOLON [ WHILE VECTOR UPPER TRUNCATE TARGET SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT PLUS OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR CONTINUE BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## sized_basic_type decl_identifier dims optional_assignment(expression) @@ -10660,79 +14906,79 @@ program: MODELBLOCK LBRACE REAL UPPER LBRACK UPPER RBRACK ASSIGN ARRAY COMMA ## 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 119, spurious reduction of production lhs -> identifier -## In state 471, spurious reduction of production option(pair(ASSIGN,expression)) -> ASSIGN lhs -## In state 473, spurious reduction of production optional_assignment(expression) -> option(pair(ASSIGN,expression)) +## In state 128, spurious reduction of production lhs -> identifier +## In state 492, spurious reduction of production option(pair(ASSIGN,expression)) -> ASSIGN lhs +## In state 494, spurious reduction of production optional_assignment(expression) -> option(pair(ASSIGN,expression)) ## Multiple declarations are not allowed when array dimensions are given in TYPE IDENTIFIER[DIMENSIONS] form. When all declarations share array dimensions, use 'array[DIMENSIONS] TYPE IDENTIFIER' form, otherwise use separate declarations. -program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK WHILE +program: TRANSFORMEDDATABLOCK LBRACE FUNCTION WHILE ## -## Ends in an error in state: 491. +## Ends in an error in state: 468. ## -## closure_def -> FUNCTIONBLOCK . return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## closure_def -> FUNCTION . return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: -## FUNCTIONBLOCK +## FUNCTION ## Expected function definition. -program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UNREACHABLE +program: TRANSFORMEDDATABLOCK LBRACE FUNCTION VOID UNREACHABLE ## -## Ends in an error in state: 492. +## Ends in an error in state: 469. ## -## closure_def -> FUNCTIONBLOCK return_type . decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## closure_def -> FUNCTION return_type . decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: -## FUNCTIONBLOCK return_type +## FUNCTION return_type ## Expected function definition. -program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER WHILE +program: TRANSFORMEDDATABLOCK LBRACE FUNCTION VOID UPPER WHILE ## -## Ends in an error in state: 493. +## Ends in an error in state: 470. ## -## closure_def -> FUNCTIONBLOCK return_type decl_identifier . LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## closure_def -> FUNCTION return_type decl_identifier . LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: -## FUNCTIONBLOCK return_type decl_identifier +## FUNCTION return_type decl_identifier ## Expected argument list. -program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER LPAREN WHILE +program: TRANSFORMEDDATABLOCK LBRACE FUNCTION VOID UPPER LPAREN WHILE ## -## Ends in an error in state: 494. +## Ends in an error in state: 471. ## -## closure_def -> FUNCTIONBLOCK return_type decl_identifier LPAREN . loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## closure_def -> FUNCTION return_type decl_identifier LPAREN . loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: -## FUNCTIONBLOCK return_type decl_identifier LPAREN +## FUNCTION return_type decl_identifier LPAREN ## Expected argument list. -program: TRANSFORMEDDATABLOCK LBRACE FUNCTIONBLOCK VOID UPPER LPAREN RPAREN VOID +program: TRANSFORMEDDATABLOCK LBRACE FUNCTION VOID UPPER LPAREN RPAREN VOID ## -## Ends in an error in state: 496. +## Ends in an error in state: 473. ## -## closure_def -> FUNCTIONBLOCK return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTIONBLOCK FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## closure_def -> FUNCTION return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN . statement [ WHILE VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: -## FUNCTIONBLOCK return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN +## FUNCTION return_type decl_identifier LPAREN loption(separated_nonempty_list(COMMA,arg_decl)) RPAREN ## Expected function body. program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID WHILE ## -## Ends in an error in state: 94. +## Ends in an error in state: 66. ## -## function_type -> return_type . LPAREN loption(separated_nonempty_list(COMMA,arg_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## function_type -> return_type . LPAREN loption(separated_nonempty_list(COMMA,arg_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## return_type @@ -10742,9 +14988,9 @@ program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID WHILE program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID LPAREN WHILE ## -## Ends in an error in state: 95. +## Ends in an error in state: 67. ## -## function_type -> return_type LPAREN . loption(separated_nonempty_list(COMMA,arg_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] +## function_type -> return_type LPAREN . loption(separated_nonempty_list(COMMA,arg_type)) RPAREN [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX RPAREN ROWVECTOR RETURN REJECT REAL PROFILE PRINT POSITIVEORDERED PARAMETERSBLOCK ORDERED OFFSET MULTIPLIER MODELBLOCK MATRIX LOWER INT IN IF IDENTIFIER GETLP FUNCTIONBLOCK FUNCTION FOR ELSE DATABLOCK COVMATRIX CORRMATRIX CONTINUE COMMA CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK ARRAY ] ## ## The known suffix of the stack is as follows: ## return_type LPAREN @@ -10754,7 +15000,7 @@ Expected type. program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID LPAREN VECTOR WHILE ## -## Ends in an error in state: 99. +## Ends in an error in state: 71. ## ## separated_nonempty_list(COMMA,arg_type) -> arg_type . [ RPAREN ] ## separated_nonempty_list(COMMA,arg_type) -> arg_type . COMMA separated_nonempty_list(COMMA,arg_type) [ RPAREN ] @@ -10766,16 +15012,16 @@ program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID LPAREN VECTOR 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 103, spurious reduction of production option(unsized_dims) -> -## In state 105, spurious reduction of production unsized_type -> basic_type option(unsized_dims) -## In state 93, spurious reduction of production arg_type -> option(DATABLOCK) unsized_type +## In state 75, spurious reduction of production option(unsized_dims) -> +## In state 77, spurious reduction of production unsized_type -> basic_type option(unsized_dims) +## In state 65, spurious reduction of production arg_type -> option(DATABLOCK) unsized_type ## TODO: PARSER MESSAGE NEEDED HERE. (error state 99) program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VOID LPAREN VECTOR COMMA WHILE ## -## Ends in an error in state: 100. +## Ends in an error in state: 72. ## ## separated_nonempty_list(COMMA,arg_type) -> arg_type COMMA . separated_nonempty_list(COMMA,arg_type) [ RPAREN ] ## @@ -10787,7 +15033,7 @@ Expected argument type. program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VECTOR RPAREN ## -## Ends in an error in state: 498. +## Ends in an error in state: 475. ## ## arg_decl -> arg_type . decl_identifier [ RPAREN COMMA ] ## @@ -10798,18 +15044,18 @@ program: FUNCTIONBLOCK LBRACE VOID UPPER LPAREN VECTOR 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 103, spurious reduction of production option(unsized_dims) -> -## In state 105, spurious reduction of production unsized_type -> basic_type option(unsized_dims) -## In state 93, spurious reduction of production arg_type -> option(DATABLOCK) unsized_type +## In state 75, spurious reduction of production option(unsized_dims) -> +## In state 77, spurious reduction of production unsized_type -> basic_type option(unsized_dims) +## In state 65, spurious reduction of production arg_type -> option(DATABLOCK) unsized_type ## Expected identitifer. program: TRANSFORMEDDATABLOCK LBRACE PROFILE WHILE ## -## Ends in an error in state: 300. +## Ends in an error in state: 309. ## -## nested_statement -> PROFILE . LPAREN string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE . LPAREN string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE @@ -10819,9 +15065,9 @@ Expected profile name as string in parenthesis program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN WHILE ## -## Ends in an error in state: 301. +## Ends in an error in state: 310. ## -## nested_statement -> PROFILE LPAREN . string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN . string_literal RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN @@ -10832,9 +15078,9 @@ Expected profile name as string in parenthesis program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL WHILE ## -## Ends in an error in state: 302. +## Ends in an error in state: 311. ## -## nested_statement -> PROFILE LPAREN string_literal . RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal . RPAREN LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal @@ -10844,9 +15090,9 @@ Expected ")" after profile name. program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN WHILE ## -## Ends in an error in state: 303. +## Ends in an error in state: 312. ## -## nested_statement -> PROFILE LPAREN string_literal RPAREN . LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal RPAREN . LBRACE list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal RPAREN @@ -10856,9 +15102,9 @@ Expected "{" after profile definition. program: TRANSFORMEDDATABLOCK LBRACE PROFILE LPAREN STRINGLITERAL RPAREN LBRACE VOID ## -## Ends in an error in state: 304. +## Ends in an error in state: 313. ## -## nested_statement -> PROFILE LPAREN string_literal RPAREN LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] +## nested_statement -> PROFILE LPAREN string_literal RPAREN LBRACE . list(vardecl_or_statement) RBRACE [ WHILE VOID VECTOR UPPER UNITVECTOR TRUNCATE TARGET SIMPLEX SEMICOLON ROWVECTOR RETURN REJECT REALNUMERAL REAL RBRACE PROFILE PRINT POSITIVEORDERED PLUS ORDERED OFFSET MULTIPLIER MINUS MATRIX LPAREN LOWER LBRACK LBRACE INTNUMERAL INT INCREMENTLOGPROB IF IDENTIFIER GETLP FUNCTION FOR ELSE COVMATRIX CORRMATRIX CONTINUE CHOLESKYFACTORCOV CHOLESKYFACTORCORR BREAK BANG ARRAY ] ## ## The known suffix of the stack is as follows: ## PROFILE LPAREN string_literal RPAREN LBRACE diff --git a/src/frontend/parser.mly b/src/frontend/parser.mly index 920dadf95a..73e4feb4fd 100644 --- a/src/frontend/parser.mly +++ b/src/frontend/parser.mly @@ -38,7 +38,7 @@ let fix_argtypes = TRANSFORMEDPARAMETERSBLOCK MODELBLOCK GENERATEDQUANTITIESBLOCK %token LBRACE RBRACE LPAREN RPAREN LBRACK RBRACK LABRACK RABRACK COMMA SEMICOLON BAR -%token RETURN IF ELSE WHILE FOR IN BREAK CONTINUE PROFILE +%token RETURN IF ELSE WHILE FOR IN BREAK CONTINUE PROFILE FUNCTION %token VOID INT REAL VECTOR ROWVECTOR ARRAY MATRIX ORDERED POSITIVEORDERED SIMPLEX UNITVECTOR CHOLESKYFACTORCORR CHOLESKYFACTORCOV CORRMATRIX COVMATRIX %token LOWER UPPER OFFSET MULTIPLIER @@ -154,6 +154,7 @@ decl_identifier: (* Keywords cannot be identifiers but semantic check produces a better error message. *) | FUNCTIONBLOCK { build_id "functions" $loc } + | FUNCTION { build_id "function" $loc } | DATABLOCK { build_id "data" $loc } | PARAMETERSBLOCK { build_id "parameters" $loc } | MODELBLOCK { build_id "model" $loc } @@ -197,7 +198,7 @@ function_def: } closure_def: - | FUNCTIONBLOCK rt=return_type name=decl_identifier LPAREN args=separated_list(COMMA, arg_decl) + | FUNCTION rt=return_type name=decl_identifier LPAREN args=separated_list(COMMA, arg_decl) RPAREN b=statement { grammar_logger "function_def" ; diff --git a/test/integration/bad/closures/forwarddecl.stan b/test/integration/bad/closures/forwarddecl.stan index e19bb08dcc..f95e5af738 100644 --- a/test/integration/bad/closures/forwarddecl.stan +++ b/test/integration/bad/closures/forwarddecl.stan @@ -1,7 +1,7 @@ model { - functions + function real foo(real x, real y); - functions + function real foo(real x, real y) { return sqrt(squar(x)+square(y)); } diff --git a/test/integration/bad/closures/mutate1.stan b/test/integration/bad/closures/mutate1.stan index e135d8e20c..7b68ed8e7d 100644 --- a/test/integration/bad/closures/mutate1.stan +++ b/test/integration/bad/closures/mutate1.stan @@ -1,6 +1,6 @@ model { real x = 0.0; - functions + function real foo(real y) { x = 2.0; return x + y; diff --git a/test/integration/bad/closures/mutate2.stan b/test/integration/bad/closures/mutate2.stan index 3ad652cc8b..2de9f21382 100644 --- a/test/integration/bad/closures/mutate2.stan +++ b/test/integration/bad/closures/mutate2.stan @@ -1,6 +1,6 @@ model { real x = 0.0; - functions + function real foo(real y) { return x + y; } diff --git a/test/integration/bad/closures/no_keyword1.stan b/test/integration/bad/closures/no_keyword1.stan new file mode 100644 index 0000000000..a2a9c74c7d --- /dev/null +++ b/test/integration/bad/closures/no_keyword1.stan @@ -0,0 +1,5 @@ +model { + real foo(real x) { + return x; + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/no_keyword2.stan b/test/integration/bad/closures/no_keyword2.stan new file mode 100644 index 0000000000..8173084a95 --- /dev/null +++ b/test/integration/bad/closures/no_keyword2.stan @@ -0,0 +1,5 @@ +model { + vector foo(vector x) { + return x; + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/no_keyword3.stan b/test/integration/bad/closures/no_keyword3.stan new file mode 100644 index 0000000000..3099ebee23 --- /dev/null +++ b/test/integration/bad/closures/no_keyword3.stan @@ -0,0 +1,5 @@ +model { + vector[] foo(vector x) { + return {x}; + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/no_keyword4.stan b/test/integration/bad/closures/no_keyword4.stan new file mode 100644 index 0000000000..563c6af27b --- /dev/null +++ b/test/integration/bad/closures/no_keyword4.stan @@ -0,0 +1,5 @@ +model { + array[] real foo(real x) { + return {x}; + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/no_keyword5.stan b/test/integration/bad/closures/no_keyword5.stan new file mode 100644 index 0000000000..504e23cbc2 --- /dev/null +++ b/test/integration/bad/closures/no_keyword5.stan @@ -0,0 +1,5 @@ +model { + void foo_lp(real x) { + target += x; + } +} \ No newline at end of file diff --git a/test/integration/bad/closures/stanc.expected b/test/integration/bad/closures/stanc.expected index 3c6eb05345..ac8206a5a9 100644 --- a/test/integration/bad/closures/stanc.expected +++ b/test/integration/bad/closures/stanc.expected @@ -2,17 +2,17 @@ Semantic error in 'forwarddecl.stan', line 2, column 4 to line 3, column 29: ------------------------------------------------- 1: model { - 2: functions + 2: function ^ 3: real foo(real x, real y); - 4: functions + 4: function ------------------------------------------------- Local function is declared without specifying a definition. $ ../../../../../install/default/bin/stanc mutate1.stan Semantic error in 'mutate1.stan', line 5, column 8 to column 16: ------------------------------------------------- - 3: functions + 3: function 4: real foo(real y) { 5: x = 2.0; ^ @@ -32,3 +32,58 @@ Semantic error in 'mutate2.stan', line 7, column 4 to column 12: ------------------------------------------------- Cannot assign to function argument, captured variable or loop identifier 'x'. + $ ../../../../../install/default/bin/stanc no_keyword1.stan +Syntax error in 'no_keyword1.stan', line 2, column 12 to column 13, parsing error: + ------------------------------------------------- + 1: model { + 2: real foo(real x) { + ^ + 3: return x; + 4: } + ------------------------------------------------- + +";" or plain assignment expected after variable declaration. (Local function definition requires 'function' keyword.) + $ ../../../../../install/default/bin/stanc no_keyword2.stan +Syntax error in 'no_keyword2.stan', line 2, column 11 to column 14, parsing error: + ------------------------------------------------- + 1: model { + 2: vector foo(vector x) { + ^ + 3: return x; + 4: } + ------------------------------------------------- + +"[" expression "]" expected after "vector" in local (or model block) variable declaration. (No transformations/constraints allowed.) + $ ../../../../../install/default/bin/stanc no_keyword3.stan +Syntax error in 'no_keyword3.stan', line 2, column 11 to column 12, parsing error: + ------------------------------------------------- + 1: model { + 2: vector[] foo(vector x) { + ^ + 3: return {x}; + 4: } + ------------------------------------------------- + +"[" expression "]" expected for vector sizes. + $ ../../../../../install/default/bin/stanc no_keyword4.stan +Syntax error in 'no_keyword4.stan', line 2, column 20 to column 21, parsing error: + ------------------------------------------------- + 1: model { + 2: array[] real foo(real x) { + ^ + 3: return {x}; + 4: } + ------------------------------------------------- + +Expected non-array type after array in return type. (Local function definition requires 'function' keyword.) + $ ../../../../../install/default/bin/stanc no_keyword5.stan +Syntax error in 'no_keyword5.stan', line 2, column 4 to column 8, parsing error: + ------------------------------------------------- + 1: model { + 2: void foo_lp(real x) { + ^ + 3: target += x; + 4: } + ------------------------------------------------- + +Variable declaration, statement or "}" expected. diff --git a/test/integration/good/code-gen/closures1.stan b/test/integration/good/code-gen/closures1.stan index 412c0fc16f..98a8c8a76a 100644 --- a/test/integration/good/code-gen/closures1.stan +++ b/test/integration/good/code-gen/closures1.stan @@ -5,7 +5,7 @@ data { vector[N] v; } transformed data { - functions + function real foo(real z, row_vector r) { real rs = sum(r); real ys = sum(y); @@ -19,7 +19,7 @@ parameters { vector[N] pv; } model { - functions + function real bar(real z, row_vector r) { real rs = sum(r); real ys = sum(y); diff --git a/test/integration/good/code-gen/closures2.stan b/test/integration/good/code-gen/closures2.stan index bbdce9b215..df3b31c16b 100644 --- a/test/integration/good/code-gen/closures2.stan +++ b/test/integration/good/code-gen/closures2.stan @@ -1,9 +1,9 @@ transformed data { - functions + function real foo(real x) { return x; } - functions + function real bar(real y) { return foo(y); } @@ -12,13 +12,13 @@ parameters { real alpha; } transformed parameters { - functions + function real baz(real y) { return foo(y); } - functions + function real goo(real s) { - functions + function real gar(real b) { return b; } diff --git a/test/integration/good/code-gen/closures3.stan b/test/integration/good/code-gen/closures3.stan index e72b25b946..4d17ac0024 100644 --- a/test/integration/good/code-gen/closures3.stan +++ b/test/integration/good/code-gen/closures3.stan @@ -1,6 +1,6 @@ functions { real foo(real(real) g, real x) { - functions + function real g2(real y) { return g(y) * x; } @@ -12,7 +12,7 @@ functions { } transformed data { real x = foo(foo2, 2.0); - functions + function real bar(real y) { return x*y; } @@ -22,7 +22,7 @@ parameters { real p; } transformed parameters { - functions + function real baz(real y) { return p*y; } diff --git a/test/integration/good/code-gen/closures4.stan b/test/integration/good/code-gen/closures4.stan index 3042502a93..0d132779f7 100644 --- a/test/integration/good/code-gen/closures4.stan +++ b/test/integration/good/code-gen/closures4.stan @@ -1,6 +1,6 @@ functions { vector[] integrate(vector[] k, vector init, real[] ts) { - functions + function vector harmonic(real t, vector y) { return -k[1] .* y; } diff --git a/test/integration/good/code-gen/closures5.stan b/test/integration/good/code-gen/closures5.stan index 2927ca9ae7..de96ba7c59 100644 --- a/test/integration/good/code-gen/closures5.stan +++ b/test/integration/good/code-gen/closures5.stan @@ -6,11 +6,11 @@ parameters { real x[N]; } model { - functions + function real foo(real[] slice, int start, int end) { return normal_lpdf(slice|mu,1); } - functions + function real bar_lpdf(real[] slice, int start, int end) { return normal_lupdf(slice|mu, 1); } diff --git a/test/integration/good/code-gen/closures6.stan b/test/integration/good/code-gen/closures6.stan index b965587c6e..c17751b1c5 100644 --- a/test/integration/good/code-gen/closures6.stan +++ b/test/integration/good/code-gen/closures6.stan @@ -3,11 +3,11 @@ parameters { real k; } transformed parameters { - functions + function real foo_rng(real x) { return normal_rng(x,1); } - functions + function real foo_lpdf(real y, real x) { return normal_lupdf(y|x,1); } diff --git a/test/integration/good/code-gen/closures7.stan b/test/integration/good/code-gen/closures7.stan index d88b514fc9..70b8b7fe47 100644 --- a/test/integration/good/code-gen/closures7.stan +++ b/test/integration/good/code-gen/closures7.stan @@ -13,35 +13,35 @@ functions { } } transformed data { - functions + function void hof(real(real) s_rng,real(real) s_lpdf, real(real) s_lp) {} hof(ff_rng,ff_lpdf,ff_lp); - functions + function real foo_rng(real(real) bar_lpdf) { return bar_lpdf(1); } - functions + function real foo_lpdf(real zz, real(real) bar_lpdf) { return bar_lupdf(1); } - functions + function real foo_lp(real(real) bar_lp) { return bar_lp(1); } - functions + function real f2(real x) { return x; } - functions + function real f3_lpdf(real x) { return x; } - functions + function real f4_rng(real x) { return x; } - functions + function real f5_lp(real x) { return x; } From 2e6b75c70ffaca66d8d80fa28c7cee0f3ef5421e Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Mon, 24 May 2021 12:57:25 +0300 Subject: [PATCH 16/24] organize test files --- .../code-gen/{ => closures}/closures1.stan | 0 .../code-gen/{ => closures}/closures2.stan | 0 .../code-gen/{ => closures}/closures3.stan | 0 .../code-gen/{ => closures}/closures4.stan | 0 .../code-gen/{ => closures}/closures5.stan | 0 .../code-gen/{ => closures}/closures6.stan | 0 .../code-gen/{ => closures}/closures7.stan | 0 .../good/code-gen/closures/cpp.expected | 4944 ++ test/integration/good/code-gen/closures/dune | 10 + test/integration/good/code-gen/cpp.expected | 49423 ++++++---------- .../reduce_sum/arg_type_convert.stan} | 0 .../good/code-gen/reduce_sum/cpp.expected | 8105 +++ .../integration/good/code-gen/reduce_sum/dune | 10 + .../{ => reduce_sum}/reduce_sum_m1.stan | 0 .../{ => reduce_sum}/reduce_sum_m2.stan | 0 .../{ => reduce_sum}/reduce_sum_m3.stan | 0 16 files changed, 31454 insertions(+), 31038 deletions(-) rename test/integration/good/code-gen/{ => closures}/closures1.stan (100%) rename test/integration/good/code-gen/{ => closures}/closures2.stan (100%) rename test/integration/good/code-gen/{ => closures}/closures3.stan (100%) rename test/integration/good/code-gen/{ => closures}/closures4.stan (100%) rename test/integration/good/code-gen/{ => closures}/closures5.stan (100%) rename test/integration/good/code-gen/{ => closures}/closures6.stan (100%) rename test/integration/good/code-gen/{ => closures}/closures7.stan (100%) create mode 100644 test/integration/good/code-gen/closures/cpp.expected create mode 100644 test/integration/good/code-gen/closures/dune rename test/integration/{bad/reduce_sum/bad_non_matching_arg_types_static.stan => good/code-gen/reduce_sum/arg_type_convert.stan} (100%) create mode 100644 test/integration/good/code-gen/reduce_sum/cpp.expected create mode 100644 test/integration/good/code-gen/reduce_sum/dune rename test/integration/good/code-gen/{ => reduce_sum}/reduce_sum_m1.stan (100%) rename test/integration/good/code-gen/{ => reduce_sum}/reduce_sum_m2.stan (100%) rename test/integration/good/code-gen/{ => reduce_sum}/reduce_sum_m3.stan (100%) diff --git a/test/integration/good/code-gen/closures1.stan b/test/integration/good/code-gen/closures/closures1.stan similarity index 100% rename from test/integration/good/code-gen/closures1.stan rename to test/integration/good/code-gen/closures/closures1.stan diff --git a/test/integration/good/code-gen/closures2.stan b/test/integration/good/code-gen/closures/closures2.stan similarity index 100% rename from test/integration/good/code-gen/closures2.stan rename to test/integration/good/code-gen/closures/closures2.stan diff --git a/test/integration/good/code-gen/closures3.stan b/test/integration/good/code-gen/closures/closures3.stan similarity index 100% rename from test/integration/good/code-gen/closures3.stan rename to test/integration/good/code-gen/closures/closures3.stan diff --git a/test/integration/good/code-gen/closures4.stan b/test/integration/good/code-gen/closures/closures4.stan similarity index 100% rename from test/integration/good/code-gen/closures4.stan rename to test/integration/good/code-gen/closures/closures4.stan diff --git a/test/integration/good/code-gen/closures5.stan b/test/integration/good/code-gen/closures/closures5.stan similarity index 100% rename from test/integration/good/code-gen/closures5.stan rename to test/integration/good/code-gen/closures/closures5.stan diff --git a/test/integration/good/code-gen/closures6.stan b/test/integration/good/code-gen/closures/closures6.stan similarity index 100% rename from test/integration/good/code-gen/closures6.stan rename to test/integration/good/code-gen/closures/closures6.stan diff --git a/test/integration/good/code-gen/closures7.stan b/test/integration/good/code-gen/closures/closures7.stan similarity index 100% rename from test/integration/good/code-gen/closures7.stan rename to test/integration/good/code-gen/closures/closures7.stan diff --git a/test/integration/good/code-gen/closures/cpp.expected b/test/integration/good/code-gen/closures/cpp.expected new file mode 100644 index 0000000000..d6cf66d17d --- /dev/null +++ b/test/integration/good/code-gen/closures/cpp.expected @@ -0,0 +1,4944 @@ + $ ../../../../../../install/default/bin/stanc --print-cpp closures1.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures1_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'closures1.stan', line 8, column 4 to line 14, column 5)", + " (in 'closures1.stan', line 17, column 4 to column 11)", + " (in 'closures1.stan', line 18, column 4 to column 15)", + " (in 'closures1.stan', line 19, column 4 to column 17)", + " (in 'closures1.stan', line 22, column 4 to line 30, column 5)", + " (in 'closures1.stan', line 31, column 4 to column 29)", + " (in 'closures1.stan', line 32, column 4 to column 27)", + " (in 'closures1.stan', line 33, column 4 to column 29)", + " (in 'closures1.stan', line 34, column 4 to column 27)", + " (in 'closures1.stan', line 2, column 4 to column 10)", + " (in 'closures1.stan', line 3, column 4 to column 11)", + " (in 'closures1.stan', line 4, column 11 to column 12)", + " (in 'closures1.stan', line 4, column 4 to column 14)", + " (in 'closures1.stan', line 5, column 11 to column 12)", + " (in 'closures1.stan', line 5, column 4 to column 16)", + " (in 'closures1.stan', line 18, column 12 to column 13)", + " (in 'closures1.stan', line 19, column 11 to column 12)", + " (in 'closures1.stan', line 24, column 8 to column 25)", + " (in 'closures1.stan', line 25, column 8 to column 25)", + " (in 'closures1.stan', line 26, column 8 to column 25)", + " (in 'closures1.stan', line 27, column 8 to column 27)", + " (in 'closures1.stan', line 28, column 8 to column 27)", + " (in 'closures1.stan', line 29, column 8 to column 52)", + " (in 'closures1.stan', line 23, column 35 to line 30, column 5)", + " (in 'closures1.stan', line 10, column 8 to column 25)", + " (in 'closures1.stan', line 11, column 8 to column 25)", + " (in 'closures1.stan', line 12, column 8 to column 25)", + " (in 'closures1.stan', line 13, column 8 to column 36)", + " (in 'closures1.stan', line 9, column 35 to line 14, column 5)"}; + +template +stan::promote_args_t, +stan::value_type_t, +T6__, stan::promote_args_t>> +bar_L23C9_impl__(const T0__& p, const std::vector& pa, const T2__& pv, + const T3__& v, const double& x, + const std::vector& y, const T6__& z, const T7__& r, + std::ostream* pstream__) ; + +template +class bar_L23C9_cfunctor__ { + stan::capture_type_t p; + stan::capture_type_t, ref__> pa; + stan::capture_type_t, ref__> pv; + const Eigen::Matrix& v; + stan::capture_type_t x; + const std::vector& y; + public: + const size_t vars_count__; + bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; + bar_L23C9_cfunctor__(bar_L23C9_cfunctor__&&) = default ; + bar_L23C9_cfunctor__(const F0__& p__, const std::vector& pa__, + const Eigen::Matrix& pv__, + const Eigen::Matrix& v__, + const double& x__, const std::vector& y__) + : p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), + vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} + template + stan::promote_args_t> + operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const + { + return bar_L23C9_impl__(p, pa, pv, v, x, y, z, r, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = bar_L23C9_cfunctor__; + using CopyOf__ = bar_L23C9_cfunctor__, + stan::capture_type_t, + stan::capture_type_t>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(p), value_of(pa), value_of(pv), value_of(v), + value_of(x), value_of(y)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(p), deep_copy_vars(pa), deep_copy_vars(pv), + deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(p); + stan::math::zero_adjoints(pa); + stan::math::zero_adjoints(pv); + stan::math::zero_adjoints(v); + stan::math::zero_adjoints(x); + stan::math::zero_adjoints(y); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, p, pa, pv, v, x, y); + } + + + }; +template +auto bar_L23C9_make__(const F0__& p, const std::vector& pa, + const Eigen::Matrix& pv, + const Eigen::Matrix& v, const double& x, + const std::vector& y) { +return bar_L23C9_cfunctor__(p, pa, pv, v, x, y); +} + +template +stan::promote_args_t, T3__, +stan::value_type_t> +foo_L9C9_impl__(const T0__& v, const double& x, const std::vector& y, + const T3__& z, const T4__& r, std::ostream* pstream__) ; + +class foo_L9C9_cfunctor__ { + const Eigen::Matrix& v; + double x; + const std::vector& y; + public: + const size_t vars_count__; + foo_L9C9_cfunctor__(const foo_L9C9_cfunctor__&) = default ; + foo_L9C9_cfunctor__(foo_L9C9_cfunctor__&&) = default ; + foo_L9C9_cfunctor__(const Eigen::Matrix& v__, + const double& x__, const std::vector& y__) + : v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} + template + stan::promote_args_t> + operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const + { + return foo_L9C9_impl__(v, x, y, z, r, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_L9C9_cfunctor__; + using CopyOf__ = foo_L9C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(v), value_of(x), value_of(y)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(v); + stan::math::zero_adjoints(x); + stan::math::zero_adjoints(y); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, v, x, y); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, v, x, y); + } + + + }; +auto foo_L9C9_make__(const Eigen::Matrix& v, const double& x, + const std::vector& y) { +return foo_L9C9_cfunctor__(v, x, y); +} + +template +stan::promote_args_t, +stan::value_type_t, +T6__, stan::promote_args_t>> +bar_L23C9_impl__(const T0__& p, const std::vector& pa, + const T2__& pv_arg__, const T3__& v_arg__, const double& x, + const std::vector& y, const T6__& z, + const T7__& r_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t, + T6__, stan::promote_args_t>>; + int current_statement__ = 0; + const auto& pv = to_ref(pv_arg__); + const auto& v = to_ref(v_arg__); + const auto& r = to_ref(r_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ rs; + rs = DUMMY_VAR__; + + current_statement__ = 18; + rs = sum(r); + local_scalar_t__ ys; + ys = DUMMY_VAR__; + + current_statement__ = 19; + ys = sum(y); + local_scalar_t__ vs; + vs = DUMMY_VAR__; + + current_statement__ = 20; + vs = sum(v); + local_scalar_t__ pas; + pas = DUMMY_VAR__; + + current_statement__ = 21; + pas = sum(pa); + local_scalar_t__ pvs; + pvs = DUMMY_VAR__; + + current_statement__ = 22; + pvs = sum(pv); + current_statement__ = 23; + return (((((((z + rs) + x) + ys) + vs) + p) + pas) + pvs); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t, T3__, +stan::value_type_t> +foo_L9C9_impl__(const T0__& v_arg__, const double& x, + const std::vector& y, const T3__& z, + const T4__& r_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T3__, + stan::value_type_t>; + int current_statement__ = 0; + const auto& v = to_ref(v_arg__); + const auto& r = to_ref(r_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ rs; + rs = DUMMY_VAR__; + + current_statement__ = 25; + rs = sum(r); + local_scalar_t__ ys; + ys = DUMMY_VAR__; + + current_statement__ = 26; + ys = sum(y); + local_scalar_t__ vs; + vs = DUMMY_VAR__; + + current_statement__ = 27; + vs = sum(v); + current_statement__ = 28; + return ((((z + rs) + x) + ys) + vs); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures1_model final : public model_base_crtp { + + private: + int N; + double x; + std::vector y; + Eigen::Matrix v__; + Eigen::Map> v{nullptr, 0}; + + public: + ~closures1_model() { } + + inline std::string model_name() const final { return "closures1_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures1_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "closures1_model_namespace::closures1_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 10; + context__.validate_dims("data initialization","N","int", + std::vector{}); + N = std::numeric_limits::min(); + + current_statement__ = 10; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 11; + context__.validate_dims("data initialization","x","double", + std::vector{}); + x = std::numeric_limits::quiet_NaN(); + + current_statement__ = 11; + x = context__.vals_r("x")[(1 - 1)]; + current_statement__ = 12; + validate_non_negative_index("y", "N", N); + current_statement__ = 13; + context__.validate_dims("data initialization","y","double", + std::vector{static_cast(N)}); + y = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 13; + y = context__.vals_r("y"); + current_statement__ = 14; + validate_non_negative_index("v", "N", N); + current_statement__ = 15; + context__.validate_dims("data initialization","v","double", + std::vector{static_cast(N)}); + v__ = Eigen::Matrix(N); + new (&v) Eigen::Map>(v__.data(), N); + + { + std::vector v_flat__; + current_statement__ = 15; + v_flat__ = context__.vals_r("v"); + current_statement__ = 15; + pos__ = 1; + current_statement__ = 15; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 15; + assign(v, v_flat__[(pos__ - 1)], + "assigning variable v", index_uni(sym1__)); + current_statement__ = 15; + pos__ = (pos__ + 1); + } + } + + current_statement__ = 1; + auto foo = foo_L9C9_make__(v, x, y); + current_statement__ = 16; + validate_non_negative_index("pa", "N", N); + current_statement__ = 17; + validate_non_negative_index("pv", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1 + N + N; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures1_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto foo = foo_L9C9_make__(v, x, y); + local_scalar_t__ p; + p = DUMMY_VAR__; + + current_statement__ = 2; + p = in__.template read(); + std::vector pa; + pa = std::vector(N, DUMMY_VAR__); + + current_statement__ = 3; + pa = in__.template read>(N); + Eigen::Matrix pv; + pv = Eigen::Matrix(N); + stan::math::fill(pv, DUMMY_VAR__); + + current_statement__ = 4; + pv = in__.template read>(N); + { + + current_statement__ = 5; + auto bar = bar_L23C9_make__(p, pa, pv, v, x, y); + current_statement__ = 6; + lp_accum__.add( + foo(pstream__, 0.0, (Eigen::Matrix(1) << + 1.0).finished())); + current_statement__ = 7; + lp_accum__.add( + foo(pstream__, p, (Eigen::Matrix(1) << + 1.0).finished())); + current_statement__ = 8; + lp_accum__.add( + bar(pstream__, 0.0, (Eigen::Matrix(1) << + 1.0).finished())); + current_statement__ = 9; + lp_accum__.add( + bar(pstream__, p, (Eigen::Matrix(1) << + 1.0).finished())); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures1_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto foo = foo_L9C9_make__(v, x, y); + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = in__.template read(); + std::vector pa; + pa = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + pa = in__.template read>(N); + Eigen::Matrix pv; + pv = Eigen::Matrix(N); + stan::math::fill(pv, std::numeric_limits::quiet_NaN()); + + current_statement__ = 4; + pv = in__.template read>(N); + vars__.emplace_back(p); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pa[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pv[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + + current_statement__ = 1; + auto foo = foo_L9C9_make__(v, x, y); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = context__.vals_r("p")[(1 - 1)]; + std::vector pa; + pa = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + pa = context__.vals_r("pa"); + Eigen::Matrix pv; + pv = Eigen::Matrix(N); + stan::math::fill(pv, std::numeric_limits::quiet_NaN()); + + { + std::vector pv_flat__; + current_statement__ = 4; + pv_flat__ = context__.vals_r("pv"); + current_statement__ = 4; + pos__ = 1; + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 4; + assign(pv, pv_flat__[(pos__ - 1)], + "assigning variable pv", index_uni(sym1__)); + current_statement__ = 4; + pos__ = (pos__ + 1); + } + } + vars__.emplace_back(p); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pa[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(pv[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"p", "pa", "pv"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{static_cast(N)}, + std::vector{static_cast(N)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pa" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pv" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pa" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "pv" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"pa\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"pv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"pa\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"pv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures1_model_namespace::closures1_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures1_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp closures2.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures2_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'closures2.stan', line 2, column 4 to line 5, column 5)", + " (in 'closures2.stan', line 6, column 4 to line 9, column 5)", + " (in 'closures2.stan', line 12, column 4 to column 15)", + " (in 'closures2.stan', line 15, column 4 to line 18, column 5)", + " (in 'closures2.stan', line 19, column 4 to line 26, column 5)", + " (in 'closures2.stan', line 27, column 4 to column 23)", + " (in 'closures2.stan', line 28, column 4 to column 23)", + " (in 'closures2.stan', line 29, column 4 to column 23)", + " (in 'closures2.stan', line 8, column 8 to column 22)", + " (in 'closures2.stan', line 7, column 21 to line 9, column 5)", + " (in 'closures2.stan', line 17, column 8 to column 22)", + " (in 'closures2.stan', line 16, column 21 to line 18, column 5)", + " (in 'closures2.stan', line 4, column 8 to column 17)", + " (in 'closures2.stan', line 3, column 21 to line 5, column 5)", + " (in 'closures2.stan', line 23, column 12 to column 21)", + " (in 'closures2.stan', line 22, column 25 to line 24, column 9)", + " (in 'closures2.stan', line 21, column 8 to line 24, column 9)", + " (in 'closures2.stan', line 25, column 8 to column 22)", + " (in 'closures2.stan', line 20, column 21 to line 26, column 5)"}; + +template +stan::promote_args_t +bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; + +template +class bar_L7C9_cfunctor__ { + stan::capture_type_t foo; + public: + const size_t vars_count__; + bar_L7C9_cfunctor__(const bar_L7C9_cfunctor__&) = default ; + bar_L7C9_cfunctor__(bar_L7C9_cfunctor__&&) = default ; + bar_L7C9_cfunctor__(const F0__& foo__) + : foo(foo__), vars_count__(count_vars(foo__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y) const + { + return bar_L7C9_impl__(foo, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = bar_L7C9_cfunctor__; + using CopyOf__ = bar_L7C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(foo)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(foo)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(foo); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, foo); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, foo); + } + + + }; +template +auto bar_L7C9_make__(const F0__& foo) { +return bar_L7C9_cfunctor__(foo); +} + +template +stan::promote_args_t +baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; + +template +class baz_L16C9_cfunctor__ { + stan::capture_type_t foo; + public: + const size_t vars_count__; + baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; + baz_L16C9_cfunctor__(baz_L16C9_cfunctor__&&) = default ; + baz_L16C9_cfunctor__(const F0__& foo__) + : foo(foo__), vars_count__(count_vars(foo__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y) const + { + return baz_L16C9_impl__(foo, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = baz_L16C9_cfunctor__; + using CopyOf__ = baz_L16C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(foo)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(foo)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(foo); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, foo); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, foo); + } + + + }; +template +auto baz_L16C9_make__(const F0__& foo) { +return baz_L16C9_cfunctor__(foo); +} + +template +stan::promote_args_t +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; + +class foo_L3C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; + foo_L3C9_cfunctor__(foo_L3C9_cfunctor__&&) = default ; + foo_L3C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const + { + return foo_L3C9_impl__(x, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_L3C9_cfunctor__; + using CopyOf__ = foo_L3C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_L3C9_make__() { +return foo_L3C9_cfunctor__(); +} + +template +stan::promote_args_t +gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) ; + +class gar_L22C13_cfunctor__ { + + public: + const size_t vars_count__; + gar_L22C13_cfunctor__(const gar_L22C13_cfunctor__&) = default ; + gar_L22C13_cfunctor__(gar_L22C13_cfunctor__&&) = default ; + gar_L22C13_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& b) const + { + return gar_L22C13_impl__(b, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = gar_L22C13_cfunctor__; + using CopyOf__ = gar_L22C13_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto gar_L22C13_make__() { +return gar_L22C13_cfunctor__(); +} + +template +stan::promote_args_t +goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; + +class goo_L20C9_cfunctor__ { + + public: + const size_t vars_count__; + goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; + goo_L20C9_cfunctor__(goo_L20C9_cfunctor__&&) = default ; + goo_L20C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& s) const + { + return goo_L20C9_impl__(s, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = goo_L20C9_cfunctor__; + using CopyOf__ = goo_L20C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto goo_L20C9_make__() { +return goo_L20C9_cfunctor__(); +} + +template +stan::promote_args_t +bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 9; + return foo(pstream__, y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 11; + return foo(pstream__, y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 13; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 15; + return b; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + + current_statement__ = 17; + auto gar = gar_L22C13_make__(); + current_statement__ = 18; + return gar(pstream__, s); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures2_model final : public model_base_crtp { + + private: + + + + public: + ~closures2_model() { } + + inline std::string model_name() const final { return "closures2_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures2_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "closures2_model_namespace::closures2_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + + current_statement__ = 1; + auto foo = foo_L3C9_make__(); + + current_statement__ = 2; + auto bar = bar_L7C9_make__(foo); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures2_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto foo = foo_L3C9_make__(); + + current_statement__ = 2; + auto bar = bar_L7C9_make__(foo); + local_scalar_t__ alpha; + alpha = DUMMY_VAR__; + + current_statement__ = 3; + alpha = in__.template read(); + + current_statement__ = 4; + auto baz = baz_L16C9_make__(foo); + + current_statement__ = 5; + auto goo = goo_L20C9_make__(); + local_scalar_t__ s1; + s1 = DUMMY_VAR__; + + current_statement__ = 6; + s1 = bar(pstream__, 1.0); + local_scalar_t__ s2; + s2 = DUMMY_VAR__; + + current_statement__ = 7; + s2 = baz(pstream__, 1.0); + local_scalar_t__ s3; + s3 = DUMMY_VAR__; + + current_statement__ = 8; + s3 = goo(pstream__, 1.0); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures2_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto foo = foo_L3C9_make__(); + + current_statement__ = 2; + auto bar = bar_L7C9_make__(foo); + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + alpha = in__.template read(); + + + double s1; + s1 = std::numeric_limits::quiet_NaN(); + + double s2; + s2 = std::numeric_limits::quiet_NaN(); + + double s3; + s3 = std::numeric_limits::quiet_NaN(); + + vars__.emplace_back(alpha); + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 4; + auto baz = baz_L16C9_make__(foo); + current_statement__ = 5; + auto goo = goo_L20C9_make__(); + current_statement__ = 6; + s1 = bar(pstream__, 1.0); + current_statement__ = 7; + s2 = baz(pstream__, 1.0); + current_statement__ = 8; + s3 = goo(pstream__, 1.0); + if (emit_transformed_parameters__) { + vars__.emplace_back(s1); + vars__.emplace_back(s2); + vars__.emplace_back(s3); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + + current_statement__ = 1; + auto foo = foo_L3C9_make__(); + + current_statement__ = 2; + auto bar = bar_L7C9_make__(foo); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + alpha = context__.vals_r("alpha")[(1 - 1)]; + vars__.emplace_back(alpha); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"alpha", "s1", "s2", "s3"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{}, std::vector{}, std::vector{ + }}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "alpha"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s1"); + param_names__.emplace_back(std::string() + "s2"); + param_names__.emplace_back(std::string() + "s3"); + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "alpha"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s1"); + param_names__.emplace_back(std::string() + "s2"); + param_names__.emplace_back(std::string() + "s3"); + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"s1\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s2\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s3\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"s1\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s2\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s3\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures2_model_namespace::closures2_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures2_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp closures3.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures3_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'closures3.stan', line 15, column 4 to line 18, column 5)", + " (in 'closures3.stan', line 22, column 4 to column 11)", + " (in 'closures3.stan', line 25, column 4 to line 28, column 5)", + " (in 'closures3.stan', line 29, column 4 to column 27)", + " (in 'closures3.stan', line 14, column 4 to column 28)", + " (in 'closures3.stan', line 19, column 4 to column 27)", + " (in 'closures3.stan', line 3, column 8 to line 6, column 9)", + " (in 'closures3.stan', line 7, column 8 to column 23)", + " (in 'closures3.stan', line 2, column 35 to line 8, column 5)", + " (in 'closures3.stan', line 10, column 8 to column 17)", + " (in 'closures3.stan', line 9, column 22 to line 11, column 5)", + " (in 'closures3.stan', line 17, column 8 to column 19)", + " (in 'closures3.stan', line 16, column 21 to line 18, column 5)", + " (in 'closures3.stan', line 27, column 8 to column 19)", + " (in 'closures3.stan', line 26, column 21 to line 28, column 5)", + " (in 'closures3.stan', line 5, column 12 to column 28)", + " (in 'closures3.stan', line 4, column 24 to line 6, column 9)"}; + +template +stan::promote_args_t +foo(const T0__& g, const T1__& x, std::ostream* pstream__) ; + +struct foo_functor__ { +template +stan::promote_args_t +operator()(const T0__& g, const T1__& x, std::ostream* pstream__) const +{ +return foo(g, x, pstream__); +} +}; + +template +stan::promote_args_t +foo2(const T0__& x, std::ostream* pstream__) ; + +struct foo2_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return foo2(x, pstream__); +} +}; + +template +stan::promote_args_t +bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; + +class bar_L16C9_cfunctor__ { + double x; + public: + const size_t vars_count__; + bar_L16C9_cfunctor__(const bar_L16C9_cfunctor__&) = default ; + bar_L16C9_cfunctor__(bar_L16C9_cfunctor__&&) = default ; + bar_L16C9_cfunctor__(const double& x__) + : x(x__), vars_count__(count_vars(x__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y) const + { + return bar_L16C9_impl__(x, y, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = bar_L16C9_cfunctor__; + using CopyOf__ = bar_L16C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(x)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(x)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(x); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, x); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, x); + } + + + }; +auto bar_L16C9_make__(const double& x) { +return bar_L16C9_cfunctor__(x); +} + +template +stan::promote_args_t +baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; + +template +class baz_L26C9_cfunctor__ { + stan::capture_type_t p; + public: + const size_t vars_count__; + baz_L26C9_cfunctor__(const baz_L26C9_cfunctor__&) = default ; + baz_L26C9_cfunctor__(baz_L26C9_cfunctor__&&) = default ; + baz_L26C9_cfunctor__(const F0__& p__) + : p(p__), vars_count__(count_vars(p__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y) const + { + return baz_L26C9_impl__(p, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = baz_L26C9_cfunctor__; + using CopyOf__ = baz_L26C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(p)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(p)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(p); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, p); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, p); + } + + + }; +template +auto baz_L26C9_make__(const F0__& p) { +return baz_L26C9_cfunctor__(p); +} + +template +stan::promote_args_t +g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, + std::ostream* pstream__) ; + +template +class g2_L4C13_cfunctor__ { + stan::capture_type_t g; + stan::capture_type_t x; + public: + const size_t vars_count__; + g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; + g2_L4C13_cfunctor__(g2_L4C13_cfunctor__&&) = default ; + g2_L4C13_cfunctor__(const F0__& g__, const F1__& x__) + : g(g__), x(x__), vars_count__(count_vars(g__, x__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y) const + { + return g2_L4C13_impl__(g, x, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = g2_L4C13_cfunctor__; + using CopyOf__ = g2_L4C13_cfunctor__, + stan::capture_type_t>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(g), value_of(x)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(g), deep_copy_vars(x)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(g); + stan::math::zero_adjoints(x); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, g, x); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, g, x); + } + + + }; +template +auto g2_L4C13_make__(const F0__& g, const F1__& x) { +return g2_L4C13_cfunctor__(g, x); +} + +template +stan::promote_args_t +foo(const T0__& g, const T1__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + + current_statement__ = 7; + auto g2 = g2_L4C13_make__(g, x); + current_statement__ = 8; + return g2(pstream__, 1.0); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo2(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 10; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 12; + return (x * y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 14; + return (p * y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 16; + return (g(pstream__, y) * x); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures3_model final : public model_base_crtp { + + private: + double x; + double z; + + + public: + ~closures3_model() { } + + inline std::string model_name() const final { return "closures3_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures3_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "closures3_model_namespace::closures3_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 5; + x = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + x = foo(from_lambda(foo2_functor__()), 2.0, pstream__); + + current_statement__ = 1; + auto bar = bar_L16C9_make__(x); + current_statement__ = 6; + z = std::numeric_limits::quiet_NaN(); + + current_statement__ = 6; + z = foo(bar, 1.0, pstream__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures3_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto bar = bar_L16C9_make__(x); + local_scalar_t__ p; + p = DUMMY_VAR__; + + current_statement__ = 2; + p = in__.template read(); + + current_statement__ = 3; + auto baz = baz_L26C9_make__(p); + local_scalar_t__ w; + w = DUMMY_VAR__; + + current_statement__ = 4; + w = foo(baz, 1.0, pstream__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures3_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto bar = bar_L16C9_make__(x); + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = in__.template read(); + + double w; + w = std::numeric_limits::quiet_NaN(); + + vars__.emplace_back(p); + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 3; + auto baz = baz_L26C9_make__(p); + current_statement__ = 4; + w = foo(baz, 1.0, pstream__); + if (emit_transformed_parameters__) { + vars__.emplace_back(w); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + + current_statement__ = 1; + auto bar = bar_L16C9_make__(x); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double p; + p = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p = context__.vals_r("p")[(1 - 1)]; + vars__.emplace_back(p); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"p", "w"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "w"); + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "w"); + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures3_model_namespace::closures3_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures3_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp closures4.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures4_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'closures4.stan', line 14, column 4 to column 19)", + " (in 'closures4.stan', line 15, column 4 to column 19)", + " (in 'closures4.stan', line 18, column 4 to column 44)", + " (in 'closures4.stan', line 11, column 4 to column 15)", + " (in 'closures4.stan', line 14, column 16 to column 17)", + " (in 'closures4.stan', line 3, column 8 to line 6, column 9)", + " (in 'closures4.stan', line 7, column 8 to column 47)", + " (in 'closures4.stan', line 2, column 59 to line 8, column 5)", + " (in 'closures4.stan', line 5, column 12 to column 30)", + " (in 'closures4.stan', line 4, column 42 to line 6, column 9)"}; + +template +std::vector, +T2__>, -1, 1>> +integrate(const std::vector>& k, const T1__& init, + const std::vector& ts, std::ostream* pstream__) ; + +struct integrate_functor__ { +template +std::vector, +T2__>, -1, 1>> +operator()(const std::vector>& k, + const T1__& init, const std::vector& ts, + std::ostream* pstream__) const +{ +return integrate(k, init, ts, pstream__); +} +}; + +template +Eigen::Matrix>, -1, 1> +harmonic_L4C15_impl__(const std::vector>& k, + const T1__& t, const T2__& y, std::ostream* pstream__) ; + +template +class harmonic_L4C15_cfunctor__ { + stan::capture_type_t>, ref__> k; + public: + const size_t vars_count__; + harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; + harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; + harmonic_L4C15_cfunctor__(const std::vector>& k__) + : k(k__), vars_count__(count_vars(k__)) {} + template + Eigen::Matrix>, -1, 1> + operator()(std::ostream* pstream__, const T0__& t, const T1__& y) const + { + return harmonic_L4C15_impl__(k, t, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = harmonic_L4C15_cfunctor__; + using CopyOf__ = harmonic_L4C15_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(k)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(k)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(k); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, k); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, k); + } + + + }; +template +auto harmonic_L4C15_make__(const std::vector>& k) { +return harmonic_L4C15_cfunctor__(k); +} + +template +std::vector, +T2__>, -1, 1>> +integrate(const std::vector>& k, + const T1__& init_arg__, const std::vector& ts, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T2__>; + int current_statement__ = 0; + const auto& init = to_ref(init_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + + current_statement__ = 6; + auto harmonic = harmonic_L4C15_make__(k); + current_statement__ = 7; + return ode_rk45(harmonic, init, 0, ts, pstream__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix>, -1, 1> +harmonic_L4C15_impl__(const std::vector>& k, + const T1__& t, const T2__& y_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + int current_statement__ = 0; + const auto& y = to_ref(y_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 9; + return elt_multiply(minus(rvalue(k, "k", index_uni(1))), y); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures4_model final : public model_base_crtp { + + private: + std::vector ts; + + + public: + ~closures4_model() { } + + inline std::string model_name() const final { return "closures4_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures4_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "closures4_model_namespace::closures4_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 4; + context__.validate_dims("data initialization","ts","double", + std::vector{static_cast(5)}); + ts = std::vector(5, std::numeric_limits::quiet_NaN()); + + current_statement__ = 4; + ts = context__.vals_r("ts"); + current_statement__ = 5; + validate_non_negative_index("k", "1", 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = (1 * 2) + 2; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures4_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, DUMMY_VAR__); + + current_statement__ = 1; + k = in__.template read>>( + 1, 2); + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, DUMMY_VAR__); + + current_statement__ = 2; + init = in__.template read>(2); + std::vector> y; + y = std::vector>(5, Eigen::Matrix(2)); + stan::math::fill(y, DUMMY_VAR__); + + current_statement__ = 3; + assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures4_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + k = in__.template read>>( + 1, 2); + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + init = in__.template read>(2); + std::vector> y; + y = std::vector>(5, Eigen::Matrix(2)); + stan::math::fill(y, std::numeric_limits::quiet_NaN()); + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + vars__.emplace_back(k[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(init[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 3; + assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back(y[(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, std::numeric_limits::quiet_NaN()); + + { + std::vector k_flat__; + current_statement__ = 1; + k_flat__ = context__.vals_r("k"); + current_statement__ = 1; + pos__ = 1; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 1; + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + current_statement__ = 1; + assign(k, k_flat__[(pos__ - 1)], + "assigning variable k", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 1; + pos__ = (pos__ + 1); + } + } + } + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, std::numeric_limits::quiet_NaN()); + + { + std::vector init_flat__; + current_statement__ = 2; + init_flat__ = context__.vals_r("init"); + current_statement__ = 2; + pos__ = 1; + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 2; + assign(init, init_flat__[(pos__ - 1)], + "assigning variable init", index_uni(sym1__)); + current_statement__ = 2; + pos__ = (pos__ + 1); + } + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + vars__.emplace_back(k[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(init[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"k", "init", "y"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{ + static_cast(1) + , + static_cast(2) + }, + std::vector{static_cast(2)}, + std::vector{static_cast(5), static_cast(2)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + { + param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + { + param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures4_model_namespace::closures4_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures4_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp closures5.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures5_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'closures5.stan', line 5, column 4 to column 12)", + " (in 'closures5.stan', line 6, column 4 to column 14)", + " (in 'closures5.stan', line 9, column 4 to line 12, column 5)", + " (in 'closures5.stan', line 13, column 4 to line 16, column 5)", + " (in 'closures5.stan', line 17, column 4 to column 36)", + " (in 'closures5.stan', line 18, column 4 to column 41)", + " (in 'closures5.stan', line 19, column 4 to column 42)", + " (in 'closures5.stan', line 2, column 4 to column 10)", + " (in 'closures5.stan', line 6, column 11 to column 12)", + " (in 'closures5.stan', line 15, column 8 to column 41)", + " (in 'closures5.stan', line 14, column 52 to line 16, column 5)", + " (in 'closures5.stan', line 11, column 8 to column 39)", + " (in 'closures5.stan', line 10, column 47 to line 12, column 5)"}; +struct foo_rsfunctor__; +template +struct bar_lpdf_rsfunctor__; +template +stan::promote_args_t +bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) ; + +template +class bar_lpdf_L14C9_cfunctor__ { + stan::capture_type_t mu; + public: + const size_t vars_count__; + bar_lpdf_L14C9_cfunctor__(const bar_lpdf_L14C9_cfunctor__&) = default ; + bar_lpdf_L14C9_cfunctor__(bar_lpdf_L14C9_cfunctor__&&) = default ; + bar_lpdf_L14C9_cfunctor__(const F0__& mu__) + : mu(mu__), vars_count__(count_vars(mu__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const std::vector& slice, + const int& start, const int& end) const + { + return bar_lpdf_L14C9_impl__(mu, slice, start, end, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = bar_lpdf_L14C9_cfunctor__; + using CopyOf__ = bar_lpdf_L14C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(mu)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(mu)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(mu); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, mu); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, mu); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper, true>(*this); + } + auto copy_of__() { + return CopyOf__(mu); + } + + }; +template +auto bar_lpdf_L14C9_make__(const F0__& mu) { +return bar_lpdf_L14C9_cfunctor__(mu); +} + +template +stan::promote_args_t +foo_L10C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, std::ostream* pstream__) ; + +template +class foo_L10C9_cfunctor__ { + stan::capture_type_t mu; + public: + const size_t vars_count__; + foo_L10C9_cfunctor__(const foo_L10C9_cfunctor__&) = default ; + foo_L10C9_cfunctor__(foo_L10C9_cfunctor__&&) = default ; + foo_L10C9_cfunctor__(const F0__& mu__) + : mu(mu__), vars_count__(count_vars(mu__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const std::vector& slice, + const int& start, const int& end) const + { + return foo_L10C9_impl__(mu, slice, start, end, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = foo_L10C9_cfunctor__; + using CopyOf__ = foo_L10C9_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(value_of(mu)); + } + auto deep_copy_vars__() const { + return CopyOf__(deep_copy_vars(mu)); + } + void zero_adjoints__() { + stan::math::zero_adjoints(mu); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, mu); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, mu); + } + + + }; +template +auto foo_L10C9_make__(const F0__& mu) { +return foo_L10C9_cfunctor__(mu); +} + +template +stan::promote_args_t +bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 10; + return normal_lpdf(slice, mu, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_L10C9_impl__(const T0__& mu, const std::vector& slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 12; + return normal_lpdf(slice, mu, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures5_model final : public model_base_crtp { + + private: + int N; + + + public: + ~closures5_model() { } + + inline std::string model_name() const final { return "closures5_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures5_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "closures5_model_namespace::closures5_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 8; + context__.validate_dims("data initialization","N","int", + std::vector{}); + N = std::numeric_limits::min(); + + current_statement__ = 8; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 9; + validate_non_negative_index("x", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1 + N; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures5_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + local_scalar_t__ mu; + mu = DUMMY_VAR__; + + current_statement__ = 1; + mu = in__.template read(); + std::vector x; + x = std::vector(N, DUMMY_VAR__); + + current_statement__ = 2; + x = in__.template read>(N); + { + + current_statement__ = 3; + auto foo = foo_L10C9_make__(mu); + + current_statement__ = 4; + auto bar_lpdf = bar_lpdf_L14C9_make__(mu); + current_statement__ = 5; + lp_accum__.add( + reduce_sum(x, 1, pstream__, + foo)); + current_statement__ = 6; + lp_accum__.add( + reduce_sum(x, 1, pstream__, + bar_lpdf.template with_propto())); + current_statement__ = 7; + lp_accum__.add( + reduce_sum(x, 1, pstream__, + bar_lpdf.template with_propto())); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures5_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + double mu; + mu = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + mu = in__.template read(); + std::vector x; + x = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + x = in__.template read>(N); + vars__.emplace_back(mu); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(x[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double mu; + mu = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + mu = context__.vals_r("mu")[(1 - 1)]; + std::vector x; + x = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + x = context__.vals_r("x"); + vars__.emplace_back(mu); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(x[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"mu", "x"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{static_cast(N)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "mu"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "mu"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures5_model_namespace::closures5_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures5_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp closures6.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures6_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'closures6.stan', line 2, column 4 to column 11)", + " (in 'closures6.stan', line 3, column 4 to column 11)", + " (in 'closures6.stan', line 6, column 4 to line 9, column 5)", + " (in 'closures6.stan', line 10, column 4 to line 13, column 5)", + " (in 'closures6.stan', line 20, column 4 to column 24)", + " (in 'closures6.stan', line 16, column 4 to column 28)", + " (in 'closures6.stan', line 17, column 4 to column 29)", + " (in 'closures6.stan', line 12, column 8 to column 35)", + " (in 'closures6.stan', line 11, column 34 to line 13, column 5)", + " (in 'closures6.stan', line 8, column 8 to column 31)", + " (in 'closures6.stan', line 7, column 25 to line 9, column 5)"}; + +template +stan::promote_args_t +foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) ; + +class foo_lpdf_L11C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lpdf_L11C9_cfunctor__(const foo_lpdf_L11C9_cfunctor__&) = default ; + foo_lpdf_L11C9_cfunctor__(foo_lpdf_L11C9_cfunctor__&&) = default ; + foo_lpdf_L11C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y, const T1__& x) const + { + return foo_lpdf_L11C9_impl__(y, x, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lpdf_L11C9_cfunctor__; + using CopyOf__ = foo_lpdf_L11C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); + } + + }; +auto foo_lpdf_L11C9_make__() { +return foo_lpdf_L11C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + +class foo_rng_L7C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_rng_L7C9_cfunctor__(const foo_rng_L7C9_cfunctor__&) = default ; + foo_rng_L7C9_cfunctor__(foo_rng_L7C9_cfunctor__&&) = default ; + foo_rng_L7C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const + { + return foo_rng_L7C9_impl__(x, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_rng_L7C9_cfunctor__; + using CopyOf__ = foo_rng_L7C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_rng_L7C9_make__() { +return foo_rng_L7C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 8; + return normal_lpdf(y, x, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 10; + return normal_rng(x, 1, base_rng__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures6_model final : public model_base_crtp { + + private: + + + + public: + ~closures6_model() { } + + inline std::string model_name() const final { return "closures6_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures6_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "closures6_model_namespace::closures6_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1 + 1; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures6_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 1; + s = in__.template read(); + local_scalar_t__ k; + k = DUMMY_VAR__; + + current_statement__ = 2; + k = in__.template read(); + + current_statement__ = 3; + auto foo_rng = foo_rng_L7C9_make__(); + + current_statement__ = 4; + auto foo_lpdf = foo_lpdf_L11C9_make__(); + { + current_statement__ = 6; + lp_accum__.add(foo_lpdf.template operator()(pstream__, s, k)); + current_statement__ = 7; + lp_accum__.add( + foo_lpdf.template operator()(pstream__, s, k)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures6_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + double s; + s = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + s = in__.template read(); + double k; + k = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + k = in__.template read(); + + + vars__.emplace_back(s); + vars__.emplace_back(k); + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 3; + auto foo_rng = foo_rng_L7C9_make__(); + current_statement__ = 4; + auto foo_lpdf = foo_lpdf_L11C9_make__(); + if (logical_negation(emit_generated_quantities__)) { + return ; + } + double m; + m = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + m = foo_rng(base_rng__, pstream__, k); + vars__.emplace_back(m); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double s; + s = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + s = context__.vals_r("s")[(1 - 1)]; + double k; + k = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + k = context__.vals_r("k")[(1 - 1)]; + vars__.emplace_back(s); + vars__.emplace_back(k); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"s", "k", "m"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{}, std::vector{}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "s"); + param_names__.emplace_back(std::string() + "k"); + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "m"); + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "s"); + param_names__.emplace_back(std::string() + "k"); + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "m"); + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures6_model_namespace::closures6_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures6_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp closures7.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace closures7_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'closures7.stan', line 16, column 4 to line 17, column 68)", + " (in 'closures7.stan', line 20, column 4 to line 23, column 5)", + " (in 'closures7.stan', line 24, column 4 to line 27, column 5)", + " (in 'closures7.stan', line 28, column 4 to line 31, column 5)", + " (in 'closures7.stan', line 32, column 4 to line 35, column 5)", + " (in 'closures7.stan', line 36, column 4 to line 39, column 5)", + " (in 'closures7.stan', line 40, column 4 to line 43, column 5)", + " (in 'closures7.stan', line 44, column 4 to line 47, column 5)", + " (in 'closures7.stan', line 51, column 4 to column 27)", + " (in 'closures7.stan', line 54, column 4 to column 36)", + " (in 'closures7.stan', line 18, column 4 to column 30)", + " (in 'closures7.stan', line 48, column 4 to column 30)", + " (in 'closures7.stan', line 3, column 8 to column 38)", + " (in 'closures7.stan', line 4, column 8 to column 17)", + " (in 'closures7.stan', line 2, column 25 to line 5, column 5)", + " (in 'closures7.stan', line 7, column 8 to column 34)", + " (in 'closures7.stan', line 8, column 8 to column 17)", + " (in 'closures7.stan', line 6, column 24 to line 9, column 5)", + " (in 'closures7.stan', line 11, column 8 to column 26)", + " (in 'closures7.stan', line 12, column 8 to column 17)", + " (in 'closures7.stan', line 10, column 23 to line 13, column 5)", + " (in 'closures7.stan', line 34, column 8 to column 17)", + " (in 'closures7.stan', line 33, column 20 to line 35, column 5)", + " (in 'closures7.stan', line 38, column 8 to column 17)", + " (in 'closures7.stan', line 37, column 25 to line 39, column 5)", + " (in 'closures7.stan', line 42, column 8 to column 17)", + " (in 'closures7.stan', line 41, column 24 to line 43, column 5)", + " (in 'closures7.stan', line 46, column 8 to column 17)", + " (in 'closures7.stan', line 45, column 23 to line 47, column 5)", + " (in 'closures7.stan', line 30, column 8 to column 25)", + " (in 'closures7.stan', line 29, column 35 to line 31, column 5)", + " (in 'closures7.stan', line 26, column 8 to column 28)", + " (in 'closures7.stan', line 25, column 48 to line 27, column 5)", + " (in 'closures7.stan', line 22, column 8 to column 27)", + " (in 'closures7.stan', line 21, column 38 to line 23, column 5)", + " (in 'closures7.stan', line 17, column 66 to column 68)"}; + +template +stan::promote_args_t +ff_lpdf(const T0__& x, std::ostream* pstream__) ; + +struct ff_lpdf_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return ff_lpdf(x, pstream__); +} +}; + +template +stan::promote_args_t +ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + +struct ff_rng_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, RNG& base_rng__, std::ostream* pstream__) const +{ +return ff_rng(x, pstream__); +} +}; + +template +stan::promote_args_t +ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +struct ff_lp_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return ff_lp(x, pstream__); +} +}; + +template +stan::promote_args_t +f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) ; + +class f2_L33C9_cfunctor__ { + + public: + const size_t vars_count__; + f2_L33C9_cfunctor__(const f2_L33C9_cfunctor__&) = default ; + f2_L33C9_cfunctor__(f2_L33C9_cfunctor__&&) = default ; + f2_L33C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const + { + return f2_L33C9_impl__(x, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f2_L33C9_cfunctor__; + using CopyOf__ = f2_L33C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f2_L33C9_make__() { +return f2_L33C9_cfunctor__(); +} + +template +stan::promote_args_t +f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) ; + +class f3_lpdf_L37C9_cfunctor__ { + + public: + const size_t vars_count__; + f3_lpdf_L37C9_cfunctor__(const f3_lpdf_L37C9_cfunctor__&) = default ; + f3_lpdf_L37C9_cfunctor__(f3_lpdf_L37C9_cfunctor__&&) = default ; + f3_lpdf_L37C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const + { + return f3_lpdf_L37C9_impl__(x, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f3_lpdf_L37C9_cfunctor__; + using CopyOf__ = f3_lpdf_L37C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); + } + + }; +auto f3_lpdf_L37C9_make__() { +return f3_lpdf_L37C9_cfunctor__(); +} + +template +stan::promote_args_t +f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + +class f4_rng_L41C9_cfunctor__ { + + public: + const size_t vars_count__; + f4_rng_L41C9_cfunctor__(const f4_rng_L41C9_cfunctor__&) = default ; + f4_rng_L41C9_cfunctor__(f4_rng_L41C9_cfunctor__&&) = default ; + f4_rng_L41C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const + { + return f4_rng_L41C9_impl__(x, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f4_rng_L41C9_cfunctor__; + using CopyOf__ = f4_rng_L41C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f4_rng_L41C9_make__() { +return f4_rng_L41C9_cfunctor__(); +} + +template +stan::promote_args_t +f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +class f5_lp_L45C9_cfunctor__ { + + public: + const size_t vars_count__; + f5_lp_L45C9_cfunctor__(const f5_lp_L45C9_cfunctor__&) = default ; + f5_lp_L45C9_cfunctor__(f5_lp_L45C9_cfunctor__&&) = default ; + f5_lp_L45C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, + const T0__& x) const + { + return f5_lp_L45C9_impl__(x, lp__, lp_accum__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f5_lp_L45C9_cfunctor__; + using CopyOf__ = f5_lp_L45C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f5_lp_L45C9_make__() { +return f5_lp_L45C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +class foo_lp_L29C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lp_L29C9_cfunctor__(const foo_lp_L29C9_cfunctor__&) = default ; + foo_lp_L29C9_cfunctor__(foo_lp_L29C9_cfunctor__&&) = default ; + foo_lp_L29C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, + const T0__& bar_lp) const + { + return foo_lp_L29C9_impl__(bar_lp, lp__, lp_accum__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lp_L29C9_cfunctor__; + using CopyOf__ = foo_lp_L29C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_lp_L29C9_make__() { +return foo_lp_L29C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) ; + +class foo_lpdf_L25C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lpdf_L25C9_cfunctor__(const foo_lpdf_L25C9_cfunctor__&) = default ; + foo_lpdf_L25C9_cfunctor__(foo_lpdf_L25C9_cfunctor__&&) = default ; + foo_lpdf_L25C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& zz, const T1__& bar_lpdf) const + { + return foo_lpdf_L25C9_impl__(zz, bar_lpdf, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lpdf_L25C9_cfunctor__; + using CopyOf__ = foo_lpdf_L25C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); + } + + }; +auto foo_lpdf_L25C9_make__() { +return foo_lpdf_L25C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) ; + +class foo_rng_L21C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_rng_L21C9_cfunctor__(const foo_rng_L21C9_cfunctor__&) = default ; + foo_rng_L21C9_cfunctor__(foo_rng_L21C9_cfunctor__&&) = default ; + foo_rng_L21C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& bar_lpdf) const + { + return foo_rng_L21C9_impl__(bar_lpdf, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_rng_L21C9_cfunctor__; + using CopyOf__ = foo_rng_L21C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_rng_L21C9_make__() { +return foo_rng_L21C9_cfunctor__(); +} + +template +void +hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, + std::ostream* pstream__) ; + +class hof_L17C9_cfunctor__ { + + public: + const size_t vars_count__; + hof_L17C9_cfunctor__(const hof_L17C9_cfunctor__&) = default ; + hof_L17C9_cfunctor__(hof_L17C9_cfunctor__&&) = default ; + hof_L17C9_cfunctor__() + : vars_count__(count_vars()) {} + template + void + operator()(std::ostream* pstream__, const T0__& s_rng, const T1__& s_lpdf, + const T2__& s_lp) const + { + return hof_L17C9_impl__(s_rng, s_lpdf, s_lp, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = hof_L17C9_cfunctor__; + using CopyOf__ = hof_L17C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto hof_L17C9_make__() { +return hof_L17C9_cfunctor__(); +} + +template +stan::promote_args_t +ff_lpdf(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 13; + s = std_normal_lpdf(0); + current_statement__ = 14; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 16; + s = std_normal_rng(base_rng__); + current_statement__ = 17; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 19; + s = get_lp(lp__, lp_accum__); + current_statement__ = 20; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 22; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 24; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 26; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 28; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 30; + return bar_lp.template operator()(lp__, lp_accum__, pstream__, + 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 32; + return bar_lpdf.template operator()(pstream__, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 34; + return bar_lpdf.template operator()(pstream__, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +void +hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class closures7_model final : public model_base_crtp { + + private: + double z; + + + public: + ~closures7_model() { } + + inline std::string model_name() const final { return "closures7_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + closures7_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "closures7_model_namespace::closures7_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + + current_statement__ = 1; + auto hof = hof_L17C9_make__(); + current_statement__ = 11; + hof(pstream__, rng_from_lambda(ff_rng_functor__()), + lpdf_from_lambda(ff_lpdf_functor__()), + lp_from_lambda(ff_lp_functor__())); + + current_statement__ = 2; + auto foo_rng = foo_rng_L21C9_make__(); + + current_statement__ = 3; + auto foo_lpdf = foo_lpdf_L25C9_make__(); + + current_statement__ = 4; + auto foo_lp = foo_lp_L29C9_make__(); + + current_statement__ = 5; + auto f2 = f2_L33C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L37C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); + current_statement__ = 12; + z = std::numeric_limits::quiet_NaN(); + + current_statement__ = 12; + z = foo_rng(base_rng__, pstream__, + f3_lpdf.template with_propto()); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 0U; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures7_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto hof = hof_L17C9_make__(); + + current_statement__ = 2; + auto foo_rng = foo_rng_L21C9_make__(); + + current_statement__ = 3; + auto foo_lpdf = foo_lpdf_L25C9_make__(); + + current_statement__ = 4; + auto foo_lp = foo_lp_L29C9_make__(); + + current_statement__ = 5; + auto f2 = f2_L33C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L37C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 9; + s = foo_lp.template operator()(lp__, lp_accum__, pstream__, + f5_lp); + { + current_statement__ = 10; + lp_accum__.add( + foo_lpdf.template operator()(pstream__, 1, + f3_lpdf.template with_propto())); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "closures7_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + + current_statement__ = 1; + auto hof = hof_L17C9_make__(); + + current_statement__ = 2; + auto foo_rng = foo_rng_L21C9_make__(); + + current_statement__ = 3; + auto foo_lpdf = foo_lpdf_L25C9_make__(); + + current_statement__ = 4; + auto foo_lp = foo_lp_L29C9_make__(); + + current_statement__ = 5; + auto f2 = f2_L33C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L37C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); + double s; + s = std::numeric_limits::quiet_NaN(); + + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 9; + s = foo_lp.template operator()(lp__, lp_accum__, pstream__, + f5_lp); + if (emit_transformed_parameters__) { + vars__.emplace_back(s); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + + current_statement__ = 1; + auto hof = hof_L17C9_make__(); + + current_statement__ = 2; + auto foo_rng = foo_rng_L21C9_make__(); + + current_statement__ = 3; + auto foo_lpdf = foo_lpdf_L25C9_make__(); + + current_statement__ = 4; + auto foo_lp = foo_lp_L29C9_make__(); + + current_statement__ = 5; + auto f2 = f2_L33C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L37C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L41C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L45C9_make__(); + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"s"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s"); + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s"); + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = closures7_model_namespace::closures7_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return closures7_model_namespace::profiles__; +} + +#endif + + + diff --git a/test/integration/good/code-gen/closures/dune b/test/integration/good/code-gen/closures/dune new file mode 100644 index 0000000000..da77853ac5 --- /dev/null +++ b/test/integration/good/code-gen/closures/dune @@ -0,0 +1,10 @@ +(rule + (targets cpp.output) + (deps (package stanc) (:stanfiles (glob_files *.stan))) + (action + (with-stdout-to %{targets} + (run %{bin:run_bin_on_args} "%{bin:stanc} --print-cpp" %{stanfiles})))) + +(alias + (name runtest) + (action (diff cpp.expected cpp.output))) \ No newline at end of file diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index a0ee2ec060..2e5b4ae9f7 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -807,11 +807,11 @@ stan::math::profile_map& get_stan_profile_data() { - $ ../../../../../install/default/bin/stanc --print-cpp closures1.stan + $ ../../../../../install/default/bin/stanc --print-cpp eight_schools_ncp.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures1_model_namespace { +namespace eight_schools_ncp_model_namespace { using stan::io::dump; using stan::model::assign; @@ -827,303 +827,53 @@ 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 'closures1.stan', line 8, column 4 to line 14, column 5)", - " (in 'closures1.stan', line 17, column 4 to column 11)", - " (in 'closures1.stan', line 18, column 4 to column 15)", - " (in 'closures1.stan', line 19, column 4 to column 17)", - " (in 'closures1.stan', line 22, column 4 to line 30, column 5)", - " (in 'closures1.stan', line 31, column 4 to column 29)", - " (in 'closures1.stan', line 32, column 4 to column 27)", - " (in 'closures1.stan', line 33, column 4 to column 29)", - " (in 'closures1.stan', line 34, column 4 to column 27)", - " (in 'closures1.stan', line 2, column 4 to column 10)", - " (in 'closures1.stan', line 3, column 4 to column 11)", - " (in 'closures1.stan', line 4, column 11 to column 12)", - " (in 'closures1.stan', line 4, column 4 to column 14)", - " (in 'closures1.stan', line 5, column 11 to column 12)", - " (in 'closures1.stan', line 5, column 4 to column 16)", - " (in 'closures1.stan', line 18, column 12 to column 13)", - " (in 'closures1.stan', line 19, column 11 to column 12)", - " (in 'closures1.stan', line 24, column 8 to column 25)", - " (in 'closures1.stan', line 25, column 8 to column 25)", - " (in 'closures1.stan', line 26, column 8 to column 25)", - " (in 'closures1.stan', line 27, column 8 to column 27)", - " (in 'closures1.stan', line 28, column 8 to column 27)", - " (in 'closures1.stan', line 29, column 8 to column 52)", - " (in 'closures1.stan', line 23, column 35 to line 30, column 5)", - " (in 'closures1.stan', line 10, column 8 to column 25)", - " (in 'closures1.stan', line 11, column 8 to column 25)", - " (in 'closures1.stan', line 12, column 8 to column 25)", - " (in 'closures1.stan', line 13, column 8 to column 36)", - " (in 'closures1.stan', line 9, column 35 to line 14, column 5)"}; + " (in 'eight_schools_ncp.stan', line 8, column 2 to column 10)", + " (in 'eight_schools_ncp.stan', line 9, column 2 to column 20)", + " (in 'eight_schools_ncp.stan', line 10, column 2 to column 24)", + " (in 'eight_schools_ncp.stan', line 14, column 2 to column 43)", + " (in 'eight_schools_ncp.stan', line 18, column 2 to column 20)", + " (in 'eight_schools_ncp.stan', line 19, column 2 to column 21)", + " (in 'eight_schools_ncp.stan', line 20, column 2 to column 29)", + " (in 'eight_schools_ncp.stan', line 21, column 2 to column 27)", + " (in 'eight_schools_ncp.stan', line 2, column 2 to column 17)", + " (in 'eight_schools_ncp.stan', line 3, column 9 to column 10)", + " (in 'eight_schools_ncp.stan', line 3, column 2 to column 12)", + " (in 'eight_schools_ncp.stan', line 4, column 22 to column 23)", + " (in 'eight_schools_ncp.stan', line 4, column 2 to column 25)", + " (in 'eight_schools_ncp.stan', line 10, column 9 to column 10)", + " (in 'eight_schools_ncp.stan', line 14, column 9 to column 10)"}; -template -stan::promote_args_t, -stan::value_type_t, -T6__, stan::promote_args_t>> -bar_L23C9_impl__(const T0__& p, const std::vector& pa, const T2__& pv, - const T3__& v, const double& x, - const std::vector& y, const T6__& z, const T7__& r, - std::ostream* pstream__) ; - -template -class bar_L23C9_cfunctor__ { - stan::capture_type_t p; - stan::capture_type_t, ref__> pa; - stan::capture_type_t, ref__> pv; - const Eigen::Matrix& v; - stan::capture_type_t x; - const std::vector& y; - public: - const size_t vars_count__; - bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; - bar_L23C9_cfunctor__(bar_L23C9_cfunctor__&&) = default ; - bar_L23C9_cfunctor__(const F0__& p__, const std::vector& pa__, - const Eigen::Matrix& pv__, - const Eigen::Matrix& v__, - const double& x__, const std::vector& y__) - : p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), - vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} - template - stan::promote_args_t> - operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const - { - return bar_L23C9_impl__(p, pa, pv, v, x, y, z, r, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_L23C9_cfunctor__; - using CopyOf__ = bar_L23C9_cfunctor__, - stan::capture_type_t, - stan::capture_type_t>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(p), value_of(pa), value_of(pv), value_of(v), - value_of(x), value_of(y)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(p), deep_copy_vars(pa), deep_copy_vars(pv), - deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(p); - stan::math::zero_adjoints(pa); - stan::math::zero_adjoints(pv); - stan::math::zero_adjoints(v); - stan::math::zero_adjoints(x); - stan::math::zero_adjoints(y); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, p, pa, pv, v, x, y); - } - - - }; -template -auto bar_L23C9_make__(const F0__& p, const std::vector& pa, - const Eigen::Matrix& pv, - const Eigen::Matrix& v, const double& x, - const std::vector& y) { -return bar_L23C9_cfunctor__(p, pa, pv, v, x, y); -} -template -stan::promote_args_t, T3__, -stan::value_type_t> -foo_L9C9_impl__(const T0__& v, const double& x, const std::vector& y, - const T3__& z, const T4__& r, std::ostream* pstream__) ; - -class foo_L9C9_cfunctor__ { - const Eigen::Matrix& v; - double x; - const std::vector& y; - public: - const size_t vars_count__; - foo_L9C9_cfunctor__(const foo_L9C9_cfunctor__&) = default ; - foo_L9C9_cfunctor__(foo_L9C9_cfunctor__&&) = default ; - foo_L9C9_cfunctor__(const Eigen::Matrix& v__, - const double& x__, const std::vector& y__) - : v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} - template - stan::promote_args_t> - operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const - { - return foo_L9C9_impl__(v, x, y, z, r, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_L9C9_cfunctor__; - using CopyOf__ = foo_L9C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(v), value_of(x), value_of(y)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(v); - stan::math::zero_adjoints(x); - stan::math::zero_adjoints(y); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, v, x, y); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, v, x, y); - } - - - }; -auto foo_L9C9_make__(const Eigen::Matrix& v, const double& x, - const std::vector& y) { -return foo_L9C9_cfunctor__(v, x, y); -} -template -stan::promote_args_t, -stan::value_type_t, -T6__, stan::promote_args_t>> -bar_L23C9_impl__(const T0__& p, const std::vector& pa, - const T2__& pv_arg__, const T3__& v_arg__, const double& x, - const std::vector& y, const T6__& z, - const T7__& r_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - T6__, stan::promote_args_t>>; - int current_statement__ = 0; - const auto& pv = to_ref(pv_arg__); - const auto& v = to_ref(v_arg__); - const auto& r = to_ref(r_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ rs; - rs = DUMMY_VAR__; - - current_statement__ = 18; - rs = sum(r); - local_scalar_t__ ys; - ys = DUMMY_VAR__; - - current_statement__ = 19; - ys = sum(y); - local_scalar_t__ vs; - vs = DUMMY_VAR__; - - current_statement__ = 20; - vs = sum(v); - local_scalar_t__ pas; - pas = DUMMY_VAR__; - - current_statement__ = 21; - pas = sum(pa); - local_scalar_t__ pvs; - pvs = DUMMY_VAR__; - - current_statement__ = 22; - pvs = sum(pv); - current_statement__ = 23; - return (((((((z + rs) + x) + ys) + vs) + p) + pas) + pvs); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t, T3__, -stan::value_type_t> -foo_L9C9_impl__(const T0__& v_arg__, const double& x, - const std::vector& y, const T3__& z, - const T4__& r_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T3__, - stan::value_type_t>; - int current_statement__ = 0; - const auto& v = to_ref(v_arg__); - const auto& r = to_ref(r_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ rs; - rs = DUMMY_VAR__; - - current_statement__ = 25; - rs = sum(r); - local_scalar_t__ ys; - ys = DUMMY_VAR__; - - current_statement__ = 26; - ys = sum(y); - local_scalar_t__ vs; - vs = DUMMY_VAR__; - - current_statement__ = 27; - vs = sum(v); - current_statement__ = 28; - return ((((z + rs) + x) + ys) + vs); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class closures1_model final : public model_base_crtp { +class eight_schools_ncp_model final : public model_base_crtp { private: - int N; - double x; + int J; std::vector y; - Eigen::Matrix v__; - Eigen::Map> v{nullptr, 0}; + std::vector sigma; + public: - ~closures1_model() { } + ~eight_schools_ncp_model() { } - inline std::string model_name() const final { return "closures1_model"; } + inline std::string model_name() const final { return "eight_schools_ncp_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures1_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + eight_schools_ncp_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures1_model_namespace::closures1_model"; + static constexpr const char* function__ = "eight_schools_ncp_model_namespace::eight_schools_ncp_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -1132,65 +882,50 @@ class closures1_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - current_statement__ = 10; - context__.validate_dims("data initialization","N","int", + current_statement__ = 9; + context__.validate_dims("data initialization","J","int", std::vector{}); - N = std::numeric_limits::min(); + J = std::numeric_limits::min(); + current_statement__ = 9; + J = context__.vals_i("J")[(1 - 1)]; + current_statement__ = 9; + check_greater_or_equal(function__, "J", J, 0); current_statement__ = 10; - N = context__.vals_i("N")[(1 - 1)]; + validate_non_negative_index("y", "J", J); current_statement__ = 11; - context__.validate_dims("data initialization","x","double", - std::vector{}); - x = std::numeric_limits::quiet_NaN(); + context__.validate_dims("data initialization","y","double", + std::vector{static_cast(J)}); + y = std::vector(J, std::numeric_limits::quiet_NaN()); current_statement__ = 11; - x = context__.vals_r("x")[(1 - 1)]; + y = context__.vals_r("y"); current_statement__ = 12; - validate_non_negative_index("y", "N", N); + validate_non_negative_index("sigma", "J", J); current_statement__ = 13; - context__.validate_dims("data initialization","y","double", - std::vector{static_cast(N)}); - y = std::vector(N, std::numeric_limits::quiet_NaN()); + context__.validate_dims("data initialization","sigma","double", + std::vector{static_cast(J)}); + sigma = std::vector(J, std::numeric_limits::quiet_NaN()); + current_statement__ = 13; - y = context__.vals_r("y"); + sigma = context__.vals_r("sigma"); + current_statement__ = 13; + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { + current_statement__ = 13; + check_greater_or_equal(function__, "sigma[sym1__]", + sigma[(sym1__ - 1)], 0); + } current_statement__ = 14; - validate_non_negative_index("v", "N", N); + validate_non_negative_index("theta_tilde", "J", J); current_statement__ = 15; - context__.validate_dims("data initialization","v","double", - std::vector{static_cast(N)}); - v__ = Eigen::Matrix(N); - new (&v) Eigen::Map>(v__.data(), N); - - { - std::vector v_flat__; - current_statement__ = 15; - v_flat__ = context__.vals_r("v"); - current_statement__ = 15; - pos__ = 1; - current_statement__ = 15; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 15; - assign(v, v_flat__[(pos__ - 1)], - "assigning variable v", index_uni(sym1__)); - current_statement__ = 15; - pos__ = (pos__ + 1); - } - } - - current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); - current_statement__ = 16; - validate_non_negative_index("pa", "N", N); - current_statement__ = 17; - validate_non_negative_index("pv", "N", N); + validate_non_negative_index("theta", "J", J); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - num_params_r__ = 1 + N + N; + num_params_r__ = 1 + 1 + J; } @@ -1208,49 +943,44 @@ class closures1_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures1_model_namespace::log_prob"; + static constexpr const char* function__ = "eight_schools_ncp_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { + local_scalar_t__ mu; + mu = DUMMY_VAR__; current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); - local_scalar_t__ p; - p = DUMMY_VAR__; + mu = in__.template read(); + local_scalar_t__ tau; + tau = DUMMY_VAR__; current_statement__ = 2; - p = in__.template read(); - std::vector pa; - pa = std::vector(N, DUMMY_VAR__); + tau = in__.template read_constrain_lb(0, + lp__); + Eigen::Matrix theta_tilde; + theta_tilde = Eigen::Matrix(J); + stan::math::fill(theta_tilde, DUMMY_VAR__); current_statement__ = 3; - pa = in__.template read>(N); - Eigen::Matrix pv; - pv = Eigen::Matrix(N); - stan::math::fill(pv, DUMMY_VAR__); + theta_tilde = in__.template read>( + J); + Eigen::Matrix theta; + theta = Eigen::Matrix(J); + stan::math::fill(theta, DUMMY_VAR__); current_statement__ = 4; - pv = in__.template read>(N); + assign(theta, add(mu, multiply(tau, theta_tilde)), + "assigning variable theta"); { - current_statement__ = 5; - auto bar = bar_L23C9_make__(p, pa, pv, v, x, y); + lp_accum__.add(normal_lpdf(mu, 0, 5)); current_statement__ = 6; - lp_accum__.add( - foo(pstream__, 0.0, (Eigen::Matrix(1) << - 1.0).finished())); + lp_accum__.add(normal_lpdf(tau, 0, 5)); current_statement__ = 7; - lp_accum__.add( - foo(pstream__, p, (Eigen::Matrix(1) << - 1.0).finished())); + lp_accum__.add(normal_lpdf(theta_tilde, 0, 1)); current_statement__ = 8; - lp_accum__.add( - bar(pstream__, 0.0, (Eigen::Matrix(1) << - 1.0).finished())); - current_statement__ = 9; - lp_accum__.add( - bar(pstream__, p, (Eigen::Matrix(1) << - 1.0).finished())); + lp_accum__.add(normal_lpdf(y, theta, sigma)); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1282,40 +1012,49 @@ class closures1_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures1_model_namespace::write_array"; + static constexpr const char* function__ = "eight_schools_ncp_model_namespace::write_array"; (void) function__; // suppress unused var warning try { + double mu; + mu = std::numeric_limits::quiet_NaN(); current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); - double p; - p = std::numeric_limits::quiet_NaN(); + mu = in__.template read(); + double tau; + tau = std::numeric_limits::quiet_NaN(); current_statement__ = 2; - p = in__.template read(); - std::vector pa; - pa = std::vector(N, std::numeric_limits::quiet_NaN()); + tau = in__.template read_constrain_lb(0, + lp__); + Eigen::Matrix theta_tilde; + theta_tilde = Eigen::Matrix(J); + stan::math::fill(theta_tilde, std::numeric_limits::quiet_NaN()); current_statement__ = 3; - pa = in__.template read>(N); - Eigen::Matrix pv; - pv = Eigen::Matrix(N); - stan::math::fill(pv, std::numeric_limits::quiet_NaN()); + theta_tilde = in__.template read>( + J); + Eigen::Matrix theta; + theta = Eigen::Matrix(J); + stan::math::fill(theta, std::numeric_limits::quiet_NaN()); - current_statement__ = 4; - pv = in__.template read>(N); - vars__.emplace_back(p); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(pa[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(pv[(sym1__ - 1)]); + vars__.emplace_back(mu); + vars__.emplace_back(tau); + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { + vars__.emplace_back(theta_tilde[(sym1__ - 1)]); } if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; } + current_statement__ = 4; + assign(theta, add(mu, multiply(tau, theta_tilde)), + "assigning variable theta"); + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { + vars__.emplace_back(theta[(sym1__ - 1)]); + } + } if (logical_negation(emit_generated_quantities__)) { return ; } @@ -1338,48 +1077,48 @@ class closures1_model final : public model_base_crtp { int current_statement__ = 0; try { - - current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); int pos__; pos__ = std::numeric_limits::min(); pos__ = 1; - double p; - p = std::numeric_limits::quiet_NaN(); + double mu; + mu = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + mu = context__.vals_r("mu")[(1 - 1)]; + double tau; + tau = std::numeric_limits::quiet_NaN(); current_statement__ = 2; - p = context__.vals_r("p")[(1 - 1)]; - std::vector pa; - pa = std::vector(N, std::numeric_limits::quiet_NaN()); + tau = context__.vals_r("tau")[(1 - 1)]; + double tau_free__; + tau_free__ = std::numeric_limits::quiet_NaN(); - current_statement__ = 3; - pa = context__.vals_r("pa"); - Eigen::Matrix pv; - pv = Eigen::Matrix(N); - stan::math::fill(pv, std::numeric_limits::quiet_NaN()); + current_statement__ = 2; + tau_free__ = stan::math::lb_free(tau, 0); + Eigen::Matrix theta_tilde; + theta_tilde = Eigen::Matrix(J); + stan::math::fill(theta_tilde, std::numeric_limits::quiet_NaN()); { - std::vector pv_flat__; - current_statement__ = 4; - pv_flat__ = context__.vals_r("pv"); - current_statement__ = 4; + std::vector theta_tilde_flat__; + current_statement__ = 3; + theta_tilde_flat__ = context__.vals_r("theta_tilde"); + current_statement__ = 3; pos__ = 1; - current_statement__ = 4; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 4; - assign(pv, pv_flat__[(pos__ - 1)], - "assigning variable pv", index_uni(sym1__)); - current_statement__ = 4; + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { + current_statement__ = 3; + assign(theta_tilde, theta_tilde_flat__[(pos__ - 1)], + "assigning variable theta_tilde", index_uni(sym1__)); + current_statement__ = 3; pos__ = (pos__ + 1); } } - vars__.emplace_back(p); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(pa[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(pv[(sym1__ - 1)]); + vars__.emplace_back(mu); + vars__.emplace_back(tau_free__); + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { + vars__.emplace_back(theta_tilde[(sym1__ - 1)]); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1390,15 +1129,15 @@ class closures1_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { - names__ = std::vector{"p", "pa", "pv"}; + names__ = std::vector{"mu", "tau", "theta_tilde", "theta"}; } // get_param_names() inline void get_dims(std::vector>& dimss__) const { dimss__ = std::vector>{std::vector{}, - std::vector{static_cast(N)}, - std::vector{static_cast(N)}}; + std::vector{}, std::vector{static_cast(J)}, + std::vector{static_cast(J)}}; } // get_dims() @@ -1408,19 +1147,19 @@ class closures1_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - param_names__.emplace_back(std::string() + "p"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "pa" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + param_names__.emplace_back(std::string() + "mu"); + param_names__.emplace_back(std::string() + "tau"); + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { { - param_names__.emplace_back(std::string() + "pv" + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "theta_tilde" + '.' + std::to_string(sym1__)); } } if (emit_transformed_parameters__) { - + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta" + '.' + std::to_string(sym1__)); + } + } } if (emit_generated_quantities__) { @@ -1435,19 +1174,19 @@ class closures1_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - param_names__.emplace_back(std::string() + "p"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "pa" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + param_names__.emplace_back(std::string() + "mu"); + param_names__.emplace_back(std::string() + "tau"); + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { { - param_names__.emplace_back(std::string() + "pv" + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "theta_tilde" + '.' + std::to_string(sym1__)); } } if (emit_transformed_parameters__) { - + for (int sym1__ = 1; sym1__ <= J; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta" + '.' + std::to_string(sym1__)); + } + } } if (emit_generated_quantities__) { @@ -1458,13 +1197,13 @@ class closures1_model final : public model_base_crtp { inline std::string get_constrained_sizedtypes() const { - return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"pa\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"pv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"}]"); + return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"tau\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"theta_tilde\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"parameters\"},{\"name\":\"theta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"transformed_parameters\"}]"); } // get_constrained_sizedtypes() inline std::string get_unconstrained_sizedtypes() const { - return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"pa\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"pv\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"}]"); + return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"tau\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"theta_tilde\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"parameters\"},{\"name\":\"theta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"transformed_parameters\"}]"); } // get_unconstrained_sizedtypes() @@ -1531,7 +1270,8 @@ class closures1_model final : public model_base_crtp { }; } -using stan_model = closures1_model_namespace::closures1_model; + +using stan_model = eight_schools_ncp_model_namespace::eight_schools_ncp_model; #ifndef USING_R @@ -1545,18 +1285,18 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures1_model_namespace::profiles__; + return eight_schools_ncp_model_namespace::profiles__; } #endif - $ ../../../../../install/default/bin/stanc --print-cpp closures2.stan + $ ../../../../../install/default/bin/stanc --print-cpp mixed_type_arrays.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures2_model_namespace { +namespace mixed_type_arrays_model_namespace { using stan::io::dump; using stan::model::assign; @@ -1572,402 +1312,41 @@ 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 'closures2.stan', line 2, column 4 to line 5, column 5)", - " (in 'closures2.stan', line 6, column 4 to line 9, column 5)", - " (in 'closures2.stan', line 12, column 4 to column 15)", - " (in 'closures2.stan', line 15, column 4 to line 18, column 5)", - " (in 'closures2.stan', line 19, column 4 to line 26, column 5)", - " (in 'closures2.stan', line 27, column 4 to column 23)", - " (in 'closures2.stan', line 28, column 4 to column 23)", - " (in 'closures2.stan', line 29, column 4 to column 23)", - " (in 'closures2.stan', line 8, column 8 to column 22)", - " (in 'closures2.stan', line 7, column 21 to line 9, column 5)", - " (in 'closures2.stan', line 17, column 8 to column 22)", - " (in 'closures2.stan', line 16, column 21 to line 18, column 5)", - " (in 'closures2.stan', line 4, column 8 to column 17)", - " (in 'closures2.stan', line 3, column 21 to line 5, column 5)", - " (in 'closures2.stan', line 23, column 12 to column 21)", - " (in 'closures2.stan', line 22, column 25 to line 24, column 9)", - " (in 'closures2.stan', line 21, column 8 to line 24, column 9)", - " (in 'closures2.stan', line 25, column 8 to column 22)", - " (in 'closures2.stan', line 20, column 21 to line 26, column 5)"}; - -template -stan::promote_args_t -bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; - -template -class bar_L7C9_cfunctor__ { - stan::capture_type_t foo; - public: - const size_t vars_count__; - bar_L7C9_cfunctor__(const bar_L7C9_cfunctor__&) = default ; - bar_L7C9_cfunctor__(bar_L7C9_cfunctor__&&) = default ; - bar_L7C9_cfunctor__(const F0__& foo__) - : foo(foo__), vars_count__(count_vars(foo__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return bar_L7C9_impl__(foo, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_L7C9_cfunctor__; - using CopyOf__ = bar_L7C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(foo)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(foo)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(foo); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, foo); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, foo); - } - - - }; -template -auto bar_L7C9_make__(const F0__& foo) { -return bar_L7C9_cfunctor__(foo); -} - -template -stan::promote_args_t -baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; - -template -class baz_L16C9_cfunctor__ { - stan::capture_type_t foo; - public: - const size_t vars_count__; - baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; - baz_L16C9_cfunctor__(baz_L16C9_cfunctor__&&) = default ; - baz_L16C9_cfunctor__(const F0__& foo__) - : foo(foo__), vars_count__(count_vars(foo__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return baz_L16C9_impl__(foo, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = baz_L16C9_cfunctor__; - using CopyOf__ = baz_L16C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(foo)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(foo)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(foo); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, foo); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, foo); - } - - - }; -template -auto baz_L16C9_make__(const F0__& foo) { -return baz_L16C9_cfunctor__(foo); -} - -template -stan::promote_args_t -foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; - -class foo_L3C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; - foo_L3C9_cfunctor__(foo_L3C9_cfunctor__&&) = default ; - foo_L3C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return foo_L3C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_L3C9_cfunctor__; - using CopyOf__ = foo_L3C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_L3C9_make__() { -return foo_L3C9_cfunctor__(); -} - -template -stan::promote_args_t -gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) ; - -class gar_L22C13_cfunctor__ { - - public: - const size_t vars_count__; - gar_L22C13_cfunctor__(const gar_L22C13_cfunctor__&) = default ; - gar_L22C13_cfunctor__(gar_L22C13_cfunctor__&&) = default ; - gar_L22C13_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& b) const - { - return gar_L22C13_impl__(b, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = gar_L22C13_cfunctor__; - using CopyOf__ = gar_L22C13_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto gar_L22C13_make__() { -return gar_L22C13_cfunctor__(); -} + " (in 'mixed_type_arrays.stan', line 5, column 2 to column 13)", + " (in 'mixed_type_arrays.stan', line 8, column 2 to column 26)", + " (in 'mixed_type_arrays.stan', line 9, column 2 to column 34)", + " (in 'mixed_type_arrays.stan', line 10, column 2 to line 13, column 25)", + " (in 'mixed_type_arrays.stan', line 2, column 2 to column 12)"}; -template -stan::promote_args_t -goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; -class goo_L20C9_cfunctor__ { - - public: - const size_t vars_count__; - goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; - goo_L20C9_cfunctor__(goo_L20C9_cfunctor__&&) = default ; - goo_L20C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& s) const - { - return goo_L20C9_impl__(s, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = goo_L20C9_cfunctor__; - using CopyOf__ = goo_L20C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto goo_L20C9_make__() { -return goo_L20C9_cfunctor__(); -} -template -stan::promote_args_t -bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 9; - return foo(pstream__, y); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 11; - return foo(pstream__, y); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 13; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 15; - return b; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - - current_statement__ = 17; - auto gar = gar_L22C13_make__(); - current_statement__ = 18; - return gar(pstream__, s); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class closures2_model final : public model_base_crtp { +class mixed_type_arrays_model final : public model_base_crtp { private: - + std::vector x; public: - ~closures2_model() { } + ~mixed_type_arrays_model() { } - inline std::string model_name() const final { return "closures2_model"; } + inline std::string model_name() const final { return "mixed_type_arrays_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures2_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + mixed_type_arrays_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures2_model_namespace::closures2_model"; + static constexpr const char* function__ = "mixed_type_arrays_model_namespace::mixed_type_arrays_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -1976,18 +1355,15 @@ class closures2_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; + current_statement__ = 5; + x = std::vector(3, std::numeric_limits::quiet_NaN()); - current_statement__ = 1; - auto foo = foo_L3C9_make__(); - - current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - num_params_r__ = 1; + num_params_r__ = 3; } @@ -2005,43 +1381,48 @@ class closures2_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures2_model_namespace::log_prob"; + static constexpr const char* function__ = "mixed_type_arrays_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { + std::vector xx; + xx = std::vector(3, DUMMY_VAR__); current_statement__ = 1; - auto foo = foo_L3C9_make__(); - - current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); - local_scalar_t__ alpha; - alpha = DUMMY_VAR__; + xx = in__.template read>(3); + std::vector> y; + y = std::vector>(3, std::vector(3, DUMMY_VAR__)); - current_statement__ = 3; - alpha = in__.template read(); - current_statement__ = 4; - auto baz = baz_L16C9_make__(foo); + current_statement__ = 2; + assign(y, std::vector>{ + stan::math::promote_scalar(x), xx, xx}, + "assigning variable y"); + std::vector> w; + w = std::vector>(3, std::vector(3, DUMMY_VAR__)); - current_statement__ = 5; - auto goo = goo_L20C9_make__(); - local_scalar_t__ s1; - s1 = DUMMY_VAR__; - current_statement__ = 6; - s1 = bar(pstream__, 1.0); - local_scalar_t__ s2; - s2 = DUMMY_VAR__; + current_statement__ = 3; + assign(w, std::vector>{ + std::vector{ + stan::math::promote_scalar(1.0), + stan::math::promote_scalar(2), + stan::math::promote_scalar(3)}, xx, xx}, + "assigning variable w"); + std::vector> td_arr33; + td_arr33 = std::vector>(3, std::vector(3, DUMMY_VAR__)); - current_statement__ = 7; - s2 = baz(pstream__, 1.0); - local_scalar_t__ s3; - s3 = DUMMY_VAR__; - current_statement__ = 8; - s3 = goo(pstream__, 1.0); - } catch (const std::exception& e) { + current_statement__ = 4; + assign(td_arr33, std::vector>{std::vector{ + stan::math::promote_scalar(1), + stan::math::promote_scalar(2), + stan::math::promote_scalar(3)}, std::vector{ + stan::math::promote_scalar(1), 2., + stan::math::promote_scalar(3)}, std::vector{1., 2., + stan::math::promote_scalar(3)}}, + "assigning variable td_arr33"); + } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); @@ -2071,51 +1452,70 @@ class closures2_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures2_model_namespace::write_array"; + static constexpr const char* function__ = "mixed_type_arrays_model_namespace::write_array"; (void) function__; // suppress unused var warning try { + std::vector xx; + xx = std::vector(3, std::numeric_limits::quiet_NaN()); current_statement__ = 1; - auto foo = foo_L3C9_make__(); - - current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); - double alpha; - alpha = std::numeric_limits::quiet_NaN(); + xx = in__.template read>(3); + std::vector> y; + y = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); - current_statement__ = 3; - alpha = in__.template read(); + std::vector> w; + w = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); - double s1; - s1 = std::numeric_limits::quiet_NaN(); - double s2; - s2 = std::numeric_limits::quiet_NaN(); + std::vector> td_arr33; + td_arr33 = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); - double s3; - s3 = std::numeric_limits::quiet_NaN(); - vars__.emplace_back(alpha); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(xx[(sym1__ - 1)]); + } if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; } + current_statement__ = 2; + assign(y, std::vector>{ + stan::math::promote_scalar(x), xx, xx}, + "assigning variable y"); + current_statement__ = 3; + assign(w, std::vector>{ + std::vector{ + stan::math::promote_scalar(1.0), + stan::math::promote_scalar(2), + stan::math::promote_scalar(3)}, xx, xx}, + "assigning variable w"); current_statement__ = 4; - auto baz = baz_L16C9_make__(foo); - current_statement__ = 5; - auto goo = goo_L20C9_make__(); - current_statement__ = 6; - s1 = bar(pstream__, 1.0); - current_statement__ = 7; - s2 = baz(pstream__, 1.0); - current_statement__ = 8; - s3 = goo(pstream__, 1.0); + assign(td_arr33, std::vector>{std::vector{ + stan::math::promote_scalar(1), + stan::math::promote_scalar(2), + stan::math::promote_scalar(3)}, std::vector{ + stan::math::promote_scalar(1), 2., + stan::math::promote_scalar(3)}, std::vector{1., 2., + stan::math::promote_scalar(3)}}, + "assigning variable td_arr33"); if (emit_transformed_parameters__) { - vars__.emplace_back(s1); - vars__.emplace_back(s2); - vars__.emplace_back(s3); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back(y[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back(w[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back(td_arr33[(sym2__ - 1)][(sym1__ - 1)]); + } + } } if (logical_negation(emit_generated_quantities__)) { return ; @@ -2139,22 +1539,18 @@ class closures2_model final : public model_base_crtp { int current_statement__ = 0; try { - - current_statement__ = 1; - auto foo = foo_L3C9_make__(); - - current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); int pos__; pos__ = std::numeric_limits::min(); pos__ = 1; - double alpha; - alpha = std::numeric_limits::quiet_NaN(); + std::vector xx; + xx = std::vector(3, std::numeric_limits::quiet_NaN()); - current_statement__ = 3; - alpha = context__.vals_r("alpha")[(1 - 1)]; - vars__.emplace_back(alpha); + current_statement__ = 1; + xx = context__.vals_r("xx"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(xx[(sym1__ - 1)]); + } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2164,15 +1560,18 @@ class closures2_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { - names__ = std::vector{"alpha", "s1", "s2", "s3"}; + names__ = std::vector{"xx", "y", "w", "td_arr33"}; } // get_param_names() inline void get_dims(std::vector>& dimss__) const { - dimss__ = std::vector>{std::vector{}, - std::vector{}, std::vector{}, std::vector{ - }}; + dimss__ = std::vector>{std::vector{ + static_cast(3) + }, + std::vector{static_cast(3), static_cast(3)}, + std::vector{static_cast(3), static_cast(3)}, + std::vector{static_cast(3), static_cast(3)}}; } // get_dims() @@ -2182,11 +1581,39 @@ class closures2_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - param_names__.emplace_back(std::string() + "alpha"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "xx" + '.' + std::to_string(sym1__)); + } + } if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "s1"); - param_names__.emplace_back(std::string() + "s2"); - param_names__.emplace_back(std::string() + "s3"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "w" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "td_arr33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } if (emit_generated_quantities__) { @@ -2201,11 +1628,39 @@ class closures2_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - param_names__.emplace_back(std::string() + "alpha"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "xx" + '.' + std::to_string(sym1__)); + } + } if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "s1"); - param_names__.emplace_back(std::string() + "s2"); - param_names__.emplace_back(std::string() + "s3"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "w" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "td_arr33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } if (emit_generated_quantities__) { @@ -2216,13 +1671,13 @@ class closures2_model final : public model_base_crtp { inline std::string get_constrained_sizedtypes() const { - return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"s1\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s2\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s3\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + return std::string("[{\"name\":\"xx\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"td_arr33\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); } // get_constrained_sizedtypes() inline std::string get_unconstrained_sizedtypes() const { - return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"s1\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s2\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"s3\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + return std::string("[{\"name\":\"xx\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"td_arr33\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); } // get_unconstrained_sizedtypes() @@ -2289,7 +1744,8 @@ class closures2_model final : public model_base_crtp { }; } -using stan_model = closures2_model_namespace::closures2_model; + +using stan_model = mixed_type_arrays_model_namespace::mixed_type_arrays_model; #ifndef USING_R @@ -2303,18 +1759,18 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures2_model_namespace::profiles__; + return mixed_type_arrays_model_namespace::profiles__; } #endif - $ ../../../../../install/default/bin/stanc --print-cpp closures3.stan + $ ../../../../../install/default/bin/stanc --print-cpp mother.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures3_model_namespace { +namespace mother_model_namespace { using stan::io::dump; using stan::model::assign; @@ -2330,23483 +1786,1712 @@ 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 'closures3.stan', line 15, column 4 to line 18, column 5)", - " (in 'closures3.stan', line 22, column 4 to column 11)", - " (in 'closures3.stan', line 25, column 4 to line 28, column 5)", - " (in 'closures3.stan', line 29, column 4 to column 27)", - " (in 'closures3.stan', line 14, column 4 to column 28)", - " (in 'closures3.stan', line 19, column 4 to column 27)", - " (in 'closures3.stan', line 3, column 8 to line 6, column 9)", - " (in 'closures3.stan', line 7, column 8 to column 23)", - " (in 'closures3.stan', line 2, column 35 to line 8, column 5)", - " (in 'closures3.stan', line 10, column 8 to column 17)", - " (in 'closures3.stan', line 9, column 22 to line 11, column 5)", - " (in 'closures3.stan', line 17, column 8 to column 19)", - " (in 'closures3.stan', line 16, column 21 to line 18, column 5)", - " (in 'closures3.stan', line 27, column 8 to column 19)", - " (in 'closures3.stan', line 26, column 21 to line 28, column 5)", - " (in 'closures3.stan', line 5, column 12 to column 28)", - " (in 'closures3.stan', line 4, column 24 to line 6, column 9)"}; - -template -stan::promote_args_t -foo(const T0__& g, const T1__& x, std::ostream* pstream__) ; - -struct foo_functor__ { -template -stan::promote_args_t -operator()(const T0__& g, const T1__& x, std::ostream* pstream__) const -{ -return foo(g, x, pstream__); -} -}; - -template -stan::promote_args_t -foo2(const T0__& x, std::ostream* pstream__) ; - -struct foo2_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return foo2(x, pstream__); -} -}; - -template -stan::promote_args_t -bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; - -class bar_L16C9_cfunctor__ { - double x; - public: - const size_t vars_count__; - bar_L16C9_cfunctor__(const bar_L16C9_cfunctor__&) = default ; - bar_L16C9_cfunctor__(bar_L16C9_cfunctor__&&) = default ; - bar_L16C9_cfunctor__(const double& x__) - : x(x__), vars_count__(count_vars(x__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return bar_L16C9_impl__(x, y, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = bar_L16C9_cfunctor__; - using CopyOf__ = bar_L16C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(x)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(x)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(x); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, x); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, x); - } - - - }; -auto bar_L16C9_make__(const double& x) { -return bar_L16C9_cfunctor__(x); -} - -template -stan::promote_args_t -baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; - -template -class baz_L26C9_cfunctor__ { - stan::capture_type_t p; - public: - const size_t vars_count__; - baz_L26C9_cfunctor__(const baz_L26C9_cfunctor__&) = default ; - baz_L26C9_cfunctor__(baz_L26C9_cfunctor__&&) = default ; - baz_L26C9_cfunctor__(const F0__& p__) - : p(p__), vars_count__(count_vars(p__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return baz_L26C9_impl__(p, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = baz_L26C9_cfunctor__; - using CopyOf__ = baz_L26C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(p)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(p)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(p); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, p); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, p); - } - - - }; -template -auto baz_L26C9_make__(const F0__& p) { -return baz_L26C9_cfunctor__(p); -} - -template -stan::promote_args_t -g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, - std::ostream* pstream__) ; - -template -class g2_L4C13_cfunctor__ { - stan::capture_type_t g; - stan::capture_type_t x; - public: - const size_t vars_count__; - g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; - g2_L4C13_cfunctor__(g2_L4C13_cfunctor__&&) = default ; - g2_L4C13_cfunctor__(const F0__& g__, const F1__& x__) - : g(g__), x(x__), vars_count__(count_vars(g__, x__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return g2_L4C13_impl__(g, x, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = g2_L4C13_cfunctor__; - using CopyOf__ = g2_L4C13_cfunctor__, - stan::capture_type_t>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(g), value_of(x)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(g), deep_copy_vars(x)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(g); - stan::math::zero_adjoints(x); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, g, x); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, g, x); - } - - - }; -template -auto g2_L4C13_make__(const F0__& g, const F1__& x) { -return g2_L4C13_cfunctor__(g, x); -} - -template -stan::promote_args_t -foo(const T0__& g, const T1__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - - current_statement__ = 7; - auto g2 = g2_L4C13_make__(g, x); - current_statement__ = 8; - return g2(pstream__, 1.0); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo2(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 10; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 12; - return (x * y); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 14; - return (p * y); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 16; - return (g(pstream__, y) * x); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class closures3_model final : public model_base_crtp { - - private: - double x; - double z; - - - public: - ~closures3_model() { } - - inline std::string model_name() const final { return "closures3_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - closures3_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures3_model_namespace::closures3_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 5; - x = std::numeric_limits::quiet_NaN(); - - current_statement__ = 5; - x = foo(from_lambda(foo2_functor__()), 2.0, pstream__); - - current_statement__ = 1; - auto bar = bar_L16C9_make__(x); - current_statement__ = 6; - z = std::numeric_limits::quiet_NaN(); - - current_statement__ = 6; - z = foo(bar, 1.0, pstream__); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 1; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures3_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - - current_statement__ = 1; - auto bar = bar_L16C9_make__(x); - local_scalar_t__ p; - p = DUMMY_VAR__; - - current_statement__ = 2; - p = in__.template read(); - - current_statement__ = 3; - auto baz = baz_L26C9_make__(p); - local_scalar_t__ w; - w = DUMMY_VAR__; - - current_statement__ = 4; - w = foo(baz, 1.0, pstream__); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures3_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - - current_statement__ = 1; - auto bar = bar_L16C9_make__(x); - double p; - p = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - p = in__.template read(); - - double w; - w = std::numeric_limits::quiet_NaN(); - - vars__.emplace_back(p); - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 3; - auto baz = baz_L26C9_make__(p); - current_statement__ = 4; - w = foo(baz, 1.0, pstream__); - if (emit_transformed_parameters__) { - vars__.emplace_back(w); - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - - current_statement__ = 1; - auto bar = bar_L16C9_make__(x); - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - double p; - p = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - p = context__.vals_r("p")[(1 - 1)]; - vars__.emplace_back(p); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"p", "w"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}, - std::vector{}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "p"); - if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "w"); - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "p"); - if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "w"); - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"p\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = closures3_model_namespace::closures3_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return closures3_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp closures4.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace closures4_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'closures4.stan', line 14, column 4 to column 19)", - " (in 'closures4.stan', line 15, column 4 to column 19)", - " (in 'closures4.stan', line 18, column 4 to column 44)", - " (in 'closures4.stan', line 11, column 4 to column 15)", - " (in 'closures4.stan', line 14, column 16 to column 17)", - " (in 'closures4.stan', line 3, column 8 to line 6, column 9)", - " (in 'closures4.stan', line 7, column 8 to column 47)", - " (in 'closures4.stan', line 2, column 59 to line 8, column 5)", - " (in 'closures4.stan', line 5, column 12 to column 30)", - " (in 'closures4.stan', line 4, column 42 to line 6, column 9)"}; - -template -std::vector, -T2__>, -1, 1>> -integrate(const std::vector>& k, const T1__& init, - const std::vector& ts, std::ostream* pstream__) ; - -struct integrate_functor__ { -template -std::vector, -T2__>, -1, 1>> -operator()(const std::vector>& k, - const T1__& init, const std::vector& ts, - std::ostream* pstream__) const -{ -return integrate(k, init, ts, pstream__); -} -}; - -template -Eigen::Matrix>, -1, 1> -harmonic_L4C15_impl__(const std::vector>& k, - const T1__& t, const T2__& y, std::ostream* pstream__) ; - -template -class harmonic_L4C15_cfunctor__ { - stan::capture_type_t>, ref__> k; - public: - const size_t vars_count__; - harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; - harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; - harmonic_L4C15_cfunctor__(const std::vector>& k__) - : k(k__), vars_count__(count_vars(k__)) {} - template - Eigen::Matrix>, -1, 1> - operator()(std::ostream* pstream__, const T0__& t, const T1__& y) const - { - return harmonic_L4C15_impl__(k, t, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = harmonic_L4C15_cfunctor__; - using CopyOf__ = harmonic_L4C15_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(k)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(k)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(k); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, k); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, k); - } - - - }; -template -auto harmonic_L4C15_make__(const std::vector>& k) { -return harmonic_L4C15_cfunctor__(k); -} - -template -std::vector, -T2__>, -1, 1>> -integrate(const std::vector>& k, - const T1__& init_arg__, const std::vector& ts, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T2__>; - int current_statement__ = 0; - const auto& init = to_ref(init_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - - current_statement__ = 6; - auto harmonic = harmonic_L4C15_make__(k); - current_statement__ = 7; - return ode_rk45(harmonic, init, 0, ts, pstream__); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix>, -1, 1> -harmonic_L4C15_impl__(const std::vector>& k, - const T1__& t, const T2__& y_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - int current_statement__ = 0; - const auto& y = to_ref(y_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 9; - return elt_multiply(minus(rvalue(k, "k", index_uni(1))), y); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class closures4_model final : public model_base_crtp { - - private: - std::vector ts; - - - public: - ~closures4_model() { } - - inline std::string model_name() const final { return "closures4_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - closures4_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures4_model_namespace::closures4_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 4; - context__.validate_dims("data initialization","ts","double", - std::vector{static_cast(5)}); - ts = std::vector(5, std::numeric_limits::quiet_NaN()); - - current_statement__ = 4; - ts = context__.vals_r("ts"); - current_statement__ = 5; - validate_non_negative_index("k", "1", 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = (1 * 2) + 2; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures4_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - std::vector> k; - k = std::vector>(1, Eigen::Matrix(2)); - stan::math::fill(k, DUMMY_VAR__); - - current_statement__ = 1; - k = in__.template read>>( - 1, 2); - Eigen::Matrix init; - init = Eigen::Matrix(2); - stan::math::fill(init, DUMMY_VAR__); - - current_statement__ = 2; - init = in__.template read>(2); - std::vector> y; - y = std::vector>(5, Eigen::Matrix(2)); - stan::math::fill(y, DUMMY_VAR__); - - current_statement__ = 3; - assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures4_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - std::vector> k; - k = std::vector>(1, Eigen::Matrix(2)); - stan::math::fill(k, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - k = in__.template read>>( - 1, 2); - Eigen::Matrix init; - init = Eigen::Matrix(2); - stan::math::fill(init, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - init = in__.template read>(2); - std::vector> y; - y = std::vector>(5, Eigen::Matrix(2)); - stan::math::fill(y, std::numeric_limits::quiet_NaN()); - - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - vars__.emplace_back(k[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(init[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 3; - assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back(y[(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - std::vector> k; - k = std::vector>(1, Eigen::Matrix(2)); - stan::math::fill(k, std::numeric_limits::quiet_NaN()); - - { - std::vector k_flat__; - current_statement__ = 1; - k_flat__ = context__.vals_r("k"); - current_statement__ = 1; - pos__ = 1; - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 1; - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - current_statement__ = 1; - assign(k, k_flat__[(pos__ - 1)], - "assigning variable k", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 1; - pos__ = (pos__ + 1); - } - } - } - Eigen::Matrix init; - init = Eigen::Matrix(2); - stan::math::fill(init, std::numeric_limits::quiet_NaN()); - - { - std::vector init_flat__; - current_statement__ = 2; - init_flat__ = context__.vals_r("init"); - current_statement__ = 2; - pos__ = 1; - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 2; - assign(init, init_flat__[(pos__ - 1)], - "assigning variable init", index_uni(sym1__)); - current_statement__ = 2; - pos__ = (pos__ + 1); - } - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - vars__.emplace_back(k[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(init[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"k", "init", "y"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{ - static_cast(1) - , - static_cast(2) - }, - std::vector{static_cast(2)}, - std::vector{static_cast(5), static_cast(2)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - { - param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - { - param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = closures4_model_namespace::closures4_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return closures4_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp closures5.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace closures5_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'closures5.stan', line 5, column 4 to column 12)", - " (in 'closures5.stan', line 6, column 4 to column 14)", - " (in 'closures5.stan', line 9, column 4 to line 12, column 5)", - " (in 'closures5.stan', line 13, column 4 to line 16, column 5)", - " (in 'closures5.stan', line 17, column 4 to column 36)", - " (in 'closures5.stan', line 18, column 4 to column 41)", - " (in 'closures5.stan', line 19, column 4 to column 42)", - " (in 'closures5.stan', line 2, column 4 to column 10)", - " (in 'closures5.stan', line 6, column 11 to column 12)", - " (in 'closures5.stan', line 15, column 8 to column 41)", - " (in 'closures5.stan', line 14, column 52 to line 16, column 5)", - " (in 'closures5.stan', line 11, column 8 to column 39)", - " (in 'closures5.stan', line 10, column 47 to line 12, column 5)"}; -struct foo_rsfunctor__; -template -struct bar_lpdf_rsfunctor__; -template -stan::promote_args_t -bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, - std::ostream* pstream__) ; - -template -class bar_lpdf_L14C9_cfunctor__ { - stan::capture_type_t mu; - public: - const size_t vars_count__; - bar_lpdf_L14C9_cfunctor__(const bar_lpdf_L14C9_cfunctor__&) = default ; - bar_lpdf_L14C9_cfunctor__(bar_lpdf_L14C9_cfunctor__&&) = default ; - bar_lpdf_L14C9_cfunctor__(const F0__& mu__) - : mu(mu__), vars_count__(count_vars(mu__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const std::vector& slice, - const int& start, const int& end) const - { - return bar_lpdf_L14C9_impl__(mu, slice, start, end, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_lpdf_L14C9_cfunctor__; - using CopyOf__ = bar_lpdf_L14C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(mu)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(mu)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(mu); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, mu); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, mu); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper, true>(*this); - } - auto copy_of__() { - return CopyOf__(mu); - } - - }; -template -auto bar_lpdf_L14C9_make__(const F0__& mu) { -return bar_lpdf_L14C9_cfunctor__(mu); -} - -template -stan::promote_args_t -foo_L10C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, std::ostream* pstream__) ; - -template -class foo_L10C9_cfunctor__ { - stan::capture_type_t mu; - public: - const size_t vars_count__; - foo_L10C9_cfunctor__(const foo_L10C9_cfunctor__&) = default ; - foo_L10C9_cfunctor__(foo_L10C9_cfunctor__&&) = default ; - foo_L10C9_cfunctor__(const F0__& mu__) - : mu(mu__), vars_count__(count_vars(mu__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const std::vector& slice, - const int& start, const int& end) const - { - return foo_L10C9_impl__(mu, slice, start, end, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = foo_L10C9_cfunctor__; - using CopyOf__ = foo_L10C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(value_of(mu)); - } - auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(mu)); - } - void zero_adjoints__() { - stan::math::zero_adjoints(mu); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, mu); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, mu); - } - - - }; -template -auto foo_L10C9_make__(const F0__& mu) { -return foo_L10C9_cfunctor__(mu); -} - -template -stan::promote_args_t -bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 10; - return normal_lpdf(slice, mu, 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_L10C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 12; - return normal_lpdf(slice, mu, 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class closures5_model final : public model_base_crtp { - - private: - int N; - - - public: - ~closures5_model() { } - - inline std::string model_name() const final { return "closures5_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - closures5_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures5_model_namespace::closures5_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 8; - context__.validate_dims("data initialization","N","int", - std::vector{}); - N = std::numeric_limits::min(); - - current_statement__ = 8; - N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 9; - validate_non_negative_index("x", "N", N); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 1 + N; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures5_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - local_scalar_t__ mu; - mu = DUMMY_VAR__; - - current_statement__ = 1; - mu = in__.template read(); - std::vector x; - x = std::vector(N, DUMMY_VAR__); - - current_statement__ = 2; - x = in__.template read>(N); - { - - current_statement__ = 3; - auto foo = foo_L10C9_make__(mu); - - current_statement__ = 4; - auto bar_lpdf = bar_lpdf_L14C9_make__(mu); - current_statement__ = 5; - lp_accum__.add( - reduce_sum(x, 1, pstream__, - foo)); - current_statement__ = 6; - lp_accum__.add( - reduce_sum(x, 1, pstream__, - bar_lpdf.template with_propto())); - current_statement__ = 7; - lp_accum__.add( - reduce_sum(x, 1, pstream__, - bar_lpdf.template with_propto())); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures5_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - double mu; - mu = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - mu = in__.template read(); - std::vector x; - x = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - x = in__.template read>(N); - vars__.emplace_back(mu); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(x[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - double mu; - mu = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - mu = context__.vals_r("mu")[(1 - 1)]; - std::vector x; - x = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - x = context__.vals_r("x"); - vars__.emplace_back(mu); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(x[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"mu", "x"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}, - std::vector{static_cast(N)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "mu"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "mu"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = closures5_model_namespace::closures5_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return closures5_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp closures6.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace closures6_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'closures6.stan', line 2, column 4 to column 11)", - " (in 'closures6.stan', line 3, column 4 to column 11)", - " (in 'closures6.stan', line 6, column 4 to line 9, column 5)", - " (in 'closures6.stan', line 10, column 4 to line 13, column 5)", - " (in 'closures6.stan', line 20, column 4 to column 24)", - " (in 'closures6.stan', line 16, column 4 to column 28)", - " (in 'closures6.stan', line 17, column 4 to column 29)", - " (in 'closures6.stan', line 12, column 8 to column 35)", - " (in 'closures6.stan', line 11, column 34 to line 13, column 5)", - " (in 'closures6.stan', line 8, column 8 to column 31)", - " (in 'closures6.stan', line 7, column 25 to line 9, column 5)"}; - -template -stan::promote_args_t -foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) ; - -class foo_lpdf_L11C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_lpdf_L11C9_cfunctor__(const foo_lpdf_L11C9_cfunctor__&) = default ; - foo_lpdf_L11C9_cfunctor__(foo_lpdf_L11C9_cfunctor__&&) = default ; - foo_lpdf_L11C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y, const T1__& x) const - { - return foo_lpdf_L11C9_impl__(y, x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_lpdf_L11C9_cfunctor__; - using CopyOf__ = foo_lpdf_L11C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto foo_lpdf_L11C9_make__() { -return foo_lpdf_L11C9_cfunctor__(); -} - -template -stan::promote_args_t -foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; - -class foo_rng_L7C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_rng_L7C9_cfunctor__(const foo_rng_L7C9_cfunctor__&) = default ; - foo_rng_L7C9_cfunctor__(foo_rng_L7C9_cfunctor__&&) = default ; - foo_rng_L7C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const - { - return foo_rng_L7C9_impl__(x, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_rng_L7C9_cfunctor__; - using CopyOf__ = foo_rng_L7C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_rng_L7C9_make__() { -return foo_rng_L7C9_cfunctor__(); -} - -template -stan::promote_args_t -foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 8; - return normal_lpdf(y, x, 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 10; - return normal_rng(x, 1, base_rng__); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class closures6_model final : public model_base_crtp { - - private: - - - - public: - ~closures6_model() { } - - inline std::string model_name() const final { return "closures6_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - closures6_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures6_model_namespace::closures6_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 1 + 1; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures6_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 1; - s = in__.template read(); - local_scalar_t__ k; - k = DUMMY_VAR__; - - current_statement__ = 2; - k = in__.template read(); - - current_statement__ = 3; - auto foo_rng = foo_rng_L7C9_make__(); - - current_statement__ = 4; - auto foo_lpdf = foo_lpdf_L11C9_make__(); - { - current_statement__ = 6; - lp_accum__.add(foo_lpdf.template operator()(pstream__, s, k)); - current_statement__ = 7; - lp_accum__.add( - foo_lpdf.template operator()(pstream__, s, k)); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures6_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - double s; - s = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - s = in__.template read(); - double k; - k = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - k = in__.template read(); - - - vars__.emplace_back(s); - vars__.emplace_back(k); - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 3; - auto foo_rng = foo_rng_L7C9_make__(); - current_statement__ = 4; - auto foo_lpdf = foo_lpdf_L11C9_make__(); - if (logical_negation(emit_generated_quantities__)) { - return ; - } - double m; - m = std::numeric_limits::quiet_NaN(); - - current_statement__ = 5; - m = foo_rng(base_rng__, pstream__, k); - vars__.emplace_back(m); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - double s; - s = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - s = context__.vals_r("s")[(1 - 1)]; - double k; - k = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - k = context__.vals_r("k")[(1 - 1)]; - vars__.emplace_back(s); - vars__.emplace_back(k); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"s", "k", "m"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}, - std::vector{}, std::vector{}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "s"); - param_names__.emplace_back(std::string() + "k"); - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "m"); - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "s"); - param_names__.emplace_back(std::string() + "k"); - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "m"); - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = closures6_model_namespace::closures6_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return closures6_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp closures7.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace closures7_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'closures7.stan', line 16, column 4 to line 17, column 68)", - " (in 'closures7.stan', line 20, column 4 to line 23, column 5)", - " (in 'closures7.stan', line 24, column 4 to line 27, column 5)", - " (in 'closures7.stan', line 28, column 4 to line 31, column 5)", - " (in 'closures7.stan', line 32, column 4 to line 35, column 5)", - " (in 'closures7.stan', line 36, column 4 to line 39, column 5)", - " (in 'closures7.stan', line 40, column 4 to line 43, column 5)", - " (in 'closures7.stan', line 44, column 4 to line 47, column 5)", - " (in 'closures7.stan', line 51, column 4 to column 27)", - " (in 'closures7.stan', line 54, column 4 to column 36)", - " (in 'closures7.stan', line 18, column 4 to column 30)", - " (in 'closures7.stan', line 48, column 4 to column 30)", - " (in 'closures7.stan', line 3, column 8 to column 38)", - " (in 'closures7.stan', line 4, column 8 to column 17)", - " (in 'closures7.stan', line 2, column 25 to line 5, column 5)", - " (in 'closures7.stan', line 7, column 8 to column 34)", - " (in 'closures7.stan', line 8, column 8 to column 17)", - " (in 'closures7.stan', line 6, column 24 to line 9, column 5)", - " (in 'closures7.stan', line 11, column 8 to column 26)", - " (in 'closures7.stan', line 12, column 8 to column 17)", - " (in 'closures7.stan', line 10, column 23 to line 13, column 5)", - " (in 'closures7.stan', line 34, column 8 to column 17)", - " (in 'closures7.stan', line 33, column 20 to line 35, column 5)", - " (in 'closures7.stan', line 38, column 8 to column 17)", - " (in 'closures7.stan', line 37, column 25 to line 39, column 5)", - " (in 'closures7.stan', line 42, column 8 to column 17)", - " (in 'closures7.stan', line 41, column 24 to line 43, column 5)", - " (in 'closures7.stan', line 46, column 8 to column 17)", - " (in 'closures7.stan', line 45, column 23 to line 47, column 5)", - " (in 'closures7.stan', line 30, column 8 to column 25)", - " (in 'closures7.stan', line 29, column 35 to line 31, column 5)", - " (in 'closures7.stan', line 26, column 8 to column 28)", - " (in 'closures7.stan', line 25, column 48 to line 27, column 5)", - " (in 'closures7.stan', line 22, column 8 to column 27)", - " (in 'closures7.stan', line 21, column 38 to line 23, column 5)", - " (in 'closures7.stan', line 17, column 66 to column 68)"}; - -template -stan::promote_args_t -ff_lpdf(const T0__& x, std::ostream* pstream__) ; - -struct ff_lpdf_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return ff_lpdf(x, pstream__); -} -}; - -template -stan::promote_args_t -ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; - -struct ff_rng_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, RNG& base_rng__, std::ostream* pstream__) const -{ -return ff_rng(x, pstream__); -} -}; - -template -stan::promote_args_t -ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; - -struct ff_lp_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return ff_lp(x, pstream__); -} -}; - -template -stan::promote_args_t -f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) ; - -class f2_L33C9_cfunctor__ { - - public: - const size_t vars_count__; - f2_L33C9_cfunctor__(const f2_L33C9_cfunctor__&) = default ; - f2_L33C9_cfunctor__(f2_L33C9_cfunctor__&&) = default ; - f2_L33C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return f2_L33C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f2_L33C9_cfunctor__; - using CopyOf__ = f2_L33C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f2_L33C9_make__() { -return f2_L33C9_cfunctor__(); -} - -template -stan::promote_args_t -f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) ; - -class f3_lpdf_L37C9_cfunctor__ { - - public: - const size_t vars_count__; - f3_lpdf_L37C9_cfunctor__(const f3_lpdf_L37C9_cfunctor__&) = default ; - f3_lpdf_L37C9_cfunctor__(f3_lpdf_L37C9_cfunctor__&&) = default ; - f3_lpdf_L37C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return f3_lpdf_L37C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f3_lpdf_L37C9_cfunctor__; - using CopyOf__ = f3_lpdf_L37C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto f3_lpdf_L37C9_make__() { -return f3_lpdf_L37C9_cfunctor__(); -} - -template -stan::promote_args_t -f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; - -class f4_rng_L41C9_cfunctor__ { - - public: - const size_t vars_count__; - f4_rng_L41C9_cfunctor__(const f4_rng_L41C9_cfunctor__&) = default ; - f4_rng_L41C9_cfunctor__(f4_rng_L41C9_cfunctor__&&) = default ; - f4_rng_L41C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const - { - return f4_rng_L41C9_impl__(x, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f4_rng_L41C9_cfunctor__; - using CopyOf__ = f4_rng_L41C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f4_rng_L41C9_make__() { -return f4_rng_L41C9_cfunctor__(); -} - -template -stan::promote_args_t -f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; - -class f5_lp_L45C9_cfunctor__ { - - public: - const size_t vars_count__; - f5_lp_L45C9_cfunctor__(const f5_lp_L45C9_cfunctor__&) = default ; - f5_lp_L45C9_cfunctor__(f5_lp_L45C9_cfunctor__&&) = default ; - f5_lp_L45C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, - const T0__& x) const - { - return f5_lp_L45C9_impl__(x, lp__, lp_accum__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f5_lp_L45C9_cfunctor__; - using CopyOf__ = f5_lp_L45C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f5_lp_L45C9_make__() { -return f5_lp_L45C9_cfunctor__(); -} - -template -stan::promote_args_t -foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) ; - -class foo_lp_L29C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_lp_L29C9_cfunctor__(const foo_lp_L29C9_cfunctor__&) = default ; - foo_lp_L29C9_cfunctor__(foo_lp_L29C9_cfunctor__&&) = default ; - foo_lp_L29C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, - const T0__& bar_lp) const - { - return foo_lp_L29C9_impl__(bar_lp, lp__, lp_accum__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_lp_L29C9_cfunctor__; - using CopyOf__ = foo_lp_L29C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_lp_L29C9_make__() { -return foo_lp_L29C9_cfunctor__(); -} - -template -stan::promote_args_t -foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) ; - -class foo_lpdf_L25C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_lpdf_L25C9_cfunctor__(const foo_lpdf_L25C9_cfunctor__&) = default ; - foo_lpdf_L25C9_cfunctor__(foo_lpdf_L25C9_cfunctor__&&) = default ; - foo_lpdf_L25C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& zz, const T1__& bar_lpdf) const - { - return foo_lpdf_L25C9_impl__(zz, bar_lpdf, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_lpdf_L25C9_cfunctor__; - using CopyOf__ = foo_lpdf_L25C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto foo_lpdf_L25C9_make__() { -return foo_lpdf_L25C9_cfunctor__(); -} - -template -stan::promote_args_t -foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, - std::ostream* pstream__) ; - -class foo_rng_L21C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_rng_L21C9_cfunctor__(const foo_rng_L21C9_cfunctor__&) = default ; - foo_rng_L21C9_cfunctor__(foo_rng_L21C9_cfunctor__&&) = default ; - foo_rng_L21C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& bar_lpdf) const - { - return foo_rng_L21C9_impl__(bar_lpdf, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_rng_L21C9_cfunctor__; - using CopyOf__ = foo_rng_L21C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_rng_L21C9_make__() { -return foo_rng_L21C9_cfunctor__(); -} - -template -void -hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, - std::ostream* pstream__) ; - -class hof_L17C9_cfunctor__ { - - public: - const size_t vars_count__; - hof_L17C9_cfunctor__(const hof_L17C9_cfunctor__&) = default ; - hof_L17C9_cfunctor__(hof_L17C9_cfunctor__&&) = default ; - hof_L17C9_cfunctor__() - : vars_count__(count_vars()) {} - template - void - operator()(std::ostream* pstream__, const T0__& s_rng, const T1__& s_lpdf, - const T2__& s_lp) const - { - return hof_L17C9_impl__(s_rng, s_lpdf, s_lp, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = hof_L17C9_cfunctor__; - using CopyOf__ = hof_L17C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto hof_L17C9_make__() { -return hof_L17C9_cfunctor__(); -} - -template -stan::promote_args_t -ff_lpdf(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 13; - s = std_normal_lpdf(0); - current_statement__ = 14; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 16; - s = std_normal_rng(base_rng__); - current_statement__ = 17; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 19; - s = get_lp(lp__, lp_accum__); - current_statement__ = 20; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 22; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 24; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 26; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 28; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 30; - return bar_lp.template operator()(lp__, lp_accum__, pstream__, - 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 32; - return bar_lpdf.template operator()(pstream__, 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 34; - return bar_lpdf.template operator()(pstream__, 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -void -hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class closures7_model final : public model_base_crtp { - - private: - double z; - - - public: - ~closures7_model() { } - - inline std::string model_name() const final { return "closures7_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - closures7_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures7_model_namespace::closures7_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - - current_statement__ = 1; - auto hof = hof_L17C9_make__(); - current_statement__ = 11; - hof(pstream__, rng_from_lambda(ff_rng_functor__()), - lpdf_from_lambda(ff_lpdf_functor__()), - lp_from_lambda(ff_lp_functor__())); - - current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); - - current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); - - current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); - - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); - current_statement__ = 12; - z = std::numeric_limits::quiet_NaN(); - - current_statement__ = 12; - z = foo_rng(base_rng__, pstream__, - f3_lpdf.template with_propto()); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 0U; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures7_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - - current_statement__ = 1; - auto hof = hof_L17C9_make__(); - - current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); - - current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); - - current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); - - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 9; - s = foo_lp.template operator()(lp__, lp_accum__, pstream__, - f5_lp); - { - current_statement__ = 10; - lp_accum__.add( - foo_lpdf.template operator()(pstream__, 1, - f3_lpdf.template with_propto())); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures7_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - - current_statement__ = 1; - auto hof = hof_L17C9_make__(); - - current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); - - current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); - - current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); - - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); - double s; - s = std::numeric_limits::quiet_NaN(); - - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 9; - s = foo_lp.template operator()(lp__, lp_accum__, pstream__, - f5_lp); - if (emit_transformed_parameters__) { - vars__.emplace_back(s); - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - - current_statement__ = 1; - auto hof = hof_L17C9_make__(); - - current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); - - current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); - - current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); - - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"s"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - - if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "s"); - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - - if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "s"); - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = closures7_model_namespace::closures7_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return closures7_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp eight_schools_ncp.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace eight_schools_ncp_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'eight_schools_ncp.stan', line 8, column 2 to column 10)", - " (in 'eight_schools_ncp.stan', line 9, column 2 to column 20)", - " (in 'eight_schools_ncp.stan', line 10, column 2 to column 24)", - " (in 'eight_schools_ncp.stan', line 14, column 2 to column 43)", - " (in 'eight_schools_ncp.stan', line 18, column 2 to column 20)", - " (in 'eight_schools_ncp.stan', line 19, column 2 to column 21)", - " (in 'eight_schools_ncp.stan', line 20, column 2 to column 29)", - " (in 'eight_schools_ncp.stan', line 21, column 2 to column 27)", - " (in 'eight_schools_ncp.stan', line 2, column 2 to column 17)", - " (in 'eight_schools_ncp.stan', line 3, column 9 to column 10)", - " (in 'eight_schools_ncp.stan', line 3, column 2 to column 12)", - " (in 'eight_schools_ncp.stan', line 4, column 22 to column 23)", - " (in 'eight_schools_ncp.stan', line 4, column 2 to column 25)", - " (in 'eight_schools_ncp.stan', line 10, column 9 to column 10)", - " (in 'eight_schools_ncp.stan', line 14, column 9 to column 10)"}; - - - -class eight_schools_ncp_model final : public model_base_crtp { - - private: - int J; - std::vector y; - std::vector sigma; - - - public: - ~eight_schools_ncp_model() { } - - inline std::string model_name() const final { return "eight_schools_ncp_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - eight_schools_ncp_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "eight_schools_ncp_model_namespace::eight_schools_ncp_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 9; - context__.validate_dims("data initialization","J","int", - std::vector{}); - J = std::numeric_limits::min(); - - current_statement__ = 9; - J = context__.vals_i("J")[(1 - 1)]; - current_statement__ = 9; - check_greater_or_equal(function__, "J", J, 0); - current_statement__ = 10; - validate_non_negative_index("y", "J", J); - current_statement__ = 11; - context__.validate_dims("data initialization","y","double", - std::vector{static_cast(J)}); - y = std::vector(J, std::numeric_limits::quiet_NaN()); - - current_statement__ = 11; - y = context__.vals_r("y"); - current_statement__ = 12; - validate_non_negative_index("sigma", "J", J); - current_statement__ = 13; - context__.validate_dims("data initialization","sigma","double", - std::vector{static_cast(J)}); - sigma = std::vector(J, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 13; - sigma = context__.vals_r("sigma"); - current_statement__ = 13; - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - current_statement__ = 13; - check_greater_or_equal(function__, "sigma[sym1__]", - sigma[(sym1__ - 1)], 0); - } - current_statement__ = 14; - validate_non_negative_index("theta_tilde", "J", J); - current_statement__ = 15; - validate_non_negative_index("theta", "J", J); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 1 + 1 + J; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "eight_schools_ncp_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - local_scalar_t__ mu; - mu = DUMMY_VAR__; - - current_statement__ = 1; - mu = in__.template read(); - local_scalar_t__ tau; - tau = DUMMY_VAR__; - - current_statement__ = 2; - tau = in__.template read_constrain_lb(0, - lp__); - Eigen::Matrix theta_tilde; - theta_tilde = Eigen::Matrix(J); - stan::math::fill(theta_tilde, DUMMY_VAR__); - - current_statement__ = 3; - theta_tilde = in__.template read>( - J); - Eigen::Matrix theta; - theta = Eigen::Matrix(J); - stan::math::fill(theta, DUMMY_VAR__); - - current_statement__ = 4; - assign(theta, add(mu, multiply(tau, theta_tilde)), - "assigning variable theta"); - { - current_statement__ = 5; - lp_accum__.add(normal_lpdf(mu, 0, 5)); - current_statement__ = 6; - lp_accum__.add(normal_lpdf(tau, 0, 5)); - current_statement__ = 7; - lp_accum__.add(normal_lpdf(theta_tilde, 0, 1)); - current_statement__ = 8; - lp_accum__.add(normal_lpdf(y, theta, sigma)); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "eight_schools_ncp_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - double mu; - mu = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - mu = in__.template read(); - double tau; - tau = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - tau = in__.template read_constrain_lb(0, - lp__); - Eigen::Matrix theta_tilde; - theta_tilde = Eigen::Matrix(J); - stan::math::fill(theta_tilde, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - theta_tilde = in__.template read>( - J); - Eigen::Matrix theta; - theta = Eigen::Matrix(J); - stan::math::fill(theta, std::numeric_limits::quiet_NaN()); - - vars__.emplace_back(mu); - vars__.emplace_back(tau); - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - vars__.emplace_back(theta_tilde[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 4; - assign(theta, add(mu, multiply(tau, theta_tilde)), - "assigning variable theta"); - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - vars__.emplace_back(theta[(sym1__ - 1)]); - } - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - double mu; - mu = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - mu = context__.vals_r("mu")[(1 - 1)]; - double tau; - tau = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - tau = context__.vals_r("tau")[(1 - 1)]; - double tau_free__; - tau_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - tau_free__ = stan::math::lb_free(tau, 0); - Eigen::Matrix theta_tilde; - theta_tilde = Eigen::Matrix(J); - stan::math::fill(theta_tilde, std::numeric_limits::quiet_NaN()); - - { - std::vector theta_tilde_flat__; - current_statement__ = 3; - theta_tilde_flat__ = context__.vals_r("theta_tilde"); - current_statement__ = 3; - pos__ = 1; - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - current_statement__ = 3; - assign(theta_tilde, theta_tilde_flat__[(pos__ - 1)], - "assigning variable theta_tilde", index_uni(sym1__)); - current_statement__ = 3; - pos__ = (pos__ + 1); - } - } - vars__.emplace_back(mu); - vars__.emplace_back(tau_free__); - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - vars__.emplace_back(theta_tilde[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"mu", "tau", "theta_tilde", "theta"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}, - std::vector{}, std::vector{static_cast(J)}, - std::vector{static_cast(J)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "mu"); - param_names__.emplace_back(std::string() + "tau"); - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_tilde" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta" + '.' + std::to_string(sym1__)); - } - } - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "mu"); - param_names__.emplace_back(std::string() + "tau"); - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_tilde" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= J; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta" + '.' + std::to_string(sym1__)); - } - } - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"tau\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"theta_tilde\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"parameters\"},{\"name\":\"theta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"transformed_parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"tau\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"theta_tilde\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"parameters\"},{\"name\":\"theta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(J) + "},\"block\":\"transformed_parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} - -using stan_model = eight_schools_ncp_model_namespace::eight_schools_ncp_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return eight_schools_ncp_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp mixed_type_arrays.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace mixed_type_arrays_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'mixed_type_arrays.stan', line 5, column 2 to column 13)", - " (in 'mixed_type_arrays.stan', line 8, column 2 to column 26)", - " (in 'mixed_type_arrays.stan', line 9, column 2 to column 34)", - " (in 'mixed_type_arrays.stan', line 10, column 2 to line 13, column 25)", - " (in 'mixed_type_arrays.stan', line 2, column 2 to column 12)"}; - - - -class mixed_type_arrays_model final : public model_base_crtp { - - private: - std::vector x; - - - public: - ~mixed_type_arrays_model() { } - - inline std::string model_name() const final { return "mixed_type_arrays_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - mixed_type_arrays_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "mixed_type_arrays_model_namespace::mixed_type_arrays_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 5; - x = std::vector(3, std::numeric_limits::quiet_NaN()); - - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 3; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "mixed_type_arrays_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - std::vector xx; - xx = std::vector(3, DUMMY_VAR__); - - current_statement__ = 1; - xx = in__.template read>(3); - std::vector> y; - y = std::vector>(3, std::vector(3, DUMMY_VAR__)); - - - current_statement__ = 2; - assign(y, std::vector>{ - stan::math::promote_scalar(x), xx, xx}, - "assigning variable y"); - std::vector> w; - w = std::vector>(3, std::vector(3, DUMMY_VAR__)); - - - current_statement__ = 3; - assign(w, std::vector>{ - std::vector{ - stan::math::promote_scalar(1.0), - stan::math::promote_scalar(2), - stan::math::promote_scalar(3)}, xx, xx}, - "assigning variable w"); - std::vector> td_arr33; - td_arr33 = std::vector>(3, std::vector(3, DUMMY_VAR__)); - - - current_statement__ = 4; - assign(td_arr33, std::vector>{std::vector{ - stan::math::promote_scalar(1), - stan::math::promote_scalar(2), - stan::math::promote_scalar(3)}, std::vector{ - stan::math::promote_scalar(1), 2., - stan::math::promote_scalar(3)}, std::vector{1., 2., - stan::math::promote_scalar(3)}}, - "assigning variable td_arr33"); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "mixed_type_arrays_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - std::vector xx; - xx = std::vector(3, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - xx = in__.template read>(3); - std::vector> y; - y = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); - - - std::vector> w; - w = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); - - - std::vector> td_arr33; - td_arr33 = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); - - - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(xx[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 2; - assign(y, std::vector>{ - stan::math::promote_scalar(x), xx, xx}, - "assigning variable y"); - current_statement__ = 3; - assign(w, std::vector>{ - std::vector{ - stan::math::promote_scalar(1.0), - stan::math::promote_scalar(2), - stan::math::promote_scalar(3)}, xx, xx}, - "assigning variable w"); - current_statement__ = 4; - assign(td_arr33, std::vector>{std::vector{ - stan::math::promote_scalar(1), - stan::math::promote_scalar(2), - stan::math::promote_scalar(3)}, std::vector{ - stan::math::promote_scalar(1), 2., - stan::math::promote_scalar(3)}, std::vector{1., 2., - stan::math::promote_scalar(3)}}, - "assigning variable td_arr33"); - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back(y[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back(w[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back(td_arr33[(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - std::vector xx; - xx = std::vector(3, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - xx = context__.vals_r("xx"); - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(xx[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"xx", "y", "w", "td_arr33"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{ - static_cast(3) - }, - std::vector{static_cast(3), static_cast(3)}, - std::vector{static_cast(3), static_cast(3)}, - std::vector{static_cast(3), static_cast(3)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "xx" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "w" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "td_arr33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "xx" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "w" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "td_arr33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"xx\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"td_arr33\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"xx\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"w\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"},{\"name\":\"td_arr33\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} - -using stan_model = mixed_type_arrays_model_namespace::mixed_type_arrays_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return mixed_type_arrays_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp mother.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace mother_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'mother.stan', line 555, column 2 to column 14)", - " (in 'mother.stan', line 556, column 2 to column 29)", - " (in 'mother.stan', line 557, column 2 to column 30)", - " (in 'mother.stan', line 558, column 2 to column 52)", - " (in 'mother.stan', line 559, column 2 to column 45)", - " (in 'mother.stan', line 560, column 2 to column 41)", - " (in 'mother.stan', line 561, column 2 to column 32)", - " (in 'mother.stan', line 562, column 2 to column 36)", - " (in 'mother.stan', line 563, column 2 to column 27)", - " (in 'mother.stan', line 564, column 2 to column 24)", - " (in 'mother.stan', line 565, column 2 to column 28)", - " (in 'mother.stan', line 566, column 2 to column 26)", - " (in 'mother.stan', line 567, column 2 to column 32)", - " (in 'mother.stan', line 568, column 2 to column 36)", - " (in 'mother.stan', line 569, column 2 to column 21)", - " (in 'mother.stan', line 570, column 2 to column 45)", - " (in 'mother.stan', line 571, column 2 to column 23)", - " (in 'mother.stan', line 572, column 2 to column 29)", - " (in 'mother.stan', line 573, column 2 to column 33)", - " (in 'mother.stan', line 574, column 2 to column 38)", - " (in 'mother.stan', line 575, column 2 to column 36)", - " (in 'mother.stan', line 576, column 2 to column 42)", - " (in 'mother.stan', line 577, column 2 to column 16)", - " (in 'mother.stan', line 578, column 2 to column 16)", - " (in 'mother.stan', line 581, column 2 to column 33)", - " (in 'mother.stan', line 582, column 2 to column 37)", - " (in 'mother.stan', line 583, column 2 to column 28)", - " (in 'mother.stan', line 584, column 2 to column 25)", - " (in 'mother.stan', line 585, column 2 to column 29)", - " (in 'mother.stan', line 586, column 2 to column 27)", - " (in 'mother.stan', line 587, column 2 to column 33)", - " (in 'mother.stan', line 588, column 2 to column 37)", - " (in 'mother.stan', line 589, column 2 to column 22)", - " (in 'mother.stan', line 590, column 2 to column 46)", - " (in 'mother.stan', line 591, column 2 to column 24)", - " (in 'mother.stan', line 592, column 2 to column 30)", - " (in 'mother.stan', line 593, column 2 to column 34)", - " (in 'mother.stan', line 594, column 2 to column 39)", - " (in 'mother.stan', line 595, column 2 to column 37)", - " (in 'mother.stan', line 596, column 2 to column 43)", - " (in 'mother.stan', line 597, column 2 to column 20)", - " (in 'mother.stan', line 598, column 2 to column 15)", - " (in 'mother.stan', line 600, column 2 to column 31)", - " (in 'mother.stan', line 601, column 2 to column 31)", - " (in 'mother.stan', line 602, column 2 to column 23)", - " (in 'mother.stan', line 603, column 2 to column 23)", - " (in 'mother.stan', line 605, column 2 to column 25)", - " (in 'mother.stan', line 606, column 2 to column 31)", - " (in 'mother.stan', line 607, column 2 to column 31)", - " (in 'mother.stan', line 609, column 2 to column 27)", - " (in 'mother.stan', line 610, column 2 to column 27)", - " (in 'mother.stan', line 611, column 2 to column 33)", - " (in 'mother.stan', line 613, column 2 to column 41)", - " (in 'mother.stan', line 614, column 2 to column 36)", - " (in 'mother.stan', line 620, column 10 to column 38)", - " (in 'mother.stan', line 619, column 23 to line 620, column 39)", - " (in 'mother.stan', line 619, column 8 to line 620, column 39)", - " (in 'mother.stan', line 618, column 21 to line 620, column 40)", - " (in 'mother.stan', line 618, column 6 to line 620, column 40)", - " (in 'mother.stan', line 617, column 19 to line 620, column 41)", - " (in 'mother.stan', line 617, column 4 to line 620, column 41)", - " (in 'mother.stan', line 616, column 17 to line 620, column 42)", - " (in 'mother.stan', line 616, column 2 to line 620, column 42)", - " (in 'mother.stan', line 622, column 17 to column 45)", - " (in 'mother.stan', line 622, column 2 to column 45)", - " (in 'mother.stan', line 623, column 2 to column 29)", - " (in 'mother.stan', line 624, column 2 to column 31)", - " (in 'mother.stan', line 625, column 2 to column 31)", - " (in 'mother.stan', line 627, column 2 to column 63)", - " (in 'mother.stan', line 628, column 2 to column 79)", - " (in 'mother.stan', line 629, column 2 to column 81)", - " (in 'mother.stan', line 630, column 2 to column 65)", - " (in 'mother.stan', line 631, column 2 to column 81)", - " (in 'mother.stan', line 632, column 2 to column 67)", - " (in 'mother.stan', line 633, column 2 to column 83)", - " (in 'mother.stan', line 635, column 2 to column 29)", - " (in 'mother.stan', line 636, column 2 to column 29)", - " (in 'mother.stan', line 680, column 2 to column 32)", - " (in 'mother.stan', line 681, column 2 to column 27)", - " (in 'mother.stan', line 682, column 2 to column 35)", - " (in 'mother.stan', line 683, column 2 to column 39)", - " (in 'mother.stan', line 684, column 2 to column 28)", - " (in 'mother.stan', line 685, column 2 to column 25)", - " (in 'mother.stan', line 686, column 2 to column 29)", - " (in 'mother.stan', line 687, column 2 to column 27)", - " (in 'mother.stan', line 688, column 2 to column 33)", - " (in 'mother.stan', line 689, column 2 to column 37)", - " (in 'mother.stan', line 690, column 2 to column 46)", - " (in 'mother.stan', line 691, column 2 to column 24)", - " (in 'mother.stan', line 692, column 2 to column 30)", - " (in 'mother.stan', line 693, column 2 to column 34)", - " (in 'mother.stan', line 694, column 2 to column 39)", - " (in 'mother.stan', line 695, column 2 to column 37)", - " (in 'mother.stan', line 696, column 2 to column 43)", - " (in 'mother.stan', line 697, column 2 to column 29)", - " (in 'mother.stan', line 698, column 2 to column 31)", - " (in 'mother.stan', line 699, column 2 to column 27)", - " (in 'mother.stan', line 700, column 2 to column 27)", - " (in 'mother.stan', line 701, column 2 to column 27)", - " (in 'mother.stan', line 702, column 2 to column 28)", - " (in 'mother.stan', line 703, column 2 to column 28)", - " (in 'mother.stan', line 704, column 2 to column 28)", - " (in 'mother.stan', line 705, column 2 to column 28)", - " (in 'mother.stan', line 706, column 2 to column 24)", - " (in 'mother.stan', line 708, column 2 to column 35)", - " (in 'mother.stan', line 709, column 2 to column 31)", - " (in 'mother.stan', line 710, column 2 to column 23)", - " (in 'mother.stan', line 711, column 2 to column 23)", - " (in 'mother.stan', line 712, column 2 to column 25)", - " (in 'mother.stan', line 713, column 2 to column 31)", - " (in 'mother.stan', line 714, column 2 to column 31)", - " (in 'mother.stan', line 716, column 2 to column 35)", - " (in 'mother.stan', line 717, column 2 to column 31)", - " (in 'mother.stan', line 718, column 2 to column 31)", - " (in 'mother.stan', line 720, column 2 to column 27)", - " (in 'mother.stan', line 721, column 2 to column 27)", - " (in 'mother.stan', line 722, column 2 to column 33)", - " (in 'mother.stan', line 728, column 10 to column 38)", - " (in 'mother.stan', line 727, column 23 to line 728, column 39)", - " (in 'mother.stan', line 727, column 8 to line 728, column 39)", - " (in 'mother.stan', line 726, column 21 to line 728, column 40)", - " (in 'mother.stan', line 726, column 6 to line 728, column 40)", - " (in 'mother.stan', line 725, column 19 to line 728, column 41)", - " (in 'mother.stan', line 725, column 4 to line 728, column 41)", - " (in 'mother.stan', line 724, column 17 to line 728, column 42)", - " (in 'mother.stan', line 724, column 2 to line 728, column 42)", - " (in 'mother.stan', line 730, column 17 to column 45)", - " (in 'mother.stan', line 730, column 2 to column 45)", - " (in 'mother.stan', line 736, column 8 to column 49)", - " (in 'mother.stan', line 735, column 6 to line 736, column 49)", - " (in 'mother.stan', line 734, column 4 to line 736, column 49)", - " (in 'mother.stan', line 733, column 2 to line 736, column 49)", - " (in 'mother.stan', line 741, column 6 to column 60)", - " (in 'mother.stan', line 740, column 4 to line 741, column 60)", - " (in 'mother.stan', line 739, column 2 to line 741, column 60)", - " (in 'mother.stan', line 743, column 2 to column 45)", - " (in 'mother.stan', line 744, column 64 to column 97)", - " (in 'mother.stan', line 744, column 2 to column 97)", - " (in 'mother.stan', line 749, column 6 to column 51)", - " (in 'mother.stan', line 748, column 4 to line 749, column 51)", - " (in 'mother.stan', line 747, column 2 to line 749, column 51)", - " (in 'mother.stan', line 750, column 2 to column 39)", - " (in 'mother.stan', line 752, column 58 to column 91)", - " (in 'mother.stan', line 752, column 2 to column 91)", - " (in 'mother.stan', line 758, column 8 to column 68)", - " (in 'mother.stan', line 757, column 6 to line 758, column 68)", - " (in 'mother.stan', line 756, column 4 to line 758, column 68)", - " (in 'mother.stan', line 755, column 2 to line 758, column 68)", - " (in 'mother.stan', line 759, column 2 to column 48)", - " (in 'mother.stan', line 760, column 67 to column 100)", - " (in 'mother.stan', line 760, column 2 to column 100)", - " (in 'mother.stan', line 762, column 2 to column 36)", - " (in 'mother.stan', line 763, column 2 to column 38)", - " (in 'mother.stan', line 639, column 2 to column 16)", - " (in 'mother.stan', line 640, column 2 to column 20)", - " (in 'mother.stan', line 641, column 2 to column 29)", - " (in 'mother.stan', line 642, column 2 to column 24)", - " (in 'mother.stan', line 643, column 2 to column 23)", - " (in 'mother.stan', line 644, column 2 to column 35)", - " (in 'mother.stan', line 646, column 2 to column 38)", - " (in 'mother.stan', line 647, column 2 to column 38)", - " (in 'mother.stan', line 649, column 2 to column 41)", - " (in 'mother.stan', line 651, column 4 to column 42)", - " (in 'mother.stan', line 652, column 4 to column 46)", - " (in 'mother.stan', line 653, column 4 to column 46)", - " (in 'mother.stan', line 656, column 8 to column 68)", - " (in 'mother.stan', line 657, column 8 to column 76)", - " (in 'mother.stan', line 658, column 8 to column 76)", - " (in 'mother.stan', line 659, column 8 to column 65)", - " (in 'mother.stan', line 655, column 21 to line 660, column 7)", - " (in 'mother.stan', line 655, column 6 to line 660, column 7)", - " (in 'mother.stan', line 654, column 19 to line 661, column 5)", - " (in 'mother.stan', line 654, column 4 to line 661, column 5)", - " (in 'mother.stan', line 650, column 17 to line 662, column 3)", - " (in 'mother.stan', line 650, column 2 to line 662, column 3)", - " (in 'mother.stan', line 665, column 6 to column 47)", - " (in 'mother.stan', line 664, column 19 to line 666, column 5)", - " (in 'mother.stan', line 664, column 4 to line 666, column 5)", - " (in 'mother.stan', line 663, column 17 to line 667, column 3)", - " (in 'mother.stan', line 663, column 2 to line 667, column 3)", - " (in 'mother.stan', line 669, column 4 to column 47)", - " (in 'mother.stan', line 668, column 17 to line 670, column 3)", - " (in 'mother.stan', line 668, column 2 to line 670, column 3)", - " (in 'mother.stan', line 671, column 2 to column 38)", - " (in 'mother.stan', line 672, column 2 to column 38)", - " (in 'mother.stan', line 673, column 2 to column 38)", - " (in 'mother.stan', line 674, column 2 to column 39)", - " (in 'mother.stan', line 675, column 2 to column 39)", - " (in 'mother.stan', line 677, column 2 to column 53)", - " (in 'mother.stan', line 316, column 2 to column 17)", - " (in 'mother.stan', line 317, column 2 to column 17)", - " (in 'mother.stan', line 318, column 2 to column 28)", - " (in 'mother.stan', line 319, column 27 to column 28)", - " (in 'mother.stan', line 319, column 2 to column 30)", - " (in 'mother.stan', line 320, column 27 to column 28)", - " (in 'mother.stan', line 320, column 29 to column 30)", - " (in 'mother.stan', line 320, column 31 to column 32)", - " (in 'mother.stan', line 320, column 2 to column 34)", - " (in 'mother.stan', line 321, column 2 to column 32)", - " (in 'mother.stan', line 322, column 20 to column 21)", - " (in 'mother.stan', line 322, column 2 to column 23)", - " (in 'mother.stan', line 323, column 20 to column 21)", - " (in 'mother.stan', line 323, column 22 to column 23)", - " (in 'mother.stan', line 323, column 24 to column 25)", - " (in 'mother.stan', line 323, column 2 to column 27)", - " (in 'mother.stan', line 324, column 9 to column 10)", - " (in 'mother.stan', line 324, column 2 to column 18)", - " (in 'mother.stan', line 325, column 21 to column 22)", - " (in 'mother.stan', line 325, column 9 to column 10)", - " (in 'mother.stan', line 325, column 2 to column 24)", - " (in 'mother.stan', line 326, column 21 to column 22)", - " (in 'mother.stan', line 326, column 23 to column 24)", - " (in 'mother.stan', line 326, column 25 to column 26)", - " (in 'mother.stan', line 326, column 9 to column 10)", - " (in 'mother.stan', line 326, column 2 to column 28)", - " (in 'mother.stan', line 327, column 13 to column 14)", - " (in 'mother.stan', line 327, column 2 to column 26)", - " (in 'mother.stan', line 328, column 29 to column 30)", - " (in 'mother.stan', line 328, column 13 to column 14)", - " (in 'mother.stan', line 328, column 2 to column 32)", - " (in 'mother.stan', line 329, column 29 to column 30)", - " (in 'mother.stan', line 329, column 31 to column 32)", - " (in 'mother.stan', line 329, column 33 to column 34)", - " (in 'mother.stan', line 329, column 13 to column 14)", - " (in 'mother.stan', line 329, column 2 to column 36)", - " (in 'mother.stan', line 330, column 2 to column 45)", - " (in 'mother.stan', line 331, column 10 to column 11)", - " (in 'mother.stan', line 331, column 2 to column 23)", - " (in 'mother.stan', line 332, column 26 to column 27)", - " (in 'mother.stan', line 332, column 10 to column 11)", - " (in 'mother.stan', line 332, column 2 to column 29)", - " (in 'mother.stan', line 333, column 26 to column 27)", - " (in 'mother.stan', line 333, column 28 to column 29)", - " (in 'mother.stan', line 333, column 30 to column 31)", - " (in 'mother.stan', line 333, column 10 to column 11)", - " (in 'mother.stan', line 333, column 2 to column 33)", - " (in 'mother.stan', line 334, column 2 to column 38)", - " (in 'mother.stan', line 335, column 2 to column 36)", - " (in 'mother.stan', line 336, column 39 to column 40)", - " (in 'mother.stan', line 336, column 2 to column 42)", - " (in 'mother.stan', line 337, column 2 to column 12)", - " (in 'mother.stan', line 338, column 18 to column 23)", - " (in 'mother.stan', line 338, column 2 to column 25)", - " (in 'mother.stan', line 339, column 21 to column 26)", - " (in 'mother.stan', line 339, column 2 to column 30)", - " (in 'mother.stan', line 340, column 21 to column 26)", - " (in 'mother.stan', line 340, column 2 to column 32)", - " (in 'mother.stan', line 341, column 2 to column 14)", - " (in 'mother.stan', line 342, column 20 to column 25)", - " (in 'mother.stan', line 342, column 2 to column 27)", - " (in 'mother.stan', line 343, column 23 to column 28)", - " (in 'mother.stan', line 343, column 2 to column 32)", - " (in 'mother.stan', line 344, column 23 to column 28)", - " (in 'mother.stan', line 344, column 2 to column 34)", - " (in 'mother.stan', line 345, column 9 to column 14)", - " (in 'mother.stan', line 345, column 15 to column 20)", - " (in 'mother.stan', line 345, column 2 to column 31)", - " (in 'mother.stan', line 346, column 37 to column 42)", - " (in 'mother.stan', line 346, column 9 to column 14)", - " (in 'mother.stan', line 346, column 15 to column 20)", - " (in 'mother.stan', line 346, column 2 to column 44)", - " (in 'mother.stan', line 347, column 40 to column 45)", - " (in 'mother.stan', line 347, column 9 to column 14)", - " (in 'mother.stan', line 347, column 15 to column 20)", - " (in 'mother.stan', line 347, column 2 to column 49)", - " (in 'mother.stan', line 348, column 40 to column 45)", - " (in 'mother.stan', line 348, column 9 to column 14)", - " (in 'mother.stan', line 348, column 15 to column 20)", - " (in 'mother.stan', line 348, column 2 to column 51)", - " (in 'mother.stan', line 349, column 9 to column 14)", - " (in 'mother.stan', line 349, column 2 to column 25)", - " (in 'mother.stan', line 350, column 31 to column 36)", - " (in 'mother.stan', line 350, column 9 to column 14)", - " (in 'mother.stan', line 350, column 2 to column 38)", - " (in 'mother.stan', line 351, column 34 to column 39)", - " (in 'mother.stan', line 351, column 9 to column 14)", - " (in 'mother.stan', line 351, column 2 to column 43)", - " (in 'mother.stan', line 352, column 34 to column 39)", - " (in 'mother.stan', line 352, column 9 to column 14)", - " (in 'mother.stan', line 352, column 2 to column 45)", - " (in 'mother.stan', line 353, column 13 to column 18)", - " (in 'mother.stan', line 353, column 2 to column 33)", - " (in 'mother.stan', line 354, column 39 to column 44)", - " (in 'mother.stan', line 354, column 13 to column 18)", - " (in 'mother.stan', line 354, column 2 to column 46)", - " (in 'mother.stan', line 355, column 42 to column 47)", - " (in 'mother.stan', line 355, column 13 to column 18)", - " (in 'mother.stan', line 355, column 2 to column 51)", - " (in 'mother.stan', line 356, column 42 to column 47)", - " (in 'mother.stan', line 356, column 13 to column 18)", - " (in 'mother.stan', line 356, column 2 to column 53)", - " (in 'mother.stan', line 359, column 2 to column 13)", - " (in 'mother.stan', line 360, column 12 to column 13)", - " (in 'mother.stan', line 360, column 2 to column 15)", - " (in 'mother.stan', line 361, column 13 to column 14)", - " (in 'mother.stan', line 361, column 2 to column 34)", - " (in 'mother.stan', line 362, column 2 to column 15)", - " (in 'mother.stan', line 363, column 2 to column 20)", - " (in 'mother.stan', line 364, column 2 to column 29)", - " (in 'mother.stan', line 365, column 2 to column 46)", - " (in 'mother.stan', line 366, column 10 to column 11)", - " (in 'mother.stan', line 366, column 2 to column 24)", - " (in 'mother.stan', line 367, column 27 to column 28)", - " (in 'mother.stan', line 367, column 10 to column 11)", - " (in 'mother.stan', line 367, column 2 to column 30)", - " (in 'mother.stan', line 368, column 27 to column 28)", - " (in 'mother.stan', line 368, column 29 to column 30)", - " (in 'mother.stan', line 368, column 31 to column 32)", - " (in 'mother.stan', line 368, column 10 to column 11)", - " (in 'mother.stan', line 368, column 2 to column 34)", - " (in 'mother.stan', line 369, column 2 to column 39)", - " (in 'mother.stan', line 370, column 2 to column 37)", - " (in 'mother.stan', line 371, column 2 to column 14)", - " (in 'mother.stan', line 372, column 2 to column 14)", - " (in 'mother.stan', line 373, column 2 to column 14)", - " (in 'mother.stan', line 374, column 2 to column 17)", - " (in 'mother.stan', line 375, column 2 to column 17)", - " (in 'mother.stan', line 376, column 2 to column 16)", - " (in 'mother.stan', line 377, column 2 to column 18)", - " (in 'mother.stan', line 378, column 2 to column 18)", - " (in 'mother.stan', line 383, column 10 to column 38)", - " (in 'mother.stan', line 382, column 23 to line 383, column 39)", - " (in 'mother.stan', line 382, column 8 to line 383, column 39)", - " (in 'mother.stan', line 381, column 21 to line 383, column 40)", - " (in 'mother.stan', line 381, column 6 to line 383, column 40)", - " (in 'mother.stan', line 380, column 19 to line 383, column 41)", - " (in 'mother.stan', line 380, column 4 to line 383, column 41)", - " (in 'mother.stan', line 379, column 17 to line 383, column 42)", - " (in 'mother.stan', line 379, column 2 to line 383, column 42)", - " (in 'mother.stan', line 385, column 4 to column 28)", - " (in 'mother.stan', line 387, column 6 to column 36)", - " (in 'mother.stan', line 390, column 10 to column 46)", - " (in 'mother.stan', line 389, column 23 to line 390, column 47)", - " (in 'mother.stan', line 389, column 8 to line 390, column 47)", - " (in 'mother.stan', line 388, column 21 to line 390, column 48)", - " (in 'mother.stan', line 388, column 6 to line 390, column 48)", - " (in 'mother.stan', line 386, column 19 to line 390, column 49)", - " (in 'mother.stan', line 386, column 4 to line 390, column 49)", - " (in 'mother.stan', line 384, column 17 to line 390, column 50)", - " (in 'mother.stan', line 384, column 2 to line 390, column 50)", - " (in 'mother.stan', line 393, column 6 to column 40)", - " (in 'mother.stan', line 394, column 6 to column 63)", - " (in 'mother.stan', line 392, column 19 to line 395, column 5)", - " (in 'mother.stan', line 392, column 4 to line 395, column 5)", - " (in 'mother.stan', line 391, column 17 to line 395, column 6)", - " (in 'mother.stan', line 391, column 2 to line 395, column 6)", - " (in 'mother.stan', line 396, column 2 to column 62)", - " (in 'mother.stan', line 397, column 2 to column 62)", - " (in 'mother.stan', line 399, column 4 to column 11)", - " (in 'mother.stan', line 400, column 4 to column 35)", - " (in 'mother.stan', line 401, column 4 to line 403, column 5)", - " (in 'mother.stan', line 402, column 6 to column 12)", - " (in 'mother.stan', line 404, column 4 to column 31)", - " (in 'mother.stan', line 405, column 4 to line 407, column 5)", - " (in 'mother.stan', line 406, column 6 to column 12)", - " (in 'mother.stan', line 398, column 2 to line 408, column 3)", - " (in 'mother.stan', line 410, column 2 to column 25)", - " (in 'mother.stan', line 411, column 2 to column 34)", - " (in 'mother.stan', line 412, column 2 to column 33)", - " (in 'mother.stan', line 413, column 2 to column 36)", - " (in 'mother.stan', line 415, column 2 to column 23)", - " (in 'mother.stan', line 416, column 2 to column 30)", - " (in 'mother.stan', line 418, column 2 to column 28)", - " (in 'mother.stan', line 420, column 2 to column 29)", - " (in 'mother.stan', line 421, column 35 to column 40)", - " (in 'mother.stan', line 421, column 2 to column 42)", - " (in 'mother.stan', line 422, column 38 to column 43)", - " (in 'mother.stan', line 422, column 2 to column 47)", - " (in 'mother.stan', line 423, column 38 to column 43)", - " (in 'mother.stan', line 423, column 2 to column 49)", - " (in 'mother.stan', line 424, column 9 to column 14)", - " (in 'mother.stan', line 424, column 15 to column 20)", - " (in 'mother.stan', line 424, column 2 to column 46)", - " (in 'mother.stan', line 425, column 52 to column 57)", - " (in 'mother.stan', line 425, column 9 to column 14)", - " (in 'mother.stan', line 425, column 15 to column 20)", - " (in 'mother.stan', line 425, column 2 to column 59)", - " (in 'mother.stan', line 426, column 55 to column 60)", - " (in 'mother.stan', line 426, column 9 to column 14)", - " (in 'mother.stan', line 426, column 15 to column 20)", - " (in 'mother.stan', line 426, column 2 to column 64)", - " (in 'mother.stan', line 427, column 55 to column 60)", - " (in 'mother.stan', line 427, column 9 to column 14)", - " (in 'mother.stan', line 427, column 15 to column 20)", - " (in 'mother.stan', line 427, column 2 to column 66)", - " (in 'mother.stan', line 428, column 9 to column 14)", - " (in 'mother.stan', line 428, column 2 to column 40)", - " (in 'mother.stan', line 429, column 46 to column 51)", - " (in 'mother.stan', line 429, column 9 to column 14)", - " (in 'mother.stan', line 429, column 2 to column 53)", - " (in 'mother.stan', line 430, column 49 to column 54)", - " (in 'mother.stan', line 430, column 9 to column 14)", - " (in 'mother.stan', line 430, column 2 to column 58)", - " (in 'mother.stan', line 431, column 49 to column 54)", - " (in 'mother.stan', line 431, column 9 to column 14)", - " (in 'mother.stan', line 431, column 2 to column 60)", - " (in 'mother.stan', line 432, column 13 to column 18)", - " (in 'mother.stan', line 432, column 2 to column 48)", - " (in 'mother.stan', line 433, column 54 to column 59)", - " (in 'mother.stan', line 433, column 13 to column 18)", - " (in 'mother.stan', line 433, column 2 to column 61)", - " (in 'mother.stan', line 434, column 57 to column 62)", - " (in 'mother.stan', line 434, column 13 to column 18)", - " (in 'mother.stan', line 434, column 2 to column 66)", - " (in 'mother.stan', line 435, column 57 to column 62)", - " (in 'mother.stan', line 435, column 13 to column 18)", - " (in 'mother.stan', line 435, column 2 to column 68)", - " (in 'mother.stan', line 437, column 2 to column 41)", - " (in 'mother.stan', line 438, column 2 to column 42)", - " (in 'mother.stan', line 439, column 2 to column 42)", - " (in 'mother.stan', line 440, column 2 to column 43)", - " (in 'mother.stan', line 441, column 2 to column 53)", - " (in 'mother.stan', line 442, column 2 to column 54)", - " (in 'mother.stan', line 443, column 2 to column 59)", - " (in 'mother.stan', line 444, column 2 to column 60)", - " (in 'mother.stan', line 445, column 2 to column 59)", - " (in 'mother.stan', line 446, column 2 to column 60)", - " (in 'mother.stan', line 447, column 2 to column 53)", - " (in 'mother.stan', line 448, column 2 to column 54)", - " (in 'mother.stan', line 449, column 2 to column 59)", - " (in 'mother.stan', line 450, column 2 to column 60)", - " (in 'mother.stan', line 451, column 2 to column 59)", - " (in 'mother.stan', line 452, column 2 to column 60)", - " (in 'mother.stan', line 454, column 2 to column 54)", - " (in 'mother.stan', line 455, column 2 to column 55)", - " (in 'mother.stan', line 456, column 2 to column 60)", - " (in 'mother.stan', line 457, column 2 to column 61)", - " (in 'mother.stan', line 458, column 2 to column 60)", - " (in 'mother.stan', line 459, column 2 to column 61)", - " (in 'mother.stan', line 461, column 2 to column 54)", - " (in 'mother.stan', line 462, column 2 to column 55)", - " (in 'mother.stan', line 463, column 2 to column 60)", - " (in 'mother.stan', line 464, column 2 to column 61)", - " (in 'mother.stan', line 465, column 2 to column 60)", - " (in 'mother.stan', line 466, column 2 to column 61)", - " (in 'mother.stan', line 468, column 2 to column 59)", - " (in 'mother.stan', line 469, column 2 to column 61)", - " (in 'mother.stan', line 470, column 2 to column 68)", - " (in 'mother.stan', line 471, column 2 to column 70)", - " (in 'mother.stan', line 472, column 2 to column 68)", - " (in 'mother.stan', line 473, column 2 to column 70)", - " (in 'mother.stan', line 475, column 2 to column 46)", - " (in 'mother.stan', line 476, column 2 to column 47)", - " (in 'mother.stan', line 477, column 2 to column 62)", - " (in 'mother.stan', line 478, column 2 to column 60)", - " (in 'mother.stan', line 479, column 2 to column 58)", - " (in 'mother.stan', line 480, column 2 to column 58)", - " (in 'mother.stan', line 481, column 2 to column 59)", - " (in 'mother.stan', line 482, column 2 to column 64)", - " (in 'mother.stan', line 483, column 2 to column 65)", - " (in 'mother.stan', line 484, column 2 to column 64)", - " (in 'mother.stan', line 485, column 2 to column 65)", - " (in 'mother.stan', line 487, column 2 to column 46)", - " (in 'mother.stan', line 488, column 2 to column 47)", - " (in 'mother.stan', line 489, column 2 to column 58)", - " (in 'mother.stan', line 490, column 2 to column 59)", - " (in 'mother.stan', line 491, column 2 to column 64)", - " (in 'mother.stan', line 492, column 2 to column 65)", - " (in 'mother.stan', line 493, column 2 to column 64)", - " (in 'mother.stan', line 494, column 2 to column 65)", - " (in 'mother.stan', line 496, column 2 to column 49)", - " (in 'mother.stan', line 497, column 2 to column 62)", - " (in 'mother.stan', line 498, column 2 to column 60)", - " (in 'mother.stan', line 499, column 2 to column 67)", - " (in 'mother.stan', line 500, column 2 to column 76)", - " (in 'mother.stan', line 501, column 2 to column 76)", - " (in 'mother.stan', line 503, column 2 to column 54)", - " (in 'mother.stan', line 504, column 2 to column 55)", - " (in 'mother.stan', line 505, column 2 to column 66)", - " (in 'mother.stan', line 506, column 2 to column 67)", - " (in 'mother.stan', line 507, column 2 to column 72)", - " (in 'mother.stan', line 508, column 2 to column 73)", - " (in 'mother.stan', line 509, column 2 to column 72)", - " (in 'mother.stan', line 510, column 2 to column 73)", - " (in 'mother.stan', line 512, column 2 to column 54)", - " (in 'mother.stan', line 513, column 2 to column 55)", - " (in 'mother.stan', line 514, column 2 to column 66)", - " (in 'mother.stan', line 515, column 2 to column 67)", - " (in 'mother.stan', line 516, column 2 to column 72)", - " (in 'mother.stan', line 517, column 2 to column 73)", - " (in 'mother.stan', line 518, column 2 to column 72)", - " (in 'mother.stan', line 519, column 2 to column 73)", - " (in 'mother.stan', line 521, column 2 to column 61)", - " (in 'mother.stan', line 522, column 2 to column 79)", - " (in 'mother.stan', line 523, column 2 to column 88)", - " (in 'mother.stan', line 524, column 2 to column 88)", - " (in 'mother.stan', line 526, column 2 to column 46)", - " (in 'mother.stan', line 527, column 2 to column 47)", - " (in 'mother.stan', line 528, column 2 to column 62)", - " (in 'mother.stan', line 529, column 2 to column 60)", - " (in 'mother.stan', line 530, column 2 to column 58)", - " (in 'mother.stan', line 531, column 2 to column 59)", - " (in 'mother.stan', line 532, column 2 to column 64)", - " (in 'mother.stan', line 533, column 2 to column 65)", - " (in 'mother.stan', line 534, column 2 to column 64)", - " (in 'mother.stan', line 535, column 2 to column 65)", - " (in 'mother.stan', line 537, column 2 to column 46)", - " (in 'mother.stan', line 538, column 2 to column 47)", - " (in 'mother.stan', line 539, column 2 to column 58)", - " (in 'mother.stan', line 540, column 2 to column 59)", - " (in 'mother.stan', line 541, column 2 to column 64)", - " (in 'mother.stan', line 542, column 2 to column 65)", - " (in 'mother.stan', line 543, column 2 to column 64)", - " (in 'mother.stan', line 544, column 2 to column 65)", - " (in 'mother.stan', line 546, column 2 to column 49)", - " (in 'mother.stan', line 547, column 2 to column 67)", - " (in 'mother.stan', line 548, column 2 to column 76)", - " (in 'mother.stan', line 549, column 2 to column 76)", - " (in 'mother.stan', line 551, column 2 to column 26)", - " (in 'mother.stan', line 552, column 2 to column 43)", - " (in 'mother.stan', line 561, column 29 to column 30)", - " (in 'mother.stan', line 562, column 29 to column 30)", - " (in 'mother.stan', line 562, column 31 to column 32)", - " (in 'mother.stan', line 562, column 33 to column 34)", - " (in 'mother.stan', line 563, column 18 to column 19)", - " (in 'mother.stan', line 564, column 21 to column 22)", - " (in 'mother.stan', line 564, column 9 to column 10)", - " (in 'mother.stan', line 565, column 21 to column 22)", - " (in 'mother.stan', line 565, column 23 to column 24)", - " (in 'mother.stan', line 565, column 25 to column 26)", - " (in 'mother.stan', line 565, column 9 to column 10)", - " (in 'mother.stan', line 566, column 13 to column 14)", - " (in 'mother.stan', line 567, column 29 to column 30)", - " (in 'mother.stan', line 567, column 13 to column 14)", - " (in 'mother.stan', line 568, column 29 to column 30)", - " (in 'mother.stan', line 568, column 31 to column 32)", - " (in 'mother.stan', line 568, column 33 to column 34)", - " (in 'mother.stan', line 568, column 13 to column 14)", - " (in 'mother.stan', line 571, column 10 to column 11)", - " (in 'mother.stan', line 572, column 26 to column 27)", - " (in 'mother.stan', line 572, column 10 to column 11)", - " (in 'mother.stan', line 573, column 26 to column 27)", - " (in 'mother.stan', line 573, column 28 to column 29)", - " (in 'mother.stan', line 573, column 30 to column 31)", - " (in 'mother.stan', line 573, column 10 to column 11)", - " (in 'mother.stan', line 574, column 22 to column 23)", - " (in 'mother.stan', line 575, column 22 to column 23)", - " (in 'mother.stan', line 576, column 39 to column 40)", - " (in 'mother.stan', line 576, column 22 to column 23)", - " (in 'mother.stan', line 581, column 30 to column 31)", - " (in 'mother.stan', line 582, column 30 to column 31)", - " (in 'mother.stan', line 582, column 32 to column 33)", - " (in 'mother.stan', line 582, column 34 to column 35)", - " (in 'mother.stan', line 583, column 18 to column 19)", - " (in 'mother.stan', line 584, column 22 to column 23)", - " (in 'mother.stan', line 584, column 9 to column 10)", - " (in 'mother.stan', line 585, column 22 to column 23)", - " (in 'mother.stan', line 585, column 24 to column 25)", - " (in 'mother.stan', line 585, column 26 to column 27)", - " (in 'mother.stan', line 585, column 9 to column 10)", - " (in 'mother.stan', line 586, column 13 to column 14)", - " (in 'mother.stan', line 587, column 30 to column 31)", - " (in 'mother.stan', line 587, column 13 to column 14)", - " (in 'mother.stan', line 588, column 30 to column 31)", - " (in 'mother.stan', line 588, column 32 to column 33)", - " (in 'mother.stan', line 588, column 34 to column 35)", - " (in 'mother.stan', line 588, column 13 to column 14)", - " (in 'mother.stan', line 591, column 10 to column 11)", - " (in 'mother.stan', line 592, column 27 to column 28)", - " (in 'mother.stan', line 592, column 10 to column 11)", - " (in 'mother.stan', line 593, column 27 to column 28)", - " (in 'mother.stan', line 593, column 29 to column 30)", - " (in 'mother.stan', line 593, column 31 to column 32)", - " (in 'mother.stan', line 593, column 10 to column 11)", - " (in 'mother.stan', line 596, column 40 to column 41)", - " (in 'mother.stan', line 682, column 32 to column 33)", - " (in 'mother.stan', line 683, column 32 to column 33)", - " (in 'mother.stan', line 683, column 34 to column 35)", - " (in 'mother.stan', line 683, column 36 to column 37)", - " (in 'mother.stan', line 684, column 18 to column 19)", - " (in 'mother.stan', line 685, column 22 to column 23)", - " (in 'mother.stan', line 685, column 9 to column 10)", - " (in 'mother.stan', line 686, column 22 to column 23)", - " (in 'mother.stan', line 686, column 24 to column 25)", - " (in 'mother.stan', line 686, column 26 to column 27)", - " (in 'mother.stan', line 686, column 9 to column 10)", - " (in 'mother.stan', line 687, column 13 to column 14)", - " (in 'mother.stan', line 688, column 30 to column 31)", - " (in 'mother.stan', line 688, column 13 to column 14)", - " (in 'mother.stan', line 689, column 30 to column 31)", - " (in 'mother.stan', line 689, column 32 to column 33)", - " (in 'mother.stan', line 689, column 34 to column 35)", - " (in 'mother.stan', line 689, column 13 to column 14)", - " (in 'mother.stan', line 691, column 10 to column 11)", - " (in 'mother.stan', line 692, column 27 to column 28)", - " (in 'mother.stan', line 692, column 10 to column 11)", - " (in 'mother.stan', line 693, column 27 to column 28)", - " (in 'mother.stan', line 693, column 29 to column 30)", - " (in 'mother.stan', line 693, column 31 to column 32)", - " (in 'mother.stan', line 693, column 10 to column 11)", - " (in 'mother.stan', line 696, column 40 to column 41)", - " (in 'mother.stan', line 13, column 16 to column 25)", - " (in 'mother.stan', line 13, column 4 to column 25)", - " (in 'mother.stan', line 14, column 4 to column 26)", - " (in 'mother.stan', line 12, column 17 to line 15, column 3)", - " (in 'mother.stan', line 29, column 4 to column 17)", - " (in 'mother.stan', line 30, column 4 to column 19)", - " (in 'mother.stan', line 31, column 4 to column 38)", - " (in 'mother.stan', line 32, column 4 to column 16)", - " (in 'mother.stan', line 28, column 31 to line 33, column 3)", - " (in 'mother.stan', line 36, column 4 to column 15)", - " (in 'mother.stan', line 35, column 18 to line 37, column 3)", - " (in 'mother.stan', line 40, column 4 to column 15)", - " (in 'mother.stan', line 39, column 24 to line 41, column 3)", - " (in 'mother.stan', line 44, column 4 to column 15)", - " (in 'mother.stan', line 43, column 32 to line 45, column 3)", - " (in 'mother.stan', line 48, column 4 to column 15)", - " (in 'mother.stan', line 47, column 36 to line 49, column 3)", - " (in 'mother.stan', line 52, column 4 to column 15)", - " (in 'mother.stan', line 51, column 36 to line 53, column 3)", - " (in 'mother.stan', line 56, column 4 to column 15)", - " (in 'mother.stan', line 55, column 37 to line 57, column 3)", - " (in 'mother.stan', line 59, column 4 to column 33)", - " (in 'mother.stan', line 58, column 36 to line 60, column 3)", - " (in 'mother.stan', line 63, column 4 to column 42)", - " (in 'mother.stan', line 64, column 4 to column 26)", - " (in 'mother.stan', line 62, column 30 to line 65, column 3)", - " (in 'mother.stan', line 69, column 14 to column 20)", - " (in 'mother.stan', line 69, column 4 to column 20)", - " (in 'mother.stan', line 70, column 14 to column 23)", - " (in 'mother.stan', line 70, column 4 to column 23)", - " (in 'mother.stan', line 73, column 20 to column 26)", - " (in 'mother.stan', line 73, column 4 to column 26)", - " (in 'mother.stan', line 74, column 20 to column 29)", - " (in 'mother.stan', line 74, column 4 to column 29)", - " (in 'mother.stan', line 78, column 6 to column 12)", - " (in 'mother.stan', line 79, column 6 to column 12)", - " (in 'mother.stan', line 80, column 6 to column 12)", - " (in 'mother.stan', line 77, column 14 to line 81, column 5)", - " (in 'mother.stan', line 77, column 4 to line 81, column 5)", - " (in 'mother.stan', line 87, column 11 to column 17)", - " (in 'mother.stan', line 86, column 18 to column 24)", - " (in 'mother.stan', line 86, column 11 to line 87, column 17)", - " (in 'mother.stan', line 85, column 13 to column 19)", - " (in 'mother.stan', line 85, column 6 to line 87, column 17)", - " (in 'mother.stan', line 84, column 14 to line 88, column 5)", - " (in 'mother.stan', line 84, column 4 to line 88, column 5)", - " (in 'mother.stan', line 91, column 24 to column 30)", - " (in 'mother.stan', line 91, column 14 to column 30)", - " (in 'mother.stan', line 91, column 4 to column 30)", - " (in 'mother.stan', line 95, column 22 to column 28)", - " (in 'mother.stan', line 95, column 6 to column 28)", - " (in 'mother.stan', line 94, column 14 to line 96, column 5)", - " (in 'mother.stan', line 94, column 4 to line 96, column 5)", - " (in 'mother.stan', line 100, column 6 to column 19)", - " (in 'mother.stan', line 101, column 6 to column 12)", - " (in 'mother.stan', line 102, column 6 to line 105, column 7)", - " (in 'mother.stan', line 103, column 8 to column 14)", - " (in 'mother.stan', line 104, column 8 to column 14)", - " (in 'mother.stan', line 106, column 6 to line 109, column 7)", - " (in 'mother.stan', line 107, column 8 to column 14)", - " (in 'mother.stan', line 108, column 8 to column 17)", - " (in 'mother.stan', line 110, column 6 to line 116, column 7)", - " (in 'mother.stan', line 111, column 8 to line 114, column 9)", - " (in 'mother.stan', line 112, column 10 to column 16)", - " (in 'mother.stan', line 113, column 10 to column 16)", - " (in 'mother.stan', line 115, column 8 to column 14)", - " (in 'mother.stan', line 99, column 14 to line 117, column 5)", - " (in 'mother.stan', line 99, column 4 to line 117, column 5)", - " (in 'mother.stan', line 121, column 6 to column 13)", - " (in 'mother.stan', line 122, column 6 to column 21)", - " (in 'mother.stan', line 123, column 6 to line 126, column 7)", - " (in 'mother.stan', line 124, column 8 to column 14)", - " (in 'mother.stan', line 125, column 8 to column 14)", - " (in 'mother.stan', line 127, column 6 to line 130, column 7)", - " (in 'mother.stan', line 128, column 8 to column 16)", - " (in 'mother.stan', line 129, column 8 to column 17)", - " (in 'mother.stan', line 120, column 14 to line 131, column 5)", - " (in 'mother.stan', line 120, column 4 to line 131, column 5)", - " (in 'mother.stan', line 135, column 6 to column 13)", - " (in 'mother.stan', line 136, column 6 to column 19)", - " (in 'mother.stan', line 137, column 6 to line 140, column 7)", - " (in 'mother.stan', line 138, column 8 to column 14)", - " (in 'mother.stan', line 139, column 8 to column 14)", - " (in 'mother.stan', line 141, column 6 to line 144, column 7)", - " (in 'mother.stan', line 142, column 8 to column 16)", - " (in 'mother.stan', line 143, column 8 to column 17)", - " (in 'mother.stan', line 134, column 14 to line 145, column 5)", - " (in 'mother.stan', line 134, column 4 to line 145, column 5)", - " (in 'mother.stan', line 149, column 6 to column 13)", - " (in 'mother.stan', line 150, column 6 to column 23)", - " (in 'mother.stan', line 151, column 6 to line 154, column 7)", - " (in 'mother.stan', line 152, column 8 to column 14)", - " (in 'mother.stan', line 153, column 8 to column 14)", - " (in 'mother.stan', line 155, column 6 to line 158, column 7)", - " (in 'mother.stan', line 156, column 8 to column 16)", - " (in 'mother.stan', line 157, column 8 to column 17)", - " (in 'mother.stan', line 148, column 14 to line 159, column 5)", - " (in 'mother.stan', line 148, column 4 to line 159, column 5)", - " (in 'mother.stan', line 163, column 6 to column 12)", - " (in 'mother.stan', line 164, column 6 to column 12)", - " (in 'mother.stan', line 166, column 8 to column 14)", - " (in 'mother.stan', line 167, column 8 to column 14)", - " (in 'mother.stan', line 168, column 8 to column 14)", - " (in 'mother.stan', line 165, column 6 to line 169, column 7)", - " (in 'mother.stan', line 162, column 14 to line 170, column 5)", - " (in 'mother.stan', line 162, column 4 to line 170, column 5)", - " (in 'mother.stan', line 172, column 4 to column 13)", - " (in 'mother.stan', line 67, column 19 to line 173, column 3)", - " (in 'mother.stan', line 176, column 4 to column 14)", - " (in 'mother.stan', line 177, column 4 to column 10)", - " (in 'mother.stan', line 178, column 4 to column 24)", - " (in 'mother.stan', line 178, column 18 to column 24)", - " (in 'mother.stan', line 179, column 4 to column 13)", - " (in 'mother.stan', line 175, column 19 to line 180, column 3)", - " (in 'mother.stan', line 183, column 4 to column 26)", - " (in 'mother.stan', line 182, column 30 to line 184, column 3)", - " (in 'mother.stan', line 187, column 4 to column 24)", - " (in 'mother.stan', line 186, column 22 to line 188, column 3)", - " (in 'mother.stan', line 191, column 4 to column 42)", - " (in 'mother.stan', line 190, column 21 to line 192, column 3)", - " (in 'mother.stan', line 195, column 4 to column 18)", - " (in 'mother.stan', line 196, column 4 to column 19)", - " (in 'mother.stan', line 197, column 4 to column 27)", - " (in 'mother.stan', line 198, column 4 to column 40)", - " (in 'mother.stan', line 200, column 6 to column 81)", - " (in 'mother.stan', line 199, column 4 to line 200, column 81)", - " (in 'mother.stan', line 202, column 6 to column 81)", - " (in 'mother.stan', line 201, column 4 to line 202, column 81)", - " (in 'mother.stan', line 203, column 4 to column 32)", - " (in 'mother.stan', line 194, column 59 to line 204, column 3)", - " (in 'mother.stan', line 208, column 4 to column 22)", - " (in 'mother.stan', line 207, column 52 to line 209, column 3)", - " (in 'mother.stan', line 212, column 4 to column 14)", - " (in 'mother.stan', line 211, column 66 to line 213, column 3)", - " (in 'mother.stan', line 215, column 4 to column 14)", - " (in 'mother.stan', line 214, column 78 to line 216, column 3)", - " (in 'mother.stan', line 219, column 11 to column 20)", - " (in 'mother.stan', line 219, column 22 to column 31)", - " (in 'mother.stan', line 219, column 4 to column 35)", - " (in 'mother.stan', line 220, column 4 to column 12)", - " (in 'mother.stan', line 221, column 4 to column 16)", - " (in 'mother.stan', line 222, column 4 to column 20)", - " (in 'mother.stan', line 223, column 4 to column 13)", - " (in 'mother.stan', line 218, column 49 to line 224, column 3)", - " (in 'mother.stan', line 226, column 4 to column 16)", - " (in 'mother.stan', line 225, column 150 to line 227, column 3)", - " (in 'mother.stan', line 230, column 4 to column 14)", - " (in 'mother.stan', line 229, column 149 to line 231, column 3)", - " (in 'mother.stan', line 234, column 4 to column 14)", - " (in 'mother.stan', line 233, column 151 to line 235, column 3)", - " (in 'mother.stan', line 238, column 4 to column 14)", - " (in 'mother.stan', line 237, column 152 to line 239, column 3)", - " (in 'mother.stan', line 242, column 4 to column 14)", - " (in 'mother.stan', line 241, column 150 to line 243, column 3)", - " (in 'mother.stan', line 246, column 4 to column 14)", - " (in 'mother.stan', line 245, column 152 to line 247, column 3)", - " (in 'mother.stan', line 250, column 4 to column 14)", - " (in 'mother.stan', line 249, column 153 to line 251, column 3)", - " (in 'mother.stan', line 254, column 4 to column 14)", - " (in 'mother.stan', line 253, column 152 to line 255, column 3)", - " (in 'mother.stan', line 258, column 4 to column 14)", - " (in 'mother.stan', line 257, column 154 to line 259, column 3)", - " (in 'mother.stan', line 262, column 4 to column 14)", - " (in 'mother.stan', line 261, column 155 to line 263, column 3)", - " (in 'mother.stan', line 266, column 4 to column 15)", - " (in 'mother.stan', line 265, column 153 to line 267, column 3)", - " (in 'mother.stan', line 270, column 4 to column 15)", - " (in 'mother.stan', line 269, column 155 to line 271, column 3)", - " (in 'mother.stan', line 274, column 4 to column 15)", - " (in 'mother.stan', line 273, column 156 to line 275, column 3)", - " (in 'mother.stan', line 277, column 4 to column 10)", - " (in 'mother.stan', line 278, column 4 to column 11)", - " (in 'mother.stan', line 279, column 4 to column 18)", - " (in 'mother.stan', line 280, column 4 to column 32)", - " (in 'mother.stan', line 281, column 4 to column 24)", - " (in 'mother.stan', line 276, column 14 to line 282, column 3)", - " (in 'mother.stan', line 284, column 4 to line 286, column 40)", - " (in 'mother.stan', line 283, column 18 to line 287, column 3)", - " (in 'mother.stan', line 289, column 4 to column 35)", - " (in 'mother.stan', line 288, column 18 to line 290, column 3)", - " (in 'mother.stan', line 292, column 4 to column 33)", - " (in 'mother.stan', line 293, column 4 to column 13)", - " (in 'mother.stan', line 291, column 27 to line 294, column 3)", - " (in 'mother.stan', line 296, column 4 to column 48)", - " (in 'mother.stan', line 297, column 4 to column 26)", - " (in 'mother.stan', line 295, column 27 to line 298, column 3)", - " (in 'mother.stan', line 303, column 4 to column 18)", - " (in 'mother.stan', line 304, column 4 to column 25)", - " (in 'mother.stan', line 305, column 4 to column 25)", - " (in 'mother.stan', line 306, column 4 to column 15)", - " (in 'mother.stan', line 302, column 39 to line 307, column 3)", - " (in 'mother.stan', line 310, column 4 to column 19)", - " (in 'mother.stan', line 311, column 4 to column 18)", - " (in 'mother.stan', line 312, column 4 to column 16)", - " (in 'mother.stan', line 309, column 78 to line 313, column 3)"}; - -int -foo(const int& n, std::ostream* pstream__) ; -int -foo(const int& n, std::ostream* pstream__) ; - -struct foo_functor__ { -int -operator()(const int& n, std::ostream* pstream__) const -{ -return foo(n, pstream__); -} -}; - -template -std::vector> -sho(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) ; -template -std::vector> -sho(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) ; - -struct sho_functor__ { -template -std::vector> -operator()(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) const -{ -return sho(t, y, theta, x, x_int, pstream__); -} -}; - -double -foo_bar0(std::ostream* pstream__) ; - -struct foo_bar0_functor__ { -double -operator()(std::ostream* pstream__) const -{ -return foo_bar0(pstream__); -} -}; - -template -stan::promote_args_t -foo_bar1(const T0__& x, std::ostream* pstream__) ; - -struct foo_bar1_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return foo_bar1(x, pstream__); -} -}; - -template -stan::promote_args_t -foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) ; - -struct foo_bar2_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const -{ -return foo_bar2(x, y, pstream__); -} -}; - -template -stan::promote_args_t -foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) ; - -struct foo_lpmf_functor__ { -template -stan::promote_args_t -operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const -{ -return foo_lpmf(y, lambda, pstream__); -} -}; - -template -stan::promote_args_t -foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) ; - -struct foo_lcdf_functor__ { -template -stan::promote_args_t -operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const -{ -return foo_lcdf(y, lambda, pstream__); -} -}; - -template -stan::promote_args_t -foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) ; - -struct foo_lccdf_functor__ { -template -stan::promote_args_t -operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const -{ -return foo_lccdf(y, lambda, pstream__); -} -}; - -template -stan::promote_args_t -foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) ; - -struct foo_rng_functor__ { -template -stan::promote_args_t -operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) const -{ -return foo_rng(mu, sigma, pstream__); -} -}; - -template -void -unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; - -struct unit_normal_lp_functor__ { -template -void -operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return unit_normal_lp(u, pstream__); -} -}; - -int -foo_1(const int& a, std::ostream* pstream__) ; - -struct foo_1_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const -{ -return foo_1(a, pstream__); -} -}; - -int -foo_2(const int& a, std::ostream* pstream__) ; - -struct foo_2_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const -{ -return foo_2(a, pstream__); -} -}; - -template -std::vector> -foo_3(const T0__& t, const int& n, std::ostream* pstream__) ; - -struct foo_3_functor__ { -template -std::vector> -operator()(const T0__& t, const int& n, std::ostream* pstream__) const -{ -return foo_3(t, n, pstream__); -} -}; - -template -stan::promote_args_t -foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; - -struct foo_lp_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return foo_lp(x, pstream__); -} -}; - -template -void -foo_4(const T0__& x, std::ostream* pstream__) ; - -struct foo_4_functor__ { -template -void -operator()(const T0__& x, std::ostream* pstream__) const -{ -return foo_4(x, pstream__); -} -}; - -template -stan::promote_args_t -relative_diff(const T0__& x, const T1__& y, const T2__& max_, - const T3__& min_, std::ostream* pstream__) ; - -struct relative_diff_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, const T1__& y, const T2__& max_, const T3__& min_, - std::ostream* pstream__) const -{ -return relative_diff(x, y, max_, min_, pstream__); -} -}; - -template -Eigen::Matrix, -stan::value_type_t>, -1, 1> -foo_5(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) ; - -struct foo_5_functor__ { -template -Eigen::Matrix, -stan::value_type_t>, -1, 1> -operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) const -{ -return foo_5(shared_params, job_params, data_r, data_i, pstream__); -} -}; - -template -stan::promote_args_t -foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, - const T4__& x5, std::ostream* pstream__) ; - -struct foo_five_args_functor__ { -template -stan::promote_args_t -operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, - const T4__& x5, std::ostream* pstream__) const -{ -return foo_five_args(x1, x2, x3, x4, x5, pstream__); -} -}; - -template -stan::promote_args_t> -foo_five_args_lp(const T0__& x1, const T1__& x2, const T2__& x3, - const T3__& x4, const T4__& x5, const T5__& x6, - T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; - -struct foo_five_args_lp_functor__ { -template -stan::promote_args_t> -operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, - const T4__& x5, const T5__& x6, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) const -{ -return foo_five_args_lp(x1, x2, x3, x4, x5, x6, pstream__); -} -}; - -template -Eigen::Matrix>, -1, -1> -covsqrt2corsqrt(const T0__& mat, const int& invert, std::ostream* pstream__) ; - -struct covsqrt2corsqrt_functor__ { -template -Eigen::Matrix>, -1, -1> -operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const -{ -return covsqrt2corsqrt(mat, invert, pstream__); -} -}; - -template -void -f0(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f0_functor__ { -template -void -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f0(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -int -f1(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f1_functor__ { -template -int -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f1(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector -f2(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f2_functor__ { -template -std::vector -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f2(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector> -f3(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f3_functor__ { -template -std::vector> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f3(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -stan::promote_args_t, -T7__, stan::promote_args_t, T10__, -T11__>> -f4(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f4_functor__ { -template -stan::promote_args_t, -T7__, stan::promote_args_t, T10__, -T11__>> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f4(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>> -f5(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f5_functor__ { -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f5(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>>> -f6(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f6_functor__ { -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>>> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f6(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -Eigen::Matrix, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1> -f7(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f7_functor__ { -template -Eigen::Matrix, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f7(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1>> -f8(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f8_functor__ { -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1>> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f8(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1>>> -f9(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f9_functor__ { -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1>>> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f9(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -Eigen::Matrix, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1> -f10(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f10_functor__ { -template -Eigen::Matrix, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1>> -f11(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f11_functor__ { -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1>> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1>>> -f12(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) ; - -struct f12_functor__ { -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1>>> -operator()(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, - const std::vector>& a6, const T6__& a7, - const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) const -{ -return f12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); -} -}; - -void -foo_6(std::ostream* pstream__) ; - -struct foo_6_functor__ { -void -operator()(std::ostream* pstream__) const -{ -return foo_6(pstream__); -} -}; - -Eigen::Matrix -matfoo(std::ostream* pstream__) ; - -struct matfoo_functor__ { -Eigen::Matrix -operator()(std::ostream* pstream__) const -{ -return matfoo(pstream__); -} -}; - -Eigen::Matrix -vecfoo(std::ostream* pstream__) ; - -struct vecfoo_functor__ { -Eigen::Matrix -operator()(std::ostream* pstream__) const -{ -return vecfoo(pstream__); -} -}; - -template -Eigen::Matrix, -1, 1> -vecmufoo(const T0__& mu, std::ostream* pstream__) ; - -struct vecmufoo_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const T0__& mu, std::ostream* pstream__) const -{ -return vecmufoo(mu, pstream__); -} -}; - -template -Eigen::Matrix, -1, 1> -vecmubar(const T0__& mu, std::ostream* pstream__) ; - -struct vecmubar_functor__ { -template -Eigen::Matrix, -1, 1> -operator()(const T0__& mu, std::ostream* pstream__) const -{ -return vecmubar(mu, pstream__); -} -}; - -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -algebra_system(const T0__& x, const T1__& y, const std::vector& dat, - const std::vector& dat_int, std::ostream* pstream__) ; - -struct algebra_system_functor__ { -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -operator()(const T0__& x, const T1__& y, const std::vector& dat, - const std::vector& dat_int, std::ostream* pstream__) const -{ -return algebra_system(x, y, dat, dat_int, pstream__); -} -}; - -template -Eigen::Matrix, -stan::value_type_t>, -1, 1> -binomialf(const T0__& phi, const T1__& theta, const std::vector& x_r, - const std::vector& x_i, std::ostream* pstream__) ; - -struct binomialf_functor__ { -template -Eigen::Matrix, -stan::value_type_t>, -1, 1> -operator()(const T0__& phi, const T1__& theta, - const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) const -{ -return binomialf(phi, theta, x_r, x_i, pstream__); -} -}; - -int -foo(const int& n, std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 593; - if (logical_eq(n, 0)) { - current_statement__ = 592; - return 1; - } - current_statement__ = 594; - return (n * foo((n - 1), pstream__)); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector> -sho(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - std::vector dydt; - dydt = std::vector(2, DUMMY_VAR__); - - current_statement__ = 597; - assign(dydt, rvalue(y, "y", index_uni(2)), - "assigning variable dydt", index_uni(1)); - current_statement__ = 598; - assign(dydt, - (-rvalue(y, "y", index_uni(1)) - - (rvalue(theta, "theta", index_uni(1)) * rvalue(y, "y", index_uni(2)))), - "assigning variable dydt", index_uni(2)); - current_statement__ = 599; - return dydt; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -double -foo_bar0(std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 601; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_bar1(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 603; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 605; - return 2.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 607; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 609; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 611; - return 1.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 613; - return normal_rng(mu, sigma, base_rng__); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -void -unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 615; - lp_accum__.add(normal_log(u, 0, 1)); - current_statement__ = 616; - lp_accum__.add(uniform_lpdf(u, -100, 100)); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -int -foo_1(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 619; - while (1) { - break; - } - current_statement__ = 621; - while (0) { - continue; - } - current_statement__ = 623; - for (int i = 1; i <= 10; ++i) { break;} - current_statement__ = 625; - for (int i = 1; i <= 10; ++i) { continue;} - current_statement__ = 630; - while (1) { - int b; - b = std::numeric_limits::min(); - - current_statement__ = 627; - b = 5; - break; - } - current_statement__ = 637; - while (1) { - current_statement__ = 635; - if (0) { - break; - } else { - current_statement__ = 633; - if (1) { - break; - } else { - break; - } - } - } - current_statement__ = 640; - while (1) { - current_statement__ = 639; - while (0) { - break; - } - } - current_statement__ = 644; - while (1) { - current_statement__ = 642; - for (int i = 1; i <= 10; ++i) { break;} - } - current_statement__ = 659; - while (1) { - std::vector> vs; - vs = std::vector>(2, std::vector(3, std::numeric_limits::min())); - - - int z; - z = std::numeric_limits::min(); - - current_statement__ = 647; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - std::vector v; - current_statement__ = 647; - assign(v, vs[(sym1__ - 1)], "assigning variable v"); - current_statement__ = 648; - z = 0; - break; - } - } - current_statement__ = 650; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - std::vector v; - current_statement__ = 650; - assign(v, vs[(sym1__ - 1)], "assigning variable v"); - current_statement__ = 651; - z = 0; - continue; - } - } - current_statement__ = 653; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - std::vector v; - current_statement__ = 653; - assign(v, vs[(sym1__ - 1)], "assigning variable v"); - current_statement__ = 654; - for (int sym1__ = 1; sym1__ <= stan::math::size(v); ++sym1__) { - { - int vv; - current_statement__ = 654; - vv = v[(sym1__ - 1)]; - current_statement__ = 655; - z = 0; - break; - } - } - current_statement__ = 657; - z = 1; - } - } - } - current_statement__ = 669; - while (1) { - local_scalar_t__ z; - z = DUMMY_VAR__; - - Eigen::Matrix vs; - vs = Eigen::Matrix(2, 3); - stan::math::fill(vs, DUMMY_VAR__); - - current_statement__ = 662; - for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { - current_statement__ = 662; - for (int sym2__ = 1; - sym2__ <= stan::math::size(rvalue(vs, "vs", index_uni(sym1__))); - ++sym2__) { - { - local_scalar_t__ v; - current_statement__ = 662; - v = rvalue(vs, "vs", index_uni(sym1__), index_uni(sym2__)); - current_statement__ = 663; - z = 0; - break; - } - } - } - current_statement__ = 665; - for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { - current_statement__ = 665; - for (int sym2__ = 1; - sym2__ <= stan::math::size(rvalue(vs, "vs", index_uni(sym1__))); - ++sym2__) { - { - local_scalar_t__ v; - current_statement__ = 665; - v = rvalue(vs, "vs", index_uni(sym1__), index_uni(sym2__)); - current_statement__ = 666; - z = 3.1; - continue; - } - } - } - } - current_statement__ = 679; - while (1) { - local_scalar_t__ z; - z = DUMMY_VAR__; - - Eigen::Matrix vs; - vs = Eigen::Matrix(2); - stan::math::fill(vs, DUMMY_VAR__); - - current_statement__ = 672; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 672; - v = vs[(sym1__ - 1)]; - current_statement__ = 673; - z = 0; - break; - } - } - current_statement__ = 675; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 675; - v = vs[(sym1__ - 1)]; - current_statement__ = 676; - z = 3.2; - continue; - } - } - } - current_statement__ = 689; - while (1) { - local_scalar_t__ z; - z = DUMMY_VAR__; - - Eigen::Matrix vs; - vs = Eigen::Matrix(2); - stan::math::fill(vs, DUMMY_VAR__); - - current_statement__ = 682; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 682; - v = vs[(sym1__ - 1)]; - current_statement__ = 683; - z = 0; - break; - } - } - current_statement__ = 685; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - local_scalar_t__ v; - current_statement__ = 685; - v = vs[(sym1__ - 1)]; - current_statement__ = 686; - z = 3.3; - continue; - } - } - } - current_statement__ = 697; - while (1) { - int b; - b = std::numeric_limits::min(); - - current_statement__ = 691; - b = 5; - { - int c; - c = std::numeric_limits::min(); - - current_statement__ = 693; - c = 6; - break; - } - } - current_statement__ = 698; - return 0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -int -foo_2(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - std::vector vs; - vs = std::vector(2, std::numeric_limits::min()); - - int y; - y = std::numeric_limits::min(); - - current_statement__ = 702; - for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { - { - int v; - current_statement__ = 702; - v = vs[(sym1__ - 1)]; - current_statement__ = 703; - y = v; - } - } - current_statement__ = 704; - return 0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector> -foo_3(const T0__& t, const int& n, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 706; - return rep_array(t, n); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 708; - return (x + get_lp(lp__, lp_accum__)); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -void -foo_4(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 710; - std::stringstream errmsg_stream__; - errmsg_stream__ << "user-specified rejection"; - errmsg_stream__ << x; - throw std::domain_error(errmsg_stream__.str()); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -relative_diff(const T0__& x, const T1__& y, const T2__& max_, - const T3__& min_, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ abs_diff; - abs_diff = DUMMY_VAR__; - - local_scalar_t__ avg_scale; - avg_scale = DUMMY_VAR__; - - current_statement__ = 714; - abs_diff = stan::math::fabs((x - y)); - current_statement__ = 715; - avg_scale = ((stan::math::fabs(x) + stan::math::fabs(y)) / 2); - current_statement__ = 717; - if (logical_gt((abs_diff / avg_scale), max_)) { - current_statement__ = 716; - std::stringstream errmsg_stream__; - errmsg_stream__ << "user-specified rejection, difference above "; - errmsg_stream__ << max_; - errmsg_stream__ << " x:"; - errmsg_stream__ << x; - errmsg_stream__ << " y:"; - errmsg_stream__ << y; - throw std::domain_error(errmsg_stream__.str()); - } - current_statement__ = 719; - if (logical_lt((abs_diff / avg_scale), min_)) { - current_statement__ = 718; - std::stringstream errmsg_stream__; - errmsg_stream__ << "user-specified rejection, difference below "; - errmsg_stream__ << min_; - errmsg_stream__ << " x:"; - errmsg_stream__ << x; - errmsg_stream__ << " y:"; - errmsg_stream__ << y; - throw std::domain_error(errmsg_stream__.str()); - } - current_statement__ = 720; - return (abs_diff / avg_scale); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, -stan::value_type_t>, -1, 1> -foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; - int current_statement__ = 0; - const auto& shared_params = to_ref(shared_params_arg__); - const auto& job_params = to_ref(job_params_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 722; - return (Eigen::Matrix(3) << 1, 2, 3).finished(); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, - const T4__& x5, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 724; - return x1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t> -foo_five_args_lp(const T0__& x1, const T1__& x2, const T2__& x3, - const T3__& x4, const T4__& x5, const T5__& x6, - T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 726; - return x1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix>, -1, -1> -covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - int current_statement__ = 0; - const auto& mat = to_ref(mat_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 728; - validate_non_negative_index("o", "rows(mat)", rows(mat)); - current_statement__ = 729; - validate_non_negative_index("o", "cols(mat)", cols(mat)); - Eigen::Matrix o; - o = Eigen::Matrix(rows(mat), cols(mat)); - stan::math::fill(o, DUMMY_VAR__); - - current_statement__ = 731; - assign(o, mat, "assigning variable o"); - current_statement__ = 732; - assign(o, stan::model::deep_copy(rvalue(o, "o", index_uni(2))), - "assigning variable o", index_uni(1)); - current_statement__ = 733; - assign(o, stan::model::deep_copy(rvalue(o, "o", index_min_max(1, 2))), - "assigning variable o", index_min_max(3, 4)); - current_statement__ = 734; - return o; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -void -f0(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 736; - if (pstream__) { - stan_print(pstream__, "hi"); - stan_print(pstream__, "\n"); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -int -f1(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 738; - return a1; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector -f2(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 740; - return a2; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector> -f3(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 742; - return a3; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t, -T7__, stan::promote_args_t, T10__, -T11__>> -f4(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 744; - return a4; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>> -f5(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 746; - return a5; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>>> -f6(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 748; - return a6; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1> -f7(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 750; - return a7; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1>> -f8(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 752; - return a8; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, 1>>> -f9(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 754; - return a9; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1> -f10(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 756; - return a10; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1>> -f11(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 758; - return a11; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -std::vector, -T7__, stan::promote_args_t, T10__, -T11__>>, -1, -1>>> -f12(const int& a1, const std::vector& a2, - const std::vector>& a3, const T3__& a4, - const std::vector& a5, const std::vector>& a6, - const T6__& a7_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T7__, stan::promote_args_t, - T10__, - T11__>>; - int current_statement__ = 0; - const auto& a7 = to_ref(a7_arg__); - const auto& a10 = to_ref(a10_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 760; - return a12; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -void -foo_6(std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int a; - a = std::numeric_limits::min(); - - local_scalar_t__ b; - b = DUMMY_VAR__; - - std::vector> c; - c = std::vector>(20, std::vector(30, DUMMY_VAR__)); - - - std::vector>> ar_mat; - ar_mat = std::vector>>(60, std::vector>(70, Eigen::Matrix(40, 50))); - stan::math::fill(ar_mat, DUMMY_VAR__); - - current_statement__ = 766; - assign(ar_mat, b, - "assigning variable ar_mat", index_uni(1), index_uni(1), index_uni(1), - index_uni(1)); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -Eigen::Matrix -matfoo(std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 768; - return stan::math::to_matrix(std::vector>{ - (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10).finished(), (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10).finished(), (Eigen::Matrix(10) << 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10).finished()}); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -Eigen::Matrix -vecfoo(std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 770; - return (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10).finished(); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, -1, 1> -vecmufoo(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - Eigen::Matrix l; - l = Eigen::Matrix(10); - stan::math::fill(l, DUMMY_VAR__); - - current_statement__ = 772; - assign(l, multiply(mu, vecfoo(pstream__)), "assigning variable l"); - current_statement__ = 773; - return l; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, -1, 1> -vecmubar(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - Eigen::Matrix l; - l = Eigen::Matrix(10); - stan::math::fill(l, DUMMY_VAR__); - - current_statement__ = 775; - assign(l, - multiply(mu, (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10).finished()), "assigning variable l"); - current_statement__ = 776; - return rvalue(l, "l", index_multi(std::vector{1, 2, 3, 4, 5})); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -algebra_system(const T0__& x_arg__, const T1__& y_arg__, - const std::vector& dat, const std::vector& dat_int, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - T2__>; - int current_statement__ = 0; - const auto& x = to_ref(x_arg__); - const auto& y = to_ref(y_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - Eigen::Matrix f_x; - f_x = Eigen::Matrix(2); - stan::math::fill(f_x, DUMMY_VAR__); - - current_statement__ = 779; - assign(f_x, - (rvalue(x, "x", index_uni(1)) - rvalue(y, "y", index_uni(1))), - "assigning variable f_x", index_uni(1)); - current_statement__ = 780; - assign(f_x, - (rvalue(x, "x", index_uni(2)) - rvalue(y, "y", index_uni(2))), - "assigning variable f_x", index_uni(2)); - current_statement__ = 781; - return f_x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, -stan::value_type_t>, -1, 1> -binomialf(const T0__& phi_arg__, const T1__& theta_arg__, - const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; - int current_statement__ = 0; - const auto& phi = to_ref(phi_arg__); - const auto& theta = to_ref(theta_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - Eigen::Matrix lpmf; - lpmf = Eigen::Matrix(1); - stan::math::fill(lpmf, DUMMY_VAR__); - - current_statement__ = 784; - assign(lpmf, 0.0, "assigning variable lpmf", index_uni(1)); - current_statement__ = 785; - return lpmf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class mother_model final : public model_base_crtp { - - private: - int N; - int M; - int K; - std::vector d_int_1d_ar; - std::vector>> d_int_3d_ar; - double J; - std::vector d_real_1d_ar; - std::vector>> d_real_3d_ar; - Eigen::Matrix d_vec__; - std::vector> d_1d_vec; - std::vector>>> d_3d_vec; - Eigen::Matrix d_row_vec__; - std::vector> d_1d_row_vec; - std::vector>>> d_3d_row_vec; - std::vector>> d_ar_mat; - Eigen::Matrix d_simplex__; - std::vector> d_1d_simplex; - std::vector>>> d_3d_simplex; - Eigen::Matrix d_cfcov_54__; - Eigen::Matrix d_cfcov_33__; - std::vector> d_cfcov_33_ar; - int d_int; - std::vector d_int_array; - std::vector> d_int_array_2d; - std::vector>> d_int_array_3d; - double d_real; - std::vector d_real_array; - std::vector> d_real_array_2d; - std::vector>> d_real_array_3d; - Eigen::Matrix d_matrix__; - std::vector> d_matrix_array; - std::vector>> d_matrix_array_2d; - std::vector>>> d_matrix_array_3d; - Eigen::Matrix d_vector__; - std::vector> d_vector_array; - std::vector>> d_vector_array_2d; - std::vector>>> d_vector_array_3d; - Eigen::Matrix d_row_vector__; - std::vector> d_row_vector_array; - std::vector>> d_row_vector_array_2d; - std::vector>>> d_row_vector_array_3d; - int td_int; - std::vector td_1d; - std::vector td_1dk; - int td_a; - double td_b; - double td_c; - std::vector>> td_ar_mat; - Eigen::Matrix td_simplex__; - std::vector> td_1d_simplex; - std::vector>>> td_3d_simplex; - Eigen::Matrix td_cfcov_54__; - Eigen::Matrix td_cfcov_33__; - Eigen::Matrix x__; - Eigen::Matrix y__; - std::vector dat; - std::vector dat_int; - std::vector> x_r; - std::vector> x_i; - std::vector> arr_mul_ind; - std::vector x_mul_ind; - double transformed_data_real; - std::vector transformed_data_real_array; - std::vector> transformed_data_real_array_2d; - std::vector>> transformed_data_real_array_3d; - Eigen::Matrix transformed_data_matrix__; - std::vector> transformed_data_matrix_array; - std::vector>> transformed_data_matrix_array_2d; - std::vector>>> transformed_data_matrix_array_3d; - Eigen::Matrix transformed_data_vector__; - std::vector> transformed_data_vector_array; - std::vector>> transformed_data_vector_array_2d; - std::vector>>> transformed_data_vector_array_3d; - Eigen::Matrix transformed_data_row_vector__; - std::vector> transformed_data_row_vector_array; - std::vector>> transformed_data_row_vector_array_2d; - std::vector>>> transformed_data_row_vector_array_3d; - Eigen::Map> d_vec{nullptr, 0}; - Eigen::Map> d_row_vec{nullptr, 0}; - Eigen::Map> d_simplex{nullptr, 0}; - Eigen::Map> d_cfcov_54{nullptr, 0, 0}; - Eigen::Map> d_cfcov_33{nullptr, 0, 0}; - Eigen::Map> d_matrix{nullptr, 0, 0}; - Eigen::Map> d_vector{nullptr, 0}; - Eigen::Map> d_row_vector{nullptr, 0}; - Eigen::Map> td_simplex{nullptr, 0}; - Eigen::Map> td_cfcov_54{nullptr, 0, 0}; - Eigen::Map> td_cfcov_33{nullptr, 0, 0}; - Eigen::Map> x{nullptr, 0}; - Eigen::Map> y{nullptr, 0}; - Eigen::Map> transformed_data_matrix{nullptr, 0, 0}; - Eigen::Map> transformed_data_vector{nullptr, 0}; - Eigen::Map> transformed_data_row_vector{nullptr, 0}; - - public: - ~mother_model() { } - - inline std::string model_name() const final { return "mother_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - mother_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "mother_model_namespace::mother_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 190; - context__.validate_dims("data initialization","N","int", - std::vector{}); - N = std::numeric_limits::min(); - - current_statement__ = 190; - N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 190; - check_greater_or_equal(function__, "N", N, 0); - current_statement__ = 191; - context__.validate_dims("data initialization","M","int", - std::vector{}); - M = std::numeric_limits::min(); - - current_statement__ = 191; - M = context__.vals_i("M")[(1 - 1)]; - current_statement__ = 191; - check_greater_or_equal(function__, "M", M, 0); - current_statement__ = 192; - context__.validate_dims("data initialization","K","int", - std::vector{}); - K = std::numeric_limits::min(); - - current_statement__ = 192; - K = context__.vals_i("K")[(1 - 1)]; - current_statement__ = 192; - check_greater_or_equal(function__, "K", K, 0); - current_statement__ = 192; - check_less_or_equal(function__, "K", K, (N * M)); - current_statement__ = 193; - validate_non_negative_index("d_int_1d_ar", "N", N); - current_statement__ = 194; - context__.validate_dims("data initialization","d_int_1d_ar","int", - std::vector{static_cast(N)}); - d_int_1d_ar = std::vector(N, std::numeric_limits::min()); - - current_statement__ = 194; - d_int_1d_ar = context__.vals_i("d_int_1d_ar"); - current_statement__ = 194; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 194; - check_less_or_equal(function__, "d_int_1d_ar[sym1__]", - d_int_1d_ar[(sym1__ - 1)], N); - } - current_statement__ = 195; - validate_non_negative_index("d_int_3d_ar", "N", N); - current_statement__ = 196; - validate_non_negative_index("d_int_3d_ar", "M", M); - current_statement__ = 197; - validate_non_negative_index("d_int_3d_ar", "K", K); - current_statement__ = 198; - context__.validate_dims("data initialization","d_int_3d_ar","int", - std::vector{static_cast(N), - static_cast(M), static_cast(K)}); - d_int_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::min()))); - - - { - std::vector d_int_3d_ar_flat__; - current_statement__ = 198; - d_int_3d_ar_flat__ = context__.vals_i("d_int_3d_ar"); - current_statement__ = 198; - pos__ = 1; - current_statement__ = 198; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 198; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 198; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 198; - assign(d_int_3d_ar, d_int_3d_ar_flat__[(pos__ - 1)], - "assigning variable d_int_3d_ar", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 198; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 198; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 198; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 198; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 198; - check_less_or_equal(function__, - "d_int_3d_ar[sym1__, sym2__, sym3__]", - d_int_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ - (sym3__ - 1)], N); - } - } - } - current_statement__ = 199; - context__.validate_dims("data initialization","J","double", - std::vector{}); - J = std::numeric_limits::quiet_NaN(); - - current_statement__ = 199; - J = context__.vals_r("J")[(1 - 1)]; - current_statement__ = 199; - check_greater_or_equal(function__, "J", J, -2.0); - current_statement__ = 199; - check_less_or_equal(function__, "J", J, 2.0); - current_statement__ = 200; - validate_non_negative_index("d_real_1d_ar", "N", N); - current_statement__ = 201; - context__.validate_dims("data initialization","d_real_1d_ar","double", - std::vector{static_cast(N)}); - d_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 201; - d_real_1d_ar = context__.vals_r("d_real_1d_ar"); - current_statement__ = 202; - validate_non_negative_index("d_real_3d_ar", "N", N); - current_statement__ = 203; - validate_non_negative_index("d_real_3d_ar", "M", M); - current_statement__ = 204; - validate_non_negative_index("d_real_3d_ar", "K", K); - current_statement__ = 205; - context__.validate_dims("data initialization","d_real_3d_ar","double", - std::vector{static_cast(N), - static_cast(M), static_cast(K)}); - d_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); - - - { - std::vector d_real_3d_ar_flat__; - current_statement__ = 205; - d_real_3d_ar_flat__ = context__.vals_r("d_real_3d_ar"); - current_statement__ = 205; - pos__ = 1; - current_statement__ = 205; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 205; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 205; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 205; - assign(d_real_3d_ar, d_real_3d_ar_flat__[(pos__ - 1)], - "assigning variable d_real_3d_ar", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 205; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 206; - validate_non_negative_index("d_vec", "N", N); - current_statement__ = 207; - context__.validate_dims("data initialization","d_vec","double", - std::vector{static_cast(N)}); - d_vec__ = Eigen::Matrix(N); - new (&d_vec) Eigen::Map>(d_vec__.data(), N); - - - { - std::vector d_vec_flat__; - current_statement__ = 207; - d_vec_flat__ = context__.vals_r("d_vec"); - current_statement__ = 207; - pos__ = 1; - current_statement__ = 207; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 207; - assign(d_vec, d_vec_flat__[(pos__ - 1)], - "assigning variable d_vec", index_uni(sym1__)); - current_statement__ = 207; - pos__ = (pos__ + 1); - } - } - current_statement__ = 208; - validate_non_negative_index("d_1d_vec", "N", N); - current_statement__ = 209; - validate_non_negative_index("d_1d_vec", "N", N); - current_statement__ = 210; - context__.validate_dims("data initialization","d_1d_vec","double", - std::vector{static_cast(N), - static_cast(N)}); - d_1d_vec = std::vector>(N, Eigen::Matrix(N)); - - - { - std::vector d_1d_vec_flat__; - current_statement__ = 210; - d_1d_vec_flat__ = context__.vals_r("d_1d_vec"); - current_statement__ = 210; - pos__ = 1; - current_statement__ = 210; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 210; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 210; - assign(d_1d_vec, d_1d_vec_flat__[(pos__ - 1)], - "assigning variable d_1d_vec", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 210; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 211; - validate_non_negative_index("d_3d_vec", "N", N); - current_statement__ = 212; - validate_non_negative_index("d_3d_vec", "M", M); - current_statement__ = 213; - validate_non_negative_index("d_3d_vec", "K", K); - current_statement__ = 214; - validate_non_negative_index("d_3d_vec", "N", N); - current_statement__ = 215; - context__.validate_dims("data initialization","d_3d_vec","double", - std::vector{static_cast(N), - static_cast(M), static_cast(K), - static_cast(N)}); - d_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - - - { - std::vector d_3d_vec_flat__; - current_statement__ = 215; - d_3d_vec_flat__ = context__.vals_r("d_3d_vec"); - current_statement__ = 215; - pos__ = 1; - current_statement__ = 215; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 215; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 215; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 215; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 215; - assign(d_3d_vec, d_3d_vec_flat__[(pos__ - 1)], - "assigning variable d_3d_vec", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 215; - pos__ = (pos__ + 1); - } - } - } - } - } - current_statement__ = 216; - validate_non_negative_index("d_row_vec", "N", N); - current_statement__ = 217; - context__.validate_dims("data initialization","d_row_vec","double", - std::vector{static_cast(N)}); - d_row_vec__ = Eigen::Matrix(N); - new (&d_row_vec) Eigen::Map>(d_row_vec__.data(), N); - - - { - std::vector d_row_vec_flat__; - current_statement__ = 217; - d_row_vec_flat__ = context__.vals_r("d_row_vec"); - current_statement__ = 217; - pos__ = 1; - current_statement__ = 217; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 217; - assign(d_row_vec, d_row_vec_flat__[(pos__ - 1)], - "assigning variable d_row_vec", index_uni(sym1__)); - current_statement__ = 217; - pos__ = (pos__ + 1); - } - } - current_statement__ = 218; - validate_non_negative_index("d_1d_row_vec", "N", N); - current_statement__ = 219; - validate_non_negative_index("d_1d_row_vec", "N", N); - current_statement__ = 220; - context__.validate_dims("data initialization","d_1d_row_vec","double", - std::vector{static_cast(N), - static_cast(N)}); - d_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - - - { - std::vector d_1d_row_vec_flat__; - current_statement__ = 220; - d_1d_row_vec_flat__ = context__.vals_r("d_1d_row_vec"); - current_statement__ = 220; - pos__ = 1; - current_statement__ = 220; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 220; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 220; - assign(d_1d_row_vec, d_1d_row_vec_flat__[(pos__ - 1)], - "assigning variable d_1d_row_vec", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 220; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 221; - validate_non_negative_index("d_3d_row_vec", "N", N); - current_statement__ = 222; - validate_non_negative_index("d_3d_row_vec", "M", M); - current_statement__ = 223; - validate_non_negative_index("d_3d_row_vec", "K", K); - current_statement__ = 224; - validate_non_negative_index("d_3d_row_vec", "N", N); - current_statement__ = 225; - context__.validate_dims("data initialization","d_3d_row_vec","double", - std::vector{static_cast(N), - static_cast(M), static_cast(K), - static_cast(N)}); - d_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - - - { - std::vector d_3d_row_vec_flat__; - current_statement__ = 225; - d_3d_row_vec_flat__ = context__.vals_r("d_3d_row_vec"); - current_statement__ = 225; - pos__ = 1; - current_statement__ = 225; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 225; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 225; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 225; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 225; - assign(d_3d_row_vec, d_3d_row_vec_flat__[(pos__ - 1)], - "assigning variable d_3d_row_vec", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 225; - pos__ = (pos__ + 1); - } - } - } - } - } - current_statement__ = 226; - context__.validate_dims("data initialization","d_ar_mat","double", - std::vector{static_cast(4), - static_cast(5), static_cast(2), - static_cast(3)}); - d_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - - - { - std::vector d_ar_mat_flat__; - current_statement__ = 226; - d_ar_mat_flat__ = context__.vals_r("d_ar_mat"); - current_statement__ = 226; - pos__ = 1; - current_statement__ = 226; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 226; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 226; - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - current_statement__ = 226; - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - current_statement__ = 226; - assign(d_ar_mat, d_ar_mat_flat__[(pos__ - 1)], - "assigning variable d_ar_mat", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 226; - pos__ = (pos__ + 1); - } - } - } - } - } - current_statement__ = 226; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 226; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 226; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 226; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 226; - check_greater_or_equal(function__, - "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(d_ar_mat, "d_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 0); - } - } - } - } - current_statement__ = 226; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 226; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 226; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 226; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 226; - check_less_or_equal(function__, - "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(d_ar_mat, "d_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 1); - } - } - } - } - current_statement__ = 227; - validate_non_negative_index("d_simplex", "N", N); - current_statement__ = 228; - context__.validate_dims("data initialization","d_simplex","double", - std::vector{static_cast(N)}); - d_simplex__ = Eigen::Matrix(N); - new (&d_simplex) Eigen::Map>(d_simplex__.data(), N); - - - { - std::vector d_simplex_flat__; - current_statement__ = 228; - d_simplex_flat__ = context__.vals_r("d_simplex"); - current_statement__ = 228; - pos__ = 1; - current_statement__ = 228; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 228; - assign(d_simplex, d_simplex_flat__[(pos__ - 1)], - "assigning variable d_simplex", index_uni(sym1__)); - current_statement__ = 228; - pos__ = (pos__ + 1); - } - } - current_statement__ = 228; - check_simplex(function__, "d_simplex", d_simplex); - current_statement__ = 229; - validate_non_negative_index("d_1d_simplex", "N", N); - current_statement__ = 230; - validate_non_negative_index("d_1d_simplex", "N", N); - current_statement__ = 231; - context__.validate_dims("data initialization","d_1d_simplex","double", - std::vector{static_cast(N), - static_cast(N)}); - d_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - - - { - std::vector d_1d_simplex_flat__; - current_statement__ = 231; - d_1d_simplex_flat__ = context__.vals_r("d_1d_simplex"); - current_statement__ = 231; - pos__ = 1; - current_statement__ = 231; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 231; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 231; - assign(d_1d_simplex, d_1d_simplex_flat__[(pos__ - 1)], - "assigning variable d_1d_simplex", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 231; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 231; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 231; - check_simplex(function__, "d_1d_simplex[sym1__]", - d_1d_simplex[(sym1__ - 1)]); - } - current_statement__ = 232; - validate_non_negative_index("d_3d_simplex", "N", N); - current_statement__ = 233; - validate_non_negative_index("d_3d_simplex", "M", M); - current_statement__ = 234; - validate_non_negative_index("d_3d_simplex", "K", K); - current_statement__ = 235; - validate_non_negative_index("d_3d_simplex", "N", N); - current_statement__ = 236; - context__.validate_dims("data initialization","d_3d_simplex","double", - std::vector{static_cast(N), - static_cast(M), static_cast(K), - static_cast(N)}); - d_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - - - { - std::vector d_3d_simplex_flat__; - current_statement__ = 236; - d_3d_simplex_flat__ = context__.vals_r("d_3d_simplex"); - current_statement__ = 236; - pos__ = 1; - current_statement__ = 236; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 236; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 236; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 236; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 236; - assign(d_3d_simplex, d_3d_simplex_flat__[(pos__ - 1)], - "assigning variable d_3d_simplex", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 236; - pos__ = (pos__ + 1); - } - } - } - } - } - current_statement__ = 236; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 236; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 236; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 236; - check_simplex(function__, "d_3d_simplex[sym1__, sym2__, sym3__]", - d_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - - 1)]); - } - } - } - current_statement__ = 237; - context__.validate_dims("data initialization","d_cfcov_54","double", - std::vector{static_cast(5), - static_cast(4)}); - d_cfcov_54__ = Eigen::Matrix(5, 4); - new (&d_cfcov_54) Eigen::Map>(d_cfcov_54__.data(), 5, 4); - - - { - std::vector d_cfcov_54_flat__; - current_statement__ = 237; - d_cfcov_54_flat__ = context__.vals_r("d_cfcov_54"); - current_statement__ = 237; - pos__ = 1; - current_statement__ = 237; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 237; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 237; - assign(d_cfcov_54, d_cfcov_54_flat__[(pos__ - 1)], - "assigning variable d_cfcov_54", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 237; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 237; - check_cholesky_factor(function__, "d_cfcov_54", d_cfcov_54); - current_statement__ = 238; - context__.validate_dims("data initialization","d_cfcov_33","double", - std::vector{static_cast(3), - static_cast(3)}); - d_cfcov_33__ = Eigen::Matrix(3, 3); - new (&d_cfcov_33) Eigen::Map>(d_cfcov_33__.data(), 3, 3); - - - { - std::vector d_cfcov_33_flat__; - current_statement__ = 238; - d_cfcov_33_flat__ = context__.vals_r("d_cfcov_33"); - current_statement__ = 238; - pos__ = 1; - current_statement__ = 238; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 238; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 238; - assign(d_cfcov_33, d_cfcov_33_flat__[(pos__ - 1)], - "assigning variable d_cfcov_33", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 238; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 238; - check_cholesky_factor(function__, "d_cfcov_33", d_cfcov_33); - current_statement__ = 239; - validate_non_negative_index("d_cfcov_33_ar", "K", K); - current_statement__ = 240; - context__.validate_dims("data initialization","d_cfcov_33_ar","double", - std::vector{static_cast(K), - static_cast(3), static_cast(3)}); - d_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - - - { - std::vector d_cfcov_33_ar_flat__; - current_statement__ = 240; - d_cfcov_33_ar_flat__ = context__.vals_r("d_cfcov_33_ar"); - current_statement__ = 240; - pos__ = 1; - current_statement__ = 240; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 240; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 240; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 240; - assign(d_cfcov_33_ar, d_cfcov_33_ar_flat__[(pos__ - 1)], - "assigning variable d_cfcov_33_ar", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 240; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 240; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 240; - check_cholesky_factor(function__, "d_cfcov_33_ar[sym1__]", - d_cfcov_33_ar[(sym1__ - 1)]); - } - current_statement__ = 241; - context__.validate_dims("data initialization","d_int","int", - std::vector{}); - d_int = std::numeric_limits::min(); - - current_statement__ = 241; - d_int = context__.vals_i("d_int")[(1 - 1)]; - current_statement__ = 242; - validate_non_negative_index("d_int_array", "d_int", d_int); - current_statement__ = 243; - context__.validate_dims("data initialization","d_int_array","int", - std::vector{static_cast(d_int)}); - d_int_array = std::vector(d_int, std::numeric_limits::min()); - - current_statement__ = 243; - d_int_array = context__.vals_i("d_int_array"); - current_statement__ = 244; - validate_non_negative_index("d_int_array_2d", "d_int", d_int); - current_statement__ = 245; - context__.validate_dims("data initialization","d_int_array_2d","int", - std::vector{static_cast(d_int), - static_cast(2)}); - d_int_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::min())); - - - { - std::vector d_int_array_2d_flat__; - current_statement__ = 245; - d_int_array_2d_flat__ = context__.vals_i("d_int_array_2d"); - current_statement__ = 245; - pos__ = 1; - current_statement__ = 245; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 245; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 245; - assign(d_int_array_2d, d_int_array_2d_flat__[(pos__ - 1)], - "assigning variable d_int_array_2d", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 245; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 246; - validate_non_negative_index("d_int_array_3d", "d_int", d_int); - current_statement__ = 247; - context__.validate_dims("data initialization","d_int_array_3d","int", - std::vector{static_cast(d_int), - static_cast(2), static_cast(3)}); - d_int_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::min()))); - - - { - std::vector d_int_array_3d_flat__; - current_statement__ = 247; - d_int_array_3d_flat__ = context__.vals_i("d_int_array_3d"); - current_statement__ = 247; - pos__ = 1; - current_statement__ = 247; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 247; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 247; - for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { - current_statement__ = 247; - assign(d_int_array_3d, d_int_array_3d_flat__[(pos__ - 1)], - "assigning variable d_int_array_3d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 247; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 248; - context__.validate_dims("data initialization","d_real","double", - std::vector{}); - d_real = std::numeric_limits::quiet_NaN(); - - current_statement__ = 248; - d_real = context__.vals_r("d_real")[(1 - 1)]; - current_statement__ = 249; - validate_non_negative_index("d_real_array", "d_int", d_int); - current_statement__ = 250; - context__.validate_dims("data initialization","d_real_array","double", - std::vector{static_cast(d_int)}); - d_real_array = std::vector(d_int, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 250; - d_real_array = context__.vals_r("d_real_array"); - current_statement__ = 251; - validate_non_negative_index("d_real_array_2d", "d_int", d_int); - current_statement__ = 252; - context__.validate_dims("data initialization","d_real_array_2d", - "double", - std::vector{static_cast(d_int), - static_cast(2)}); - d_real_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::quiet_NaN())); - - - { - std::vector d_real_array_2d_flat__; - current_statement__ = 252; - d_real_array_2d_flat__ = context__.vals_r("d_real_array_2d"); - current_statement__ = 252; - pos__ = 1; - current_statement__ = 252; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 252; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 252; - assign(d_real_array_2d, d_real_array_2d_flat__[(pos__ - 1)], - "assigning variable d_real_array_2d", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 252; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 253; - validate_non_negative_index("d_real_array_3d", "d_int", d_int); - current_statement__ = 254; - context__.validate_dims("data initialization","d_real_array_3d", - "double", - std::vector{static_cast(d_int), - static_cast(2), static_cast(3)}); - d_real_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::quiet_NaN()))); - - - { - std::vector d_real_array_3d_flat__; - current_statement__ = 254; - d_real_array_3d_flat__ = context__.vals_r("d_real_array_3d"); - current_statement__ = 254; - pos__ = 1; - current_statement__ = 254; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 254; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 254; - for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { - current_statement__ = 254; - assign(d_real_array_3d, d_real_array_3d_flat__[(pos__ - 1)], - "assigning variable d_real_array_3d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 254; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 255; - validate_non_negative_index("d_matrix", "d_int", d_int); - current_statement__ = 256; - validate_non_negative_index("d_matrix", "d_int", d_int); - current_statement__ = 257; - context__.validate_dims("data initialization","d_matrix","double", - std::vector{static_cast(d_int), - static_cast(d_int)}); - d_matrix__ = Eigen::Matrix(d_int, d_int); - new (&d_matrix) Eigen::Map>(d_matrix__.data(), d_int, d_int); - - - { - std::vector d_matrix_flat__; - current_statement__ = 257; - d_matrix_flat__ = context__.vals_r("d_matrix"); - current_statement__ = 257; - pos__ = 1; - current_statement__ = 257; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 257; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 257; - assign(d_matrix, d_matrix_flat__[(pos__ - 1)], - "assigning variable d_matrix", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 257; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 258; - validate_non_negative_index("d_matrix_array", "d_int", d_int); - current_statement__ = 259; - validate_non_negative_index("d_matrix_array", "d_int", d_int); - current_statement__ = 260; - validate_non_negative_index("d_matrix_array", "d_int", d_int); - current_statement__ = 261; - context__.validate_dims("data initialization","d_matrix_array", - "double", - std::vector{static_cast(d_int), - static_cast(d_int), static_cast(d_int)}); - d_matrix_array = std::vector>(d_int, Eigen::Matrix(d_int, d_int)); - - - { - std::vector d_matrix_array_flat__; - current_statement__ = 261; - d_matrix_array_flat__ = context__.vals_r("d_matrix_array"); - current_statement__ = 261; - pos__ = 1; - current_statement__ = 261; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 261; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 261; - for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { - current_statement__ = 261; - assign(d_matrix_array, d_matrix_array_flat__[(pos__ - 1)], - "assigning variable d_matrix_array", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 261; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 262; - validate_non_negative_index("d_matrix_array_2d", "d_int", d_int); - current_statement__ = 263; - validate_non_negative_index("d_matrix_array_2d", "d_int", d_int); - current_statement__ = 264; - validate_non_negative_index("d_matrix_array_2d", "d_int", d_int); - current_statement__ = 265; - context__.validate_dims("data initialization","d_matrix_array_2d", - "double", - std::vector{static_cast(d_int), - static_cast(2), static_cast(d_int), - static_cast(d_int)}); - d_matrix_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int, d_int))); - - - { - std::vector d_matrix_array_2d_flat__; - current_statement__ = 265; - d_matrix_array_2d_flat__ = context__.vals_r("d_matrix_array_2d"); - current_statement__ = 265; - pos__ = 1; - current_statement__ = 265; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 265; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 265; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 265; - for (int sym4__ = 1; sym4__ <= d_int; ++sym4__) { - current_statement__ = 265; - assign(d_matrix_array_2d, - d_matrix_array_2d_flat__[(pos__ - 1)], - "assigning variable d_matrix_array_2d", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 265; - pos__ = (pos__ + 1); - } - } - } - } - } - current_statement__ = 266; - validate_non_negative_index("d_matrix_array_3d", "d_int", d_int); - current_statement__ = 267; - validate_non_negative_index("d_matrix_array_3d", "d_int", d_int); - current_statement__ = 268; - validate_non_negative_index("d_matrix_array_3d", "d_int", d_int); - current_statement__ = 269; - context__.validate_dims("data initialization","d_matrix_array_3d", - "double", - std::vector{static_cast(d_int), - static_cast(2), static_cast(3), - static_cast(d_int), static_cast(d_int)}); - d_matrix_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int, d_int)))); - - - { - std::vector d_matrix_array_3d_flat__; - current_statement__ = 269; - d_matrix_array_3d_flat__ = context__.vals_r("d_matrix_array_3d"); - current_statement__ = 269; - pos__ = 1; - current_statement__ = 269; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 269; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 269; - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - current_statement__ = 269; - for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { - current_statement__ = 269; - for (int sym5__ = 1; sym5__ <= d_int; ++sym5__) { - current_statement__ = 269; - assign(d_matrix_array_3d, - d_matrix_array_3d_flat__[(pos__ - 1)], - "assigning variable d_matrix_array_3d", index_uni(sym5__), - index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 269; - pos__ = (pos__ + 1); - } - } - } - } - } - } - current_statement__ = 270; - validate_non_negative_index("d_vector", "d_int", d_int); - current_statement__ = 271; - context__.validate_dims("data initialization","d_vector","double", - std::vector{static_cast(d_int)}); - d_vector__ = Eigen::Matrix(d_int); - new (&d_vector) Eigen::Map>(d_vector__.data(), d_int); - - - { - std::vector d_vector_flat__; - current_statement__ = 271; - d_vector_flat__ = context__.vals_r("d_vector"); - current_statement__ = 271; - pos__ = 1; - current_statement__ = 271; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 271; - assign(d_vector, d_vector_flat__[(pos__ - 1)], - "assigning variable d_vector", index_uni(sym1__)); - current_statement__ = 271; - pos__ = (pos__ + 1); - } - } - current_statement__ = 272; - validate_non_negative_index("d_vector_array", "d_int", d_int); - current_statement__ = 273; - validate_non_negative_index("d_vector_array", "d_int", d_int); - current_statement__ = 274; - context__.validate_dims("data initialization","d_vector_array", - "double", - std::vector{static_cast(d_int), - static_cast(d_int)}); - d_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); - - - { - std::vector d_vector_array_flat__; - current_statement__ = 274; - d_vector_array_flat__ = context__.vals_r("d_vector_array"); - current_statement__ = 274; - pos__ = 1; - current_statement__ = 274; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 274; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 274; - assign(d_vector_array, d_vector_array_flat__[(pos__ - 1)], - "assigning variable d_vector_array", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 274; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 275; - validate_non_negative_index("d_vector_array_2d", "d_int", d_int); - current_statement__ = 276; - validate_non_negative_index("d_vector_array_2d", "d_int", d_int); - current_statement__ = 277; - context__.validate_dims("data initialization","d_vector_array_2d", - "double", - std::vector{static_cast(d_int), - static_cast(2), static_cast(d_int)}); - d_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); - - - { - std::vector d_vector_array_2d_flat__; - current_statement__ = 277; - d_vector_array_2d_flat__ = context__.vals_r("d_vector_array_2d"); - current_statement__ = 277; - pos__ = 1; - current_statement__ = 277; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 277; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 277; - for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { - current_statement__ = 277; - assign(d_vector_array_2d, - d_vector_array_2d_flat__[(pos__ - 1)], - "assigning variable d_vector_array_2d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 277; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 278; - validate_non_negative_index("d_vector_array_3d", "d_int", d_int); - current_statement__ = 279; - validate_non_negative_index("d_vector_array_3d", "d_int", d_int); - current_statement__ = 280; - context__.validate_dims("data initialization","d_vector_array_3d", - "double", - std::vector{static_cast(d_int), - static_cast(2), static_cast(3), - static_cast(d_int)}); - d_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); - - - { - std::vector d_vector_array_3d_flat__; - current_statement__ = 280; - d_vector_array_3d_flat__ = context__.vals_r("d_vector_array_3d"); - current_statement__ = 280; - pos__ = 1; - current_statement__ = 280; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 280; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 280; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 280; - for (int sym4__ = 1; sym4__ <= d_int; ++sym4__) { - current_statement__ = 280; - assign(d_vector_array_3d, - d_vector_array_3d_flat__[(pos__ - 1)], - "assigning variable d_vector_array_3d", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 280; - pos__ = (pos__ + 1); - } - } - } - } - } - current_statement__ = 281; - validate_non_negative_index("d_row_vector", "d_int", d_int); - current_statement__ = 282; - context__.validate_dims("data initialization","d_row_vector","double", - std::vector{static_cast(d_int)}); - d_row_vector__ = Eigen::Matrix(d_int); - new (&d_row_vector) Eigen::Map>(d_row_vector__.data(), d_int); - - - { - std::vector d_row_vector_flat__; - current_statement__ = 282; - d_row_vector_flat__ = context__.vals_r("d_row_vector"); - current_statement__ = 282; - pos__ = 1; - current_statement__ = 282; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 282; - assign(d_row_vector, d_row_vector_flat__[(pos__ - 1)], - "assigning variable d_row_vector", index_uni(sym1__)); - current_statement__ = 282; - pos__ = (pos__ + 1); - } - } - current_statement__ = 283; - validate_non_negative_index("d_row_vector_array", "d_int", d_int); - current_statement__ = 284; - validate_non_negative_index("d_row_vector_array", "d_int", d_int); - current_statement__ = 285; - context__.validate_dims("data initialization","d_row_vector_array", - "double", - std::vector{static_cast(d_int), - static_cast(d_int)}); - d_row_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); - - - { - std::vector d_row_vector_array_flat__; - current_statement__ = 285; - d_row_vector_array_flat__ = context__.vals_r("d_row_vector_array"); - current_statement__ = 285; - pos__ = 1; - current_statement__ = 285; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 285; - for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { - current_statement__ = 285; - assign(d_row_vector_array, - d_row_vector_array_flat__[(pos__ - 1)], - "assigning variable d_row_vector_array", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 285; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 286; - validate_non_negative_index("d_row_vector_array_2d", "d_int", d_int); - current_statement__ = 287; - validate_non_negative_index("d_row_vector_array_2d", "d_int", d_int); - current_statement__ = 288; - context__.validate_dims("data initialization","d_row_vector_array_2d", - "double", - std::vector{static_cast(d_int), - static_cast(2), static_cast(d_int)}); - d_row_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); - - - { - std::vector d_row_vector_array_2d_flat__; - current_statement__ = 288; - d_row_vector_array_2d_flat__ = context__.vals_r("d_row_vector_array_2d"); - current_statement__ = 288; - pos__ = 1; - current_statement__ = 288; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 288; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 288; - for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { - current_statement__ = 288; - assign(d_row_vector_array_2d, - d_row_vector_array_2d_flat__[(pos__ - 1)], - "assigning variable d_row_vector_array_2d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 288; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 289; - validate_non_negative_index("d_row_vector_array_3d", "d_int", d_int); - current_statement__ = 290; - validate_non_negative_index("d_row_vector_array_3d", "d_int", d_int); - current_statement__ = 291; - context__.validate_dims("data initialization","d_row_vector_array_3d", - "double", - std::vector{static_cast(d_int), - static_cast(2), static_cast(3), - static_cast(d_int)}); - d_row_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); - - - { - std::vector d_row_vector_array_3d_flat__; - current_statement__ = 291; - d_row_vector_array_3d_flat__ = context__.vals_r("d_row_vector_array_3d"); - current_statement__ = 291; - pos__ = 1; - current_statement__ = 291; - for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { - current_statement__ = 291; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 291; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 291; - for (int sym4__ = 1; sym4__ <= d_int; ++sym4__) { - current_statement__ = 291; - assign(d_row_vector_array_3d, - d_row_vector_array_3d_flat__[(pos__ - 1)], - "assigning variable d_row_vector_array_3d", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 291; - pos__ = (pos__ + 1); - } - } - } - } - } - current_statement__ = 292; - td_int = std::numeric_limits::min(); - - current_statement__ = 293; - validate_non_negative_index("td_1d", "N", N); - current_statement__ = 294; - td_1d = std::vector(N, std::numeric_limits::min()); - - current_statement__ = 295; - validate_non_negative_index("td_1dk", "M", M); - current_statement__ = 296; - td_1dk = std::vector(M, std::numeric_limits::min()); - - current_statement__ = 296; - assign(td_1dk, rep_array(1, M), "assigning variable td_1dk"); - current_statement__ = 297; - td_a = std::numeric_limits::min(); - - current_statement__ = 297; - td_a = N; - current_statement__ = 298; - td_b = std::numeric_limits::quiet_NaN(); - - current_statement__ = 298; - td_b = (N * J); - current_statement__ = 299; - td_c = std::numeric_limits::quiet_NaN(); - - current_statement__ = 299; - td_c = foo_bar1(td_b, pstream__); - current_statement__ = 300; - td_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(td_ar_mat, std::numeric_limits::quiet_NaN()); - - current_statement__ = 301; - validate_non_negative_index("td_simplex", "N", N); - current_statement__ = 302; - td_simplex__ = Eigen::Matrix(N); - new (&td_simplex) Eigen::Map>(td_simplex__.data(), N); - stan::math::fill(td_simplex, std::numeric_limits::quiet_NaN()); - - current_statement__ = 303; - validate_non_negative_index("td_1d_simplex", "N", N); - current_statement__ = 304; - validate_non_negative_index("td_1d_simplex", "N", N); - current_statement__ = 305; - td_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(td_1d_simplex, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 306; - validate_non_negative_index("td_3d_simplex", "N", N); - current_statement__ = 307; - validate_non_negative_index("td_3d_simplex", "M", M); - current_statement__ = 308; - validate_non_negative_index("td_3d_simplex", "K", K); - current_statement__ = 309; - validate_non_negative_index("td_3d_simplex", "N", N); - current_statement__ = 310; - td_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(td_3d_simplex, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 311; - td_cfcov_54__ = Eigen::Matrix(5, 5); - new (&td_cfcov_54) Eigen::Map>(td_cfcov_54__.data(), 5, 5); - stan::math::fill(td_cfcov_54, std::numeric_limits::quiet_NaN()); - - current_statement__ = 312; - td_cfcov_33__ = Eigen::Matrix(3, 3); - new (&td_cfcov_33) Eigen::Map>(td_cfcov_33__.data(), 3, 3); - stan::math::fill(td_cfcov_33, std::numeric_limits::quiet_NaN()); - - current_statement__ = 313; - x__ = Eigen::Matrix(2); - new (&x) Eigen::Map>(x__.data(), 2); - stan::math::fill(x, std::numeric_limits::quiet_NaN()); - - current_statement__ = 314; - y__ = Eigen::Matrix(2); - new (&y) Eigen::Map>(y__.data(), 2); - stan::math::fill(y, std::numeric_limits::quiet_NaN()); - - current_statement__ = 315; - dat = std::vector(0, std::numeric_limits::quiet_NaN()); - - current_statement__ = 316; - dat_int = std::vector(0, std::numeric_limits::min()); - - current_statement__ = 317; - x_r = std::vector>(0, std::vector(0, std::numeric_limits::quiet_NaN())); - - - current_statement__ = 318; - x_i = std::vector>(0, std::vector(0, std::numeric_limits::min())); - - - current_statement__ = 319; - td_int = (primitive_value(1) || primitive_value(2)); - current_statement__ = 320; - td_int = (primitive_value(1) && primitive_value(2)); - current_statement__ = 329; - for (int i = 1; i <= 2; ++i) { - current_statement__ = 327; - for (int j = 1; j <= 3; ++j) { - current_statement__ = 325; - for (int m = 1; m <= 4; ++m) { - current_statement__ = 323; - for (int n = 1; n <= 5; ++n) { - current_statement__ = 321; - assign(td_ar_mat, 0.4, - "assigning variable td_ar_mat", index_uni(m), index_uni(n), - index_uni(i), index_uni(j)); - } - } - } - } - current_statement__ = 340; - for (int i = 1; i <= N; ++i) { - current_statement__ = 330; - assign(td_simplex, (1.0 / N), - "assigning variable td_simplex", index_uni(i)); - current_statement__ = 338; - for (int n = 1; n <= N; ++n) { - current_statement__ = 331; - assign(td_1d_simplex, (1.0 / N), - "assigning variable td_1d_simplex", index_uni(n), index_uni(i)); - current_statement__ = 336; - for (int m = 1; m <= M; ++m) { - current_statement__ = 334; - for (int k = 1; k <= K; ++k) { - current_statement__ = 332; - assign(td_3d_simplex, (1.0 / N), - "assigning variable td_3d_simplex", index_uni(n), - index_uni(m), - index_uni(k), - index_uni(i)); - } - } - } - } - current_statement__ = 346; - for (int i = 1; i <= 4; ++i) { - current_statement__ = 344; - for (int j = 1; j <= 5; ++j) { - Eigen::Matrix l_mat; - l_mat = Eigen::Matrix(2, 3); - stan::math::fill(l_mat, std::numeric_limits::quiet_NaN()); - - current_statement__ = 341; - assign(l_mat, - rvalue(d_ar_mat, "d_ar_mat", index_uni(i), index_uni(j)), - "assigning variable l_mat"); - current_statement__ = 342; - if (pstream__) { - stan_print(pstream__, "ar dim1: "); - stan_print(pstream__, i); - stan_print(pstream__, " ar dim2: "); - stan_print(pstream__, j); - stan_print(pstream__, " matrix: "); - stan_print(pstream__, l_mat); - stan_print(pstream__, "\n"); - } - } - } - current_statement__ = 347; - assign(td_cfcov_54, diag_matrix(rep_vector(1, rows(td_cfcov_54))), - "assigning variable td_cfcov_54"); - current_statement__ = 348; - assign(td_cfcov_33, diag_matrix(rep_vector(1, rows(td_cfcov_33))), - "assigning variable td_cfcov_33"); - { - double z; - z = std::numeric_limits::quiet_NaN(); - - Eigen::Matrix blocked_tdata_vs; - blocked_tdata_vs = Eigen::Matrix(2); - stan::math::fill(blocked_tdata_vs, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 351; - for (int sym1__ = 1; sym1__ <= stan::math::size(blocked_tdata_vs); - ++sym1__) { - { - double v; - current_statement__ = 351; - v = blocked_tdata_vs[(sym1__ - 1)]; - current_statement__ = 352; - z = 0; - } - } - std::vector indices; - indices = std::vector(4, std::numeric_limits::min()); - - current_statement__ = 353; - assign(indices, std::vector{1, 2, 3, 4}, - "assigning variable indices"); - { - std::vector sym1__; - current_statement__ = 354; - assign(sym1__, rvalue(indices, "indices", index_min_max(1, 3)), - "assigning variable sym1__"); - current_statement__ = 354; - for (int sym2__ = 1; sym2__ <= stan::math::size(sym1__); ++sym2__) { - { - int i; - current_statement__ = 354; - i = sym1__[(sym2__ - 1)]; - current_statement__ = 355; - z = i; - } - } - } - } - current_statement__ = 357; - assign(td_1dk, - rvalue(td_1d, "td_1d", index_multi(stan::model::deep_copy(td_1dk))), - "assigning variable td_1dk"); - current_statement__ = 358; - assign(td_simplex, - rvalue(td_1d_simplex, "td_1d_simplex", index_uni(1), index_omni()), - "assigning variable td_simplex"); - current_statement__ = 359; - assign(td_simplex, - rvalue(td_1d_simplex, "td_1d_simplex", index_uni(1), index_omni()), - "assigning variable td_simplex"); - current_statement__ = 360; - assign(td_simplex, - rvalue(td_1d_simplex, "td_1d_simplex", - index_uni(1), index_min_max(1, N)), "assigning variable td_simplex"); - current_statement__ = 361; - arr_mul_ind = std::vector>(2, std::vector(2, std::numeric_limits::min())); - - - current_statement__ = 362; - assign(arr_mul_ind, std::vector{1, 1}, - "assigning variable arr_mul_ind", index_uni(1), index_min_max(1, 2)); - current_statement__ = 363; - x_mul_ind = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 363; - assign(x_mul_ind, std::vector{1, 2}, - "assigning variable x_mul_ind"); - current_statement__ = 364; - transformed_data_real = std::numeric_limits::quiet_NaN(); - - current_statement__ = 365; - validate_non_negative_index("transformed_data_real_array", "d_int", - d_int); - current_statement__ = 366; - transformed_data_real_array = std::vector(d_int, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 367; - validate_non_negative_index("transformed_data_real_array_2d", "d_int", - d_int); - current_statement__ = 368; - transformed_data_real_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::quiet_NaN())); - - - current_statement__ = 369; - validate_non_negative_index("transformed_data_real_array_3d", "d_int", - d_int); - current_statement__ = 370; - transformed_data_real_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::quiet_NaN()))); - - - current_statement__ = 371; - validate_non_negative_index("transformed_data_matrix", "d_int", d_int); - current_statement__ = 372; - validate_non_negative_index("transformed_data_matrix", "d_int", d_int); - current_statement__ = 373; - transformed_data_matrix__ = Eigen::Matrix(d_int, d_int); - new (&transformed_data_matrix) Eigen::Map>(transformed_data_matrix__.data(), d_int, d_int); - stan::math::fill(transformed_data_matrix, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 374; - validate_non_negative_index("transformed_data_matrix_array", "d_int", - d_int); - current_statement__ = 375; - validate_non_negative_index("transformed_data_matrix_array", "d_int", - d_int); - current_statement__ = 376; - validate_non_negative_index("transformed_data_matrix_array", "d_int", - d_int); - current_statement__ = 377; - transformed_data_matrix_array = std::vector>(d_int, Eigen::Matrix(d_int, d_int)); - stan::math::fill(transformed_data_matrix_array, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 378; - validate_non_negative_index("transformed_data_matrix_array_2d", - "d_int", d_int); - current_statement__ = 379; - validate_non_negative_index("transformed_data_matrix_array_2d", - "d_int", d_int); - current_statement__ = 380; - validate_non_negative_index("transformed_data_matrix_array_2d", - "d_int", d_int); - current_statement__ = 381; - transformed_data_matrix_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int, d_int))); - stan::math::fill(transformed_data_matrix_array_2d, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 382; - validate_non_negative_index("transformed_data_matrix_array_3d", - "d_int", d_int); - current_statement__ = 383; - validate_non_negative_index("transformed_data_matrix_array_3d", - "d_int", d_int); - current_statement__ = 384; - validate_non_negative_index("transformed_data_matrix_array_3d", - "d_int", d_int); - current_statement__ = 385; - transformed_data_matrix_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int, d_int)))); - stan::math::fill(transformed_data_matrix_array_3d, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 386; - validate_non_negative_index("transformed_data_vector", "d_int", d_int); - current_statement__ = 387; - transformed_data_vector__ = Eigen::Matrix(d_int); - new (&transformed_data_vector) Eigen::Map>(transformed_data_vector__.data(), d_int); - stan::math::fill(transformed_data_vector, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 388; - validate_non_negative_index("transformed_data_vector_array", "d_int", - d_int); - current_statement__ = 389; - validate_non_negative_index("transformed_data_vector_array", "d_int", - d_int); - current_statement__ = 390; - transformed_data_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); - stan::math::fill(transformed_data_vector_array, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 391; - validate_non_negative_index("transformed_data_vector_array_2d", - "d_int", d_int); - current_statement__ = 392; - validate_non_negative_index("transformed_data_vector_array_2d", - "d_int", d_int); - current_statement__ = 393; - transformed_data_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); - stan::math::fill(transformed_data_vector_array_2d, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 394; - validate_non_negative_index("transformed_data_vector_array_3d", - "d_int", d_int); - current_statement__ = 395; - validate_non_negative_index("transformed_data_vector_array_3d", - "d_int", d_int); - current_statement__ = 396; - transformed_data_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); - stan::math::fill(transformed_data_vector_array_3d, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 397; - validate_non_negative_index("transformed_data_row_vector", "d_int", - d_int); - current_statement__ = 398; - transformed_data_row_vector__ = Eigen::Matrix(d_int); - new (&transformed_data_row_vector) Eigen::Map>(transformed_data_row_vector__.data(), d_int); - stan::math::fill(transformed_data_row_vector, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 399; - validate_non_negative_index("transformed_data_row_vector_array", - "d_int", d_int); - current_statement__ = 400; - validate_non_negative_index("transformed_data_row_vector_array", - "d_int", d_int); - current_statement__ = 401; - transformed_data_row_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); - stan::math::fill(transformed_data_row_vector_array, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 402; - validate_non_negative_index("transformed_data_row_vector_array_2d", - "d_int", d_int); - current_statement__ = 403; - validate_non_negative_index("transformed_data_row_vector_array_2d", - "d_int", d_int); - current_statement__ = 404; - transformed_data_row_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); - stan::math::fill(transformed_data_row_vector_array_2d, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 405; - validate_non_negative_index("transformed_data_row_vector_array_3d", - "d_int", d_int); - current_statement__ = 406; - validate_non_negative_index("transformed_data_row_vector_array_3d", - "d_int", d_int); - current_statement__ = 407; - transformed_data_row_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); - stan::math::fill(transformed_data_row_vector_array_3d, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 408; - transformed_data_real = pow(d_int, d_int); - current_statement__ = 409; - transformed_data_real = pow(d_real, d_int); - current_statement__ = 410; - transformed_data_real = pow(d_int, d_real); - current_statement__ = 411; - transformed_data_real = pow(d_real, d_real); - current_statement__ = 412; - assign(transformed_data_real_array, pow(d_int_array, d_int), - "assigning variable transformed_data_real_array"); - current_statement__ = 413; - assign(transformed_data_real_array, pow(d_int_array, d_real), - "assigning variable transformed_data_real_array"); - current_statement__ = 414; - assign(transformed_data_real_array_2d, pow(d_int_array_2d, d_int), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 415; - assign(transformed_data_real_array_2d, pow(d_int_array_2d, d_real), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 416; - assign(transformed_data_real_array_3d, pow(d_int_array_3d, d_int), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 417; - assign(transformed_data_real_array_3d, pow(d_int_array_3d, d_real), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 418; - assign(transformed_data_real_array, pow(d_int, d_int_array), - "assigning variable transformed_data_real_array"); - current_statement__ = 419; - assign(transformed_data_real_array, pow(d_real, d_int_array), - "assigning variable transformed_data_real_array"); - current_statement__ = 420; - assign(transformed_data_real_array_2d, pow(d_int, d_int_array_2d), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 421; - assign(transformed_data_real_array_2d, pow(d_real, d_int_array_2d), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 422; - assign(transformed_data_real_array_3d, pow(d_int, d_int_array_3d), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 423; - assign(transformed_data_real_array_3d, pow(d_real, d_int_array_3d), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 424; - assign(transformed_data_real_array, pow(d_int, d_real_array), - "assigning variable transformed_data_real_array"); - current_statement__ = 425; - assign(transformed_data_real_array, pow(d_real, d_real_array), - "assigning variable transformed_data_real_array"); - current_statement__ = 426; - assign(transformed_data_real_array_2d, pow(d_int, d_real_array_2d), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 427; - assign(transformed_data_real_array_2d, pow(d_real, d_real_array_2d), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 428; - assign(transformed_data_real_array_3d, pow(d_int, d_real_array_3d), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 429; - assign(transformed_data_real_array_3d, pow(d_real, d_real_array_3d), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 430; - assign(transformed_data_real_array, pow(d_real_array, d_int), - "assigning variable transformed_data_real_array"); - current_statement__ = 431; - assign(transformed_data_real_array, pow(d_real_array, d_real), - "assigning variable transformed_data_real_array"); - current_statement__ = 432; - assign(transformed_data_real_array_2d, pow(d_real_array_2d, d_int), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 433; - assign(transformed_data_real_array_2d, pow(d_real_array_2d, d_real), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 434; - assign(transformed_data_real_array_3d, pow(d_real_array_3d, d_int), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 435; - assign(transformed_data_real_array_3d, pow(d_real_array_3d, d_real), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 436; - assign(transformed_data_real_array, pow(d_int_array, d_int_array), - "assigning variable transformed_data_real_array"); - current_statement__ = 437; - assign(transformed_data_real_array, pow(d_real_array, d_real_array), - "assigning variable transformed_data_real_array"); - current_statement__ = 438; - assign(transformed_data_real_array_2d, - pow(d_int_array_2d, d_int_array_2d), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 439; - assign(transformed_data_real_array_2d, - pow(d_real_array_2d, d_real_array_2d), - "assigning variable transformed_data_real_array_2d"); - current_statement__ = 440; - assign(transformed_data_real_array_3d, - pow(d_int_array_3d, d_int_array_3d), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 441; - assign(transformed_data_real_array_3d, - pow(d_real_array_3d, d_real_array_3d), - "assigning variable transformed_data_real_array_3d"); - current_statement__ = 442; - assign(transformed_data_vector, pow(d_vector, d_int), - "assigning variable transformed_data_vector"); - current_statement__ = 443; - assign(transformed_data_vector, pow(d_vector, d_real), - "assigning variable transformed_data_vector"); - current_statement__ = 444; - assign(transformed_data_vector, - stan::math::fma(d_vector, d_vector, d_vector), - "assigning variable transformed_data_vector"); - current_statement__ = 445; - assign(transformed_data_vector, - stan::math::fma(d_vector, d_vector, d_real), - "assigning variable transformed_data_vector"); - current_statement__ = 446; - assign(transformed_data_vector, - stan::math::fma(d_real, d_vector, d_real), - "assigning variable transformed_data_vector"); - current_statement__ = 447; - assign(transformed_data_vector_array, pow(d_vector_array, d_int), - "assigning variable transformed_data_vector_array"); - current_statement__ = 448; - assign(transformed_data_vector_array, pow(d_vector_array, d_real), - "assigning variable transformed_data_vector_array"); - current_statement__ = 449; - assign(transformed_data_vector_array_2d, pow(d_vector_array_2d, d_int), - "assigning variable transformed_data_vector_array_2d"); - current_statement__ = 450; - assign(transformed_data_vector_array_2d, - pow(d_vector_array_2d, d_real), - "assigning variable transformed_data_vector_array_2d"); - current_statement__ = 451; - assign(transformed_data_vector_array_3d, pow(d_vector_array_3d, d_int), - "assigning variable transformed_data_vector_array_3d"); - current_statement__ = 452; - assign(transformed_data_vector_array_3d, - pow(d_vector_array_3d, d_real), - "assigning variable transformed_data_vector_array_3d"); - current_statement__ = 453; - assign(transformed_data_vector, pow(d_int, d_vector), - "assigning variable transformed_data_vector"); - current_statement__ = 454; - assign(transformed_data_vector, pow(d_real, d_vector), - "assigning variable transformed_data_vector"); - current_statement__ = 455; - assign(transformed_data_vector_array, pow(d_int, d_vector_array), - "assigning variable transformed_data_vector_array"); - current_statement__ = 456; - assign(transformed_data_vector_array, pow(d_real, d_vector_array), - "assigning variable transformed_data_vector_array"); - current_statement__ = 457; - assign(transformed_data_vector_array_2d, pow(d_int, d_vector_array_2d), - "assigning variable transformed_data_vector_array_2d"); - current_statement__ = 458; - assign(transformed_data_vector_array_2d, - pow(d_real, d_vector_array_2d), - "assigning variable transformed_data_vector_array_2d"); - current_statement__ = 459; - assign(transformed_data_vector_array_3d, pow(d_int, d_vector_array_3d), - "assigning variable transformed_data_vector_array_3d"); - current_statement__ = 460; - assign(transformed_data_vector_array_3d, - pow(d_real, d_vector_array_3d), - "assigning variable transformed_data_vector_array_3d"); - current_statement__ = 461; - assign(transformed_data_vector, pow(d_vector, d_vector), - "assigning variable transformed_data_vector"); - current_statement__ = 462; - assign(transformed_data_vector, - stan::math::fma(d_vector, d_vector, d_vector), - "assigning variable transformed_data_vector"); - current_statement__ = 463; - assign(transformed_data_vector, - stan::math::fma(d_vector, d_vector, d_real), - "assigning variable transformed_data_vector"); - current_statement__ = 464; - assign(transformed_data_vector_array, - pow(d_vector_array, d_vector_array), - "assigning variable transformed_data_vector_array"); - current_statement__ = 465; - assign(transformed_data_vector_array_2d, - pow(d_vector_array_2d, d_vector_array_2d), - "assigning variable transformed_data_vector_array_2d"); - current_statement__ = 466; - assign(transformed_data_vector_array_3d, - pow(d_vector_array_3d, d_vector_array_3d), - "assigning variable transformed_data_vector_array_3d"); - current_statement__ = 467; - assign(transformed_data_row_vector, pow(d_row_vector, d_int), - "assigning variable transformed_data_row_vector"); - current_statement__ = 468; - assign(transformed_data_row_vector, pow(d_row_vector, d_real), - "assigning variable transformed_data_row_vector"); - current_statement__ = 469; - assign(transformed_data_row_vector_array, - pow(d_row_vector_array, d_int), - "assigning variable transformed_data_row_vector_array"); - current_statement__ = 470; - assign(transformed_data_row_vector_array, - pow(d_row_vector_array, d_real), - "assigning variable transformed_data_row_vector_array"); - current_statement__ = 471; - assign(transformed_data_row_vector_array_2d, - pow(d_row_vector_array_2d, d_int), - "assigning variable transformed_data_row_vector_array_2d"); - current_statement__ = 472; - assign(transformed_data_row_vector_array_2d, - pow(d_row_vector_array_2d, d_real), - "assigning variable transformed_data_row_vector_array_2d"); - current_statement__ = 473; - assign(transformed_data_row_vector_array_3d, - pow(d_row_vector_array_3d, d_int), - "assigning variable transformed_data_row_vector_array_3d"); - current_statement__ = 474; - assign(transformed_data_row_vector_array_3d, - pow(d_row_vector_array_3d, d_real), - "assigning variable transformed_data_row_vector_array_3d"); - current_statement__ = 475; - assign(transformed_data_row_vector, pow(d_int, d_row_vector), - "assigning variable transformed_data_row_vector"); - current_statement__ = 476; - assign(transformed_data_row_vector, pow(d_real, d_row_vector), - "assigning variable transformed_data_row_vector"); - current_statement__ = 477; - assign(transformed_data_row_vector_array, - pow(d_int, d_row_vector_array), - "assigning variable transformed_data_row_vector_array"); - current_statement__ = 478; - assign(transformed_data_row_vector_array, - pow(d_real, d_row_vector_array), - "assigning variable transformed_data_row_vector_array"); - current_statement__ = 479; - assign(transformed_data_row_vector_array_2d, - pow(d_int, d_row_vector_array_2d), - "assigning variable transformed_data_row_vector_array_2d"); - current_statement__ = 480; - assign(transformed_data_row_vector_array_2d, - pow(d_real, d_row_vector_array_2d), - "assigning variable transformed_data_row_vector_array_2d"); - current_statement__ = 481; - assign(transformed_data_row_vector_array_3d, - pow(d_int, d_row_vector_array_3d), - "assigning variable transformed_data_row_vector_array_3d"); - current_statement__ = 482; - assign(transformed_data_row_vector_array_3d, - pow(d_real, d_row_vector_array_3d), - "assigning variable transformed_data_row_vector_array_3d"); - current_statement__ = 483; - assign(transformed_data_row_vector, pow(d_row_vector, d_row_vector), - "assigning variable transformed_data_row_vector"); - current_statement__ = 484; - assign(transformed_data_row_vector_array, - pow(d_row_vector_array, d_row_vector_array), - "assigning variable transformed_data_row_vector_array"); - current_statement__ = 485; - assign(transformed_data_row_vector_array_2d, - pow(d_row_vector_array_2d, d_row_vector_array_2d), - "assigning variable transformed_data_row_vector_array_2d"); - current_statement__ = 486; - assign(transformed_data_row_vector_array_3d, - pow(d_row_vector_array_3d, d_row_vector_array_3d), - "assigning variable transformed_data_row_vector_array_3d"); - current_statement__ = 487; - assign(transformed_data_matrix, pow(d_matrix, d_int), - "assigning variable transformed_data_matrix"); - current_statement__ = 488; - assign(transformed_data_matrix, pow(d_matrix, d_real), - "assigning variable transformed_data_matrix"); - current_statement__ = 489; - assign(transformed_data_matrix, - stan::math::fma(d_matrix, d_matrix, d_matrix), - "assigning variable transformed_data_matrix"); - current_statement__ = 490; - assign(transformed_data_matrix, - stan::math::fma(d_matrix, d_matrix, d_real), - "assigning variable transformed_data_matrix"); - current_statement__ = 491; - assign(transformed_data_matrix_array, pow(d_matrix_array, d_int), - "assigning variable transformed_data_matrix_array"); - current_statement__ = 492; - assign(transformed_data_matrix_array, pow(d_matrix_array, d_real), - "assigning variable transformed_data_matrix_array"); - current_statement__ = 493; - assign(transformed_data_matrix_array_2d, pow(d_matrix_array_2d, d_int), - "assigning variable transformed_data_matrix_array_2d"); - current_statement__ = 494; - assign(transformed_data_matrix_array_2d, - pow(d_matrix_array_2d, d_real), - "assigning variable transformed_data_matrix_array_2d"); - current_statement__ = 495; - assign(transformed_data_matrix_array_3d, pow(d_matrix_array_3d, d_int), - "assigning variable transformed_data_matrix_array_3d"); - current_statement__ = 496; - assign(transformed_data_matrix_array_3d, - pow(d_matrix_array_3d, d_real), - "assigning variable transformed_data_matrix_array_3d"); - current_statement__ = 497; - assign(transformed_data_matrix, pow(d_int, d_matrix), - "assigning variable transformed_data_matrix"); - current_statement__ = 498; - assign(transformed_data_matrix, pow(d_real, d_matrix), - "assigning variable transformed_data_matrix"); - current_statement__ = 499; - assign(transformed_data_matrix_array, pow(d_int, d_matrix_array), - "assigning variable transformed_data_matrix_array"); - current_statement__ = 500; - assign(transformed_data_matrix_array, pow(d_real, d_matrix_array), - "assigning variable transformed_data_matrix_array"); - current_statement__ = 501; - assign(transformed_data_matrix_array_2d, pow(d_int, d_matrix_array_2d), - "assigning variable transformed_data_matrix_array_2d"); - current_statement__ = 502; - assign(transformed_data_matrix_array_2d, - pow(d_real, d_matrix_array_2d), - "assigning variable transformed_data_matrix_array_2d"); - current_statement__ = 503; - assign(transformed_data_matrix_array_3d, pow(d_int, d_matrix_array_3d), - "assigning variable transformed_data_matrix_array_3d"); - current_statement__ = 504; - assign(transformed_data_matrix_array_3d, - pow(d_real, d_matrix_array_3d), - "assigning variable transformed_data_matrix_array_3d"); - current_statement__ = 505; - assign(transformed_data_matrix, pow(d_matrix, d_matrix), - "assigning variable transformed_data_matrix"); - current_statement__ = 506; - assign(transformed_data_matrix_array, - pow(d_matrix_array, d_matrix_array), - "assigning variable transformed_data_matrix_array"); - current_statement__ = 507; - assign(transformed_data_matrix_array_2d, - pow(d_matrix_array_2d, d_matrix_array_2d), - "assigning variable transformed_data_matrix_array_2d"); - current_statement__ = 508; - assign(transformed_data_matrix_array_3d, - pow(d_matrix_array_3d, d_matrix_array_3d), - "assigning variable transformed_data_matrix_array_3d"); - current_statement__ = 509; - td_int = (d_int * d_int); - current_statement__ = 510; - transformed_data_real = (d_real * d_real); - current_statement__ = 300; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 300; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 300; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 300; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 300; - check_greater_or_equal(function__, - "td_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(td_ar_mat, "td_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 0); - } - } - } - } - current_statement__ = 300; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 300; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 300; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 300; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 300; - check_less_or_equal(function__, - "td_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(td_ar_mat, "td_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 1); - } - } - } - } - current_statement__ = 302; - check_simplex(function__, "td_simplex", td_simplex); - current_statement__ = 305; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 305; - check_simplex(function__, "td_1d_simplex[sym1__]", - td_1d_simplex[(sym1__ - 1)]); - } - current_statement__ = 310; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 310; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 310; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 310; - check_simplex(function__, - "td_3d_simplex[sym1__, sym2__, sym3__]", - td_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - - 1)]); - } - } - } - current_statement__ = 311; - check_cholesky_factor(function__, "td_cfcov_54", td_cfcov_54); - current_statement__ = 312; - check_cholesky_factor(function__, "td_cfcov_33", td_cfcov_33); - current_statement__ = 511; - validate_non_negative_index("p_real_1d_ar", "N", N); - current_statement__ = 512; - validate_non_negative_index("p_real_3d_ar", "N", N); - current_statement__ = 513; - validate_non_negative_index("p_real_3d_ar", "M", M); - current_statement__ = 514; - validate_non_negative_index("p_real_3d_ar", "K", K); - current_statement__ = 515; - validate_non_negative_index("p_vec", "N", N); - current_statement__ = 516; - validate_non_negative_index("p_1d_vec", "N", N); - current_statement__ = 517; - validate_non_negative_index("p_1d_vec", "N", N); - current_statement__ = 518; - validate_non_negative_index("p_3d_vec", "N", N); - current_statement__ = 519; - validate_non_negative_index("p_3d_vec", "M", M); - current_statement__ = 520; - validate_non_negative_index("p_3d_vec", "K", K); - current_statement__ = 521; - validate_non_negative_index("p_3d_vec", "N", N); - current_statement__ = 522; - validate_non_negative_index("p_row_vec", "N", N); - current_statement__ = 523; - validate_non_negative_index("p_1d_row_vec", "N", N); - current_statement__ = 524; - validate_non_negative_index("p_1d_row_vec", "N", N); - current_statement__ = 525; - validate_non_negative_index("p_3d_row_vec", "N", N); - current_statement__ = 526; - validate_non_negative_index("p_3d_row_vec", "M", M); - current_statement__ = 527; - validate_non_negative_index("p_3d_row_vec", "K", K); - current_statement__ = 528; - validate_non_negative_index("p_3d_row_vec", "N", N); - current_statement__ = 529; - validate_positive_index("p_simplex", "N", N); - current_statement__ = 530; - validate_non_negative_index("p_1d_simplex", "N", N); - current_statement__ = 531; - validate_positive_index("p_1d_simplex", "N", N); - current_statement__ = 532; - validate_non_negative_index("p_3d_simplex", "N", N); - current_statement__ = 533; - validate_non_negative_index("p_3d_simplex", "M", M); - current_statement__ = 534; - validate_non_negative_index("p_3d_simplex", "K", K); - current_statement__ = 535; - validate_positive_index("p_3d_simplex", "N", N); - current_statement__ = 536; - check_greater_or_equal("cholesky_factor_cov p_cfcov_54", - "num rows (must be greater or equal to num cols)", - 5, 4); - current_statement__ = 537; - check_greater_or_equal("cholesky_factor_cov p_cfcov_33", - "num rows (must be greater or equal to num cols)", - 3, 3); - current_statement__ = 538; - validate_non_negative_index("p_cfcov_33_ar", "K", K); - current_statement__ = 539; - check_greater_or_equal("cholesky_factor_cov p_cfcov_33_ar", - "num rows (must be greater or equal to num cols)", - 3, 3); - current_statement__ = 540; - validate_non_negative_index("tp_real_1d_ar", "N", N); - current_statement__ = 541; - validate_non_negative_index("tp_real_3d_ar", "N", N); - current_statement__ = 542; - validate_non_negative_index("tp_real_3d_ar", "M", M); - current_statement__ = 543; - validate_non_negative_index("tp_real_3d_ar", "K", K); - current_statement__ = 544; - validate_non_negative_index("tp_vec", "N", N); - current_statement__ = 545; - validate_non_negative_index("tp_1d_vec", "N", N); - current_statement__ = 546; - validate_non_negative_index("tp_1d_vec", "N", N); - current_statement__ = 547; - validate_non_negative_index("tp_3d_vec", "N", N); - current_statement__ = 548; - validate_non_negative_index("tp_3d_vec", "M", M); - current_statement__ = 549; - validate_non_negative_index("tp_3d_vec", "K", K); - current_statement__ = 550; - validate_non_negative_index("tp_3d_vec", "N", N); - current_statement__ = 551; - validate_non_negative_index("tp_row_vec", "N", N); - current_statement__ = 552; - validate_non_negative_index("tp_1d_row_vec", "N", N); - current_statement__ = 553; - validate_non_negative_index("tp_1d_row_vec", "N", N); - current_statement__ = 554; - validate_non_negative_index("tp_3d_row_vec", "N", N); - current_statement__ = 555; - validate_non_negative_index("tp_3d_row_vec", "M", M); - current_statement__ = 556; - validate_non_negative_index("tp_3d_row_vec", "K", K); - current_statement__ = 557; - validate_non_negative_index("tp_3d_row_vec", "N", N); - current_statement__ = 558; - validate_non_negative_index("tp_simplex", "N", N); - current_statement__ = 559; - validate_non_negative_index("tp_1d_simplex", "N", N); - current_statement__ = 560; - validate_non_negative_index("tp_1d_simplex", "N", N); - current_statement__ = 561; - validate_non_negative_index("tp_3d_simplex", "N", N); - current_statement__ = 562; - validate_non_negative_index("tp_3d_simplex", "M", M); - current_statement__ = 563; - validate_non_negative_index("tp_3d_simplex", "K", K); - current_statement__ = 564; - validate_non_negative_index("tp_3d_simplex", "N", N); - current_statement__ = 565; - validate_non_negative_index("tp_cfcov_33_ar", "K", K); - current_statement__ = 566; - validate_non_negative_index("gq_real_1d_ar", "N", N); - current_statement__ = 567; - validate_non_negative_index("gq_real_3d_ar", "N", N); - current_statement__ = 568; - validate_non_negative_index("gq_real_3d_ar", "M", M); - current_statement__ = 569; - validate_non_negative_index("gq_real_3d_ar", "K", K); - current_statement__ = 570; - validate_non_negative_index("gq_vec", "N", N); - current_statement__ = 571; - validate_non_negative_index("gq_1d_vec", "N", N); - current_statement__ = 572; - validate_non_negative_index("gq_1d_vec", "N", N); - current_statement__ = 573; - validate_non_negative_index("gq_3d_vec", "N", N); - current_statement__ = 574; - validate_non_negative_index("gq_3d_vec", "M", M); - current_statement__ = 575; - validate_non_negative_index("gq_3d_vec", "K", K); - current_statement__ = 576; - validate_non_negative_index("gq_3d_vec", "N", N); - current_statement__ = 577; - validate_non_negative_index("gq_row_vec", "N", N); - current_statement__ = 578; - validate_non_negative_index("gq_1d_row_vec", "N", N); - current_statement__ = 579; - validate_non_negative_index("gq_1d_row_vec", "N", N); - current_statement__ = 580; - validate_non_negative_index("gq_3d_row_vec", "N", N); - current_statement__ = 581; - validate_non_negative_index("gq_3d_row_vec", "M", M); - current_statement__ = 582; - validate_non_negative_index("gq_3d_row_vec", "K", K); - current_statement__ = 583; - validate_non_negative_index("gq_3d_row_vec", "N", N); - current_statement__ = 584; - validate_non_negative_index("gq_simplex", "N", N); - current_statement__ = 585; - validate_non_negative_index("gq_1d_simplex", "N", N); - current_statement__ = 586; - validate_non_negative_index("gq_1d_simplex", "N", N); - current_statement__ = 587; - validate_non_negative_index("gq_3d_simplex", "N", N); - current_statement__ = 588; - validate_non_negative_index("gq_3d_simplex", "M", M); - current_statement__ = 589; - validate_non_negative_index("gq_3d_simplex", "K", K); - current_statement__ = 590; - validate_non_negative_index("gq_3d_simplex", "N", N); - current_statement__ = 591; - validate_non_negative_index("gq_cfcov_33_ar", "K", K); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 1 + 1 + 1 + 5 + 5 + 5 + N + (N * M * K) + N + (N * N) - + (N * M * K * N) + N + (N * N) + (N * M * K * N) + (5 * 4) - + (4 * 5 * 2 * 3) + (N - 1) + (N * (N - 1)) + (N * M * K * (N - 1)) - + ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)) - + ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)) - + (K * ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + 2 + 2; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "mother_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - local_scalar_t__ p_real; - p_real = DUMMY_VAR__; - - current_statement__ = 1; - p_real = in__.template read(); - local_scalar_t__ p_upper; - p_upper = DUMMY_VAR__; - - current_statement__ = 2; - p_upper = in__.template read_constrain_lb( - p_real, lp__); - local_scalar_t__ p_lower; - p_lower = DUMMY_VAR__; - - current_statement__ = 3; - p_lower = in__.template read_constrain_ub( - p_upper, lp__); - std::vector offset_multiplier; - offset_multiplier = std::vector(5, DUMMY_VAR__); - - current_statement__ = 4; - offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( - 1, 2, lp__, 5); - std::vector no_offset_multiplier; - no_offset_multiplier = std::vector(5, DUMMY_VAR__); - - current_statement__ = 5; - no_offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( - 0, 2, lp__, 5); - std::vector offset_no_multiplier; - offset_no_multiplier = std::vector(5, DUMMY_VAR__); - - current_statement__ = 6; - offset_no_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( - 3, 1, lp__, 5); - std::vector p_real_1d_ar; - p_real_1d_ar = std::vector(N, DUMMY_VAR__); - - current_statement__ = 7; - p_real_1d_ar = in__.template read_constrain_lb, jacobian__>( - 0, lp__, N); - std::vector>> p_real_3d_ar; - p_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, DUMMY_VAR__))); - - - current_statement__ = 8; - p_real_3d_ar = in__.template read_constrain_lb>>, jacobian__>( - 0, lp__, N, M, K); - Eigen::Matrix p_vec; - p_vec = Eigen::Matrix(N); - stan::math::fill(p_vec, DUMMY_VAR__); - - current_statement__ = 9; - p_vec = in__.template read_constrain_lb, jacobian__>( - 0, lp__, N); - std::vector> p_1d_vec; - p_1d_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_vec, DUMMY_VAR__); - - current_statement__ = 10; - p_1d_vec = in__.template read>>( - N, N); - std::vector>>> p_3d_vec; - p_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_vec, DUMMY_VAR__); - - current_statement__ = 11; - p_3d_vec = in__.template read>>>>( - N, M, K, N); - Eigen::Matrix p_row_vec; - p_row_vec = Eigen::Matrix(N); - stan::math::fill(p_row_vec, DUMMY_VAR__); - - current_statement__ = 12; - p_row_vec = in__.template read>( - N); - std::vector> p_1d_row_vec; - p_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_row_vec, DUMMY_VAR__); - - current_statement__ = 13; - p_1d_row_vec = in__.template read>>( - N, N); - std::vector>>> p_3d_row_vec; - p_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_row_vec, DUMMY_VAR__); - - current_statement__ = 14; - p_3d_row_vec = in__.template read>>>>( - N, M, K, N); - Eigen::Matrix p_mat; - p_mat = Eigen::Matrix(5, 4); - stan::math::fill(p_mat, DUMMY_VAR__); - - current_statement__ = 15; - p_mat = in__.template read>(5, - 4); - std::vector>> p_ar_mat; - p_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(p_ar_mat, DUMMY_VAR__); - - current_statement__ = 16; - p_ar_mat = in__.template read_constrain_lub>>, jacobian__>( - 0, 1, lp__, 4, 5, 2, 3); - Eigen::Matrix p_simplex; - p_simplex = Eigen::Matrix(N); - stan::math::fill(p_simplex, DUMMY_VAR__); - - current_statement__ = 17; - p_simplex = in__.template read_constrain_simplex, jacobian__>( - lp__, N); - std::vector> p_1d_simplex; - p_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_simplex, DUMMY_VAR__); - - current_statement__ = 18; - p_1d_simplex = in__.template read_constrain_simplex>, jacobian__>( - lp__, N, N); - std::vector>>> p_3d_simplex; - p_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_simplex, DUMMY_VAR__); - - current_statement__ = 19; - p_3d_simplex = in__.template read_constrain_simplex>>>, jacobian__>( - lp__, N, M, K, N); - Eigen::Matrix p_cfcov_54; - p_cfcov_54 = Eigen::Matrix(5, 4); - stan::math::fill(p_cfcov_54, DUMMY_VAR__); - - current_statement__ = 20; - p_cfcov_54 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( - lp__, 5, 4); - Eigen::Matrix p_cfcov_33; - p_cfcov_33 = Eigen::Matrix(3, 3); - stan::math::fill(p_cfcov_33, DUMMY_VAR__); - - current_statement__ = 21; - p_cfcov_33 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( - lp__, 3, 3); - std::vector> p_cfcov_33_ar; - p_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - stan::math::fill(p_cfcov_33_ar, DUMMY_VAR__); - - current_statement__ = 22; - p_cfcov_33_ar = in__.template read_constrain_cholesky_factor_cov>, jacobian__>( - lp__, K, 3, 3); - Eigen::Matrix x_p; - x_p = Eigen::Matrix(2); - stan::math::fill(x_p, DUMMY_VAR__); - - current_statement__ = 23; - x_p = in__.template read>(2); - Eigen::Matrix y_p; - y_p = Eigen::Matrix(2); - stan::math::fill(y_p, DUMMY_VAR__); - - current_statement__ = 24; - y_p = in__.template read>(2); - std::vector tp_real_1d_ar; - tp_real_1d_ar = std::vector(N, DUMMY_VAR__); - - std::vector>> tp_real_3d_ar; - tp_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, DUMMY_VAR__))); - - - Eigen::Matrix tp_vec; - tp_vec = Eigen::Matrix(N); - stan::math::fill(tp_vec, DUMMY_VAR__); - - std::vector> tp_1d_vec; - tp_1d_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(tp_1d_vec, DUMMY_VAR__); - - std::vector>>> tp_3d_vec; - tp_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(tp_3d_vec, DUMMY_VAR__); - - Eigen::Matrix tp_row_vec; - tp_row_vec = Eigen::Matrix(N); - stan::math::fill(tp_row_vec, DUMMY_VAR__); - - std::vector> tp_1d_row_vec; - tp_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(tp_1d_row_vec, DUMMY_VAR__); - - std::vector>>> tp_3d_row_vec; - tp_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(tp_3d_row_vec, DUMMY_VAR__); - - Eigen::Matrix tp_mat; - tp_mat = Eigen::Matrix(5, 4); - stan::math::fill(tp_mat, DUMMY_VAR__); - - std::vector>> tp_ar_mat; - tp_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(tp_ar_mat, DUMMY_VAR__); - - Eigen::Matrix tp_simplex; - tp_simplex = Eigen::Matrix(N); - stan::math::fill(tp_simplex, DUMMY_VAR__); - - std::vector> tp_1d_simplex; - tp_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(tp_1d_simplex, DUMMY_VAR__); - - std::vector>>> tp_3d_simplex; - tp_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(tp_3d_simplex, DUMMY_VAR__); - - Eigen::Matrix tp_cfcov_54; - tp_cfcov_54 = Eigen::Matrix(5, 4); - stan::math::fill(tp_cfcov_54, DUMMY_VAR__); - - Eigen::Matrix tp_cfcov_33; - tp_cfcov_33 = Eigen::Matrix(3, 3); - stan::math::fill(tp_cfcov_33, DUMMY_VAR__); - - std::vector> tp_cfcov_33_ar; - tp_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - stan::math::fill(tp_cfcov_33_ar, DUMMY_VAR__); - - Eigen::Matrix theta_p; - theta_p = Eigen::Matrix(2); - stan::math::fill(theta_p, DUMMY_VAR__); - - local_scalar_t__ tp_real; - tp_real = DUMMY_VAR__; - - current_statement__ = 43; - assign(tp_real_1d_ar, p_real_1d_ar, "assigning variable tp_real_1d_ar"); - current_statement__ = 44; - assign(tp_real_3d_ar, p_real_3d_ar, "assigning variable tp_real_3d_ar"); - current_statement__ = 45; - assign(tp_1d_vec, p_1d_vec, "assigning variable tp_1d_vec"); - current_statement__ = 46; - assign(tp_3d_vec, p_3d_vec, "assigning variable tp_3d_vec"); - current_statement__ = 47; - assign(tp_simplex, p_simplex, "assigning variable tp_simplex"); - current_statement__ = 48; - assign(tp_1d_simplex, p_1d_simplex, "assigning variable tp_1d_simplex"); - current_statement__ = 49; - assign(tp_3d_simplex, p_3d_simplex, "assigning variable tp_3d_simplex"); - current_statement__ = 50; - assign(tp_cfcov_54, p_cfcov_54, "assigning variable tp_cfcov_54"); - current_statement__ = 51; - assign(tp_cfcov_33, p_cfcov_33, "assigning variable tp_cfcov_33"); - current_statement__ = 52; - assign(tp_cfcov_33_ar, p_cfcov_33_ar, - "assigning variable tp_cfcov_33_ar"); - current_statement__ = 53; - assign(tp_mat, stan::math::fma(d_cfcov_54, p_mat, p_mat), - "assigning variable tp_mat"); - current_statement__ = 54; - assign(tp_vec, stan::math::fma(d_vec, p_vec, p_vec), - "assigning variable tp_vec"); - current_statement__ = 63; - for (int i = 1; i <= 2; ++i) { - current_statement__ = 61; - for (int j = 1; j <= 3; ++j) { - current_statement__ = 59; - for (int m = 1; m <= 4; ++m) { - current_statement__ = 57; - for (int n = 1; n <= 5; ++n) { - current_statement__ = 55; - assign(tp_ar_mat, 0.4, - "assigning variable tp_ar_mat", index_uni(m), index_uni(n), - index_uni(i), index_uni(j)); - } - } - } - } - current_statement__ = 65; - for (int i = 1; i <= N; ++i) { - current_statement__ = 64; - assign(tp_vec, (-1.0 * rvalue(p_vec, "p_vec", index_uni(i))), - "assigning variable tp_vec", index_uni(i)); - } - current_statement__ = 66; - assign(tp_row_vec, - transpose(rvalue(tp_1d_vec, "tp_1d_vec", index_uni(1))), - "assigning variable tp_row_vec"); - current_statement__ = 67; - assign(tp_1d_row_vec, p_1d_row_vec, "assigning variable tp_1d_row_vec"); - current_statement__ = 68; - assign(tp_3d_row_vec, p_3d_row_vec, "assigning variable tp_3d_row_vec"); - current_statement__ = 69; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, - pstream__), "assigning variable theta_p"); - current_statement__ = 70; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 71; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x, y_p, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 72; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, - pstream__), "assigning variable theta_p"); - current_statement__ = 73; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 74; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, - pstream__), "assigning variable theta_p"); - current_statement__ = 75; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 76; - tp_real = (p_real * p_real); - current_statement__ = 77; - tp_real = (p_real / p_real); - current_statement__ = 25; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 25; - check_greater_or_equal(function__, "tp_real_1d_ar[sym1__]", - tp_real_1d_ar[(sym1__ - 1)], 0); - } - current_statement__ = 26; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 26; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 26; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 26; - check_greater_or_equal(function__, - "tp_real_3d_ar[sym1__, sym2__, sym3__]", - tp_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ - (sym3__ - 1)], 0); - } - } - } - current_statement__ = 27; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 27; - check_less_or_equal(function__, "tp_vec[sym1__]", - tp_vec[(sym1__ - 1)], 0); - } - current_statement__ = 34; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 34; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 34; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 34; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 34; - check_greater_or_equal(function__, - "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(tp_ar_mat, "tp_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 0); - } - } - } - } - current_statement__ = 34; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 34; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 34; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 34; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 34; - check_less_or_equal(function__, - "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(tp_ar_mat, "tp_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 1); - } - } - } - } - current_statement__ = 35; - check_simplex(function__, "tp_simplex", tp_simplex); - current_statement__ = 36; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 36; - check_simplex(function__, "tp_1d_simplex[sym1__]", - tp_1d_simplex[(sym1__ - 1)]); - } - current_statement__ = 37; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 37; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 37; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 37; - check_simplex(function__, - "tp_3d_simplex[sym1__, sym2__, sym3__]", - tp_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - - 1)]); - } - } - } - current_statement__ = 38; - check_cholesky_factor(function__, "tp_cfcov_54", tp_cfcov_54); - current_statement__ = 39; - check_cholesky_factor(function__, "tp_cfcov_33", tp_cfcov_33); - current_statement__ = 40; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 40; - check_cholesky_factor(function__, "tp_cfcov_33_ar[sym1__]", - tp_cfcov_33_ar[(sym1__ - 1)]); - } - { - Eigen::Matrix tmp; - tmp = Eigen::Matrix(0); - stan::math::fill(tmp, DUMMY_VAR__); - - std::vector> tmp2; - tmp2 = std::vector>(0, Eigen::Matrix(0)); - stan::math::fill(tmp2, DUMMY_VAR__); - - local_scalar_t__ r1; - r1 = DUMMY_VAR__; - - current_statement__ = 156; - r1 = foo_bar1(p_real, pstream__); - local_scalar_t__ r2; - r2 = DUMMY_VAR__; - - current_statement__ = 157; - r2 = foo_bar1(J, pstream__); - current_statement__ = 158; - lp_accum__.add(normal_lpdf(p_real, 0, 1)); - current_statement__ = 159; - lp_accum__.add(normal_lpdf(offset_multiplier, 0, 1)); - current_statement__ = 160; - lp_accum__.add(normal_lpdf(no_offset_multiplier, 0, 1)); - current_statement__ = 161; - lp_accum__.add(normal_lpdf(offset_no_multiplier, 0, 1)); - current_statement__ = 162; - lp_accum__.add(normal_lpdf(to_vector(p_real_1d_ar), 0, 1)); - current_statement__ = 175; - for (int n = 1; n <= N; ++n) { - current_statement__ = 163; - lp_accum__.add( - normal_lpdf( - to_vector(rvalue(p_1d_vec, "p_1d_vec", index_uni(n))), 0, 1)); - current_statement__ = 164; - lp_accum__.add( - normal_lpdf( - to_vector(rvalue(p_1d_row_vec, "p_1d_row_vec", index_uni(n))), - 0, 1)); - current_statement__ = 165; - lp_accum__.add( - normal_lpdf( - to_vector(rvalue(p_1d_simplex, "p_1d_simplex", index_uni(n))), - 0, 1)); - current_statement__ = 173; - for (int m = 1; m <= M; ++m) { - current_statement__ = 171; - for (int k = 1; k <= K; ++k) { - current_statement__ = 166; - lp_accum__.add( - normal_lpdf( - to_vector( - rvalue(p_3d_vec, "p_3d_vec", - index_uni(n), index_uni(m), index_uni(k))), - rvalue(d_3d_vec, "d_3d_vec", - index_uni(n), index_uni(m), index_uni(k)), 1)); - current_statement__ = 167; - lp_accum__.add( - normal_lpdf( - to_vector( - rvalue(p_3d_row_vec, "p_3d_row_vec", - index_uni(n), index_uni(m), index_uni(k))), - rvalue(d_3d_row_vec, "d_3d_row_vec", - index_uni(n), index_uni(m), index_uni(k)), 1)); - current_statement__ = 168; - lp_accum__.add( - normal_lpdf( - to_vector( - rvalue(p_3d_simplex, "p_3d_simplex", - index_uni(n), index_uni(m), index_uni(k))), - rvalue(d_3d_simplex, "d_3d_simplex", - index_uni(n), index_uni(m), index_uni(k)), 1)); - current_statement__ = 169; - lp_accum__.add( - normal_lpdf( - rvalue(p_real_3d_ar, "p_real_3d_ar", - index_uni(n), index_uni(m), index_uni(k)), - rvalue(p_real_3d_ar, "p_real_3d_ar", - index_uni(n), index_uni(m), index_uni(k)), 1)); - } - } - } - current_statement__ = 180; - for (int i = 1; i <= 4; ++i) { - current_statement__ = 178; - for (int j = 1; j <= 5; ++j) { - current_statement__ = 176; - lp_accum__.add( - normal_lpdf( - to_vector( - rvalue(p_ar_mat, "p_ar_mat", index_uni(i), index_uni(j))), - 0, 1)); - } - } - current_statement__ = 183; - for (int k = 1; k <= K; ++k) { - current_statement__ = 181; - lp_accum__.add( - normal_lpdf( - to_vector(rvalue(p_cfcov_33_ar, "p_cfcov_33_ar", index_uni(k))), - 0, 1)); - } - current_statement__ = 184; - lp_accum__.add(normal_lpdf(to_vector(p_vec), d_vec, 1)); - current_statement__ = 185; - lp_accum__.add(normal_lpdf(to_vector(p_row_vec), 0, 1)); - current_statement__ = 186; - lp_accum__.add(normal_lpdf(to_vector(p_simplex), 0, 1)); - current_statement__ = 187; - lp_accum__.add(normal_lpdf(to_vector(p_cfcov_54), 0, 1)); - current_statement__ = 188; - lp_accum__.add(normal_lpdf(to_vector(p_cfcov_33), 0, 1)); - current_statement__ = 189; - lp_accum__.add( - map_rect<1, binomialf_functor__>(tmp, tmp2, x_r, x_i, pstream__)); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "mother_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - double p_real; - p_real = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - p_real = in__.template read(); - double p_upper; - p_upper = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - p_upper = in__.template read_constrain_lb( - p_real, lp__); - double p_lower; - p_lower = std::numeric_limits::quiet_NaN(); - - current_statement__ = 3; - p_lower = in__.template read_constrain_ub( - p_upper, lp__); - std::vector offset_multiplier; - offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 4; - offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( - 1, 2, lp__, 5); - std::vector no_offset_multiplier; - no_offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 5; - no_offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( - 0, 2, lp__, 5); - std::vector offset_no_multiplier; - offset_no_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 6; - offset_no_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( - 3, 1, lp__, 5); - std::vector p_real_1d_ar; - p_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 7; - p_real_1d_ar = in__.template read_constrain_lb, jacobian__>( - 0, lp__, N); - std::vector>> p_real_3d_ar; - p_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); - - - current_statement__ = 8; - p_real_3d_ar = in__.template read_constrain_lb>>, jacobian__>( - 0, lp__, N, M, K); - Eigen::Matrix p_vec; - p_vec = Eigen::Matrix(N); - stan::math::fill(p_vec, std::numeric_limits::quiet_NaN()); - - current_statement__ = 9; - p_vec = in__.template read_constrain_lb, jacobian__>( - 0, lp__, N); - std::vector> p_1d_vec; - p_1d_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_vec, std::numeric_limits::quiet_NaN()); - - current_statement__ = 10; - p_1d_vec = in__.template read>>( - N, N); - std::vector>>> p_3d_vec; - p_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_vec, std::numeric_limits::quiet_NaN()); - - current_statement__ = 11; - p_3d_vec = in__.template read>>>>( - N, M, K, N); - Eigen::Matrix p_row_vec; - p_row_vec = Eigen::Matrix(N); - stan::math::fill(p_row_vec, std::numeric_limits::quiet_NaN()); - - current_statement__ = 12; - p_row_vec = in__.template read>( - N); - std::vector> p_1d_row_vec; - p_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_row_vec, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 13; - p_1d_row_vec = in__.template read>>( - N, N); - std::vector>>> p_3d_row_vec; - p_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_row_vec, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 14; - p_3d_row_vec = in__.template read>>>>( - N, M, K, N); - Eigen::Matrix p_mat; - p_mat = Eigen::Matrix(5, 4); - stan::math::fill(p_mat, std::numeric_limits::quiet_NaN()); - - current_statement__ = 15; - p_mat = in__.template read>(5, - 4); - std::vector>> p_ar_mat; - p_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(p_ar_mat, std::numeric_limits::quiet_NaN()); - - current_statement__ = 16; - p_ar_mat = in__.template read_constrain_lub>>, jacobian__>( - 0, 1, lp__, 4, 5, 2, 3); - Eigen::Matrix p_simplex; - p_simplex = Eigen::Matrix(N); - stan::math::fill(p_simplex, std::numeric_limits::quiet_NaN()); - - current_statement__ = 17; - p_simplex = in__.template read_constrain_simplex, jacobian__>( - lp__, N); - std::vector> p_1d_simplex; - p_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_simplex, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 18; - p_1d_simplex = in__.template read_constrain_simplex>, jacobian__>( - lp__, N, N); - std::vector>>> p_3d_simplex; - p_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_simplex, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 19; - p_3d_simplex = in__.template read_constrain_simplex>>>, jacobian__>( - lp__, N, M, K, N); - Eigen::Matrix p_cfcov_54; - p_cfcov_54 = Eigen::Matrix(5, 4); - stan::math::fill(p_cfcov_54, std::numeric_limits::quiet_NaN()); - - current_statement__ = 20; - p_cfcov_54 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( - lp__, 5, 4); - Eigen::Matrix p_cfcov_33; - p_cfcov_33 = Eigen::Matrix(3, 3); - stan::math::fill(p_cfcov_33, std::numeric_limits::quiet_NaN()); - - current_statement__ = 21; - p_cfcov_33 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( - lp__, 3, 3); - std::vector> p_cfcov_33_ar; - p_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - stan::math::fill(p_cfcov_33_ar, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 22; - p_cfcov_33_ar = in__.template read_constrain_cholesky_factor_cov>, jacobian__>( - lp__, K, 3, 3); - Eigen::Matrix x_p; - x_p = Eigen::Matrix(2); - stan::math::fill(x_p, std::numeric_limits::quiet_NaN()); - - current_statement__ = 23; - x_p = in__.template read>(2); - Eigen::Matrix y_p; - y_p = Eigen::Matrix(2); - stan::math::fill(y_p, std::numeric_limits::quiet_NaN()); - - current_statement__ = 24; - y_p = in__.template read>(2); - std::vector tp_real_1d_ar; - tp_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); - - - std::vector>> tp_real_3d_ar; - tp_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); - - - Eigen::Matrix tp_vec; - tp_vec = Eigen::Matrix(N); - stan::math::fill(tp_vec, std::numeric_limits::quiet_NaN()); - - std::vector> tp_1d_vec; - tp_1d_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(tp_1d_vec, std::numeric_limits::quiet_NaN()); - - std::vector>>> tp_3d_vec; - tp_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(tp_3d_vec, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix tp_row_vec; - tp_row_vec = Eigen::Matrix(N); - stan::math::fill(tp_row_vec, std::numeric_limits::quiet_NaN()); - - std::vector> tp_1d_row_vec; - tp_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(tp_1d_row_vec, std::numeric_limits::quiet_NaN()); - - - std::vector>>> tp_3d_row_vec; - tp_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(tp_3d_row_vec, std::numeric_limits::quiet_NaN()); - - - Eigen::Matrix tp_mat; - tp_mat = Eigen::Matrix(5, 4); - stan::math::fill(tp_mat, std::numeric_limits::quiet_NaN()); - - std::vector>> tp_ar_mat; - tp_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(tp_ar_mat, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix tp_simplex; - tp_simplex = Eigen::Matrix(N); - stan::math::fill(tp_simplex, std::numeric_limits::quiet_NaN()); - - std::vector> tp_1d_simplex; - tp_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(tp_1d_simplex, std::numeric_limits::quiet_NaN()); - - - std::vector>>> tp_3d_simplex; - tp_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(tp_3d_simplex, std::numeric_limits::quiet_NaN()); - - - Eigen::Matrix tp_cfcov_54; - tp_cfcov_54 = Eigen::Matrix(5, 4); - stan::math::fill(tp_cfcov_54, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix tp_cfcov_33; - tp_cfcov_33 = Eigen::Matrix(3, 3); - stan::math::fill(tp_cfcov_33, std::numeric_limits::quiet_NaN()); - - std::vector> tp_cfcov_33_ar; - tp_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - stan::math::fill(tp_cfcov_33_ar, std::numeric_limits::quiet_NaN()); - - - Eigen::Matrix theta_p; - theta_p = Eigen::Matrix(2); - stan::math::fill(theta_p, std::numeric_limits::quiet_NaN()); - - double tp_real; - tp_real = std::numeric_limits::quiet_NaN(); - - vars__.emplace_back(p_real); - vars__.emplace_back(p_upper); - vars__.emplace_back(p_lower); - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - vars__.emplace_back(offset_multiplier[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - vars__.emplace_back(no_offset_multiplier[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - vars__.emplace_back(offset_no_multiplier[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(p_real_1d_ar[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - p_real_3d_ar[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(p_vec[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(p_1d_vec[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - p_3d_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][(sym1__ - - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(p_row_vec[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(p_1d_row_vec[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - p_3d_row_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ - (sym1__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back( - rvalue(p_mat, "p_mat", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - vars__.emplace_back( - rvalue(p_ar_mat, "p_ar_mat", - index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), - index_uni(sym1__))); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(p_simplex[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(p_1d_simplex[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - p_3d_simplex[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ - (sym1__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back( - rvalue(p_cfcov_54, "p_cfcov_54", - index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back( - rvalue(p_cfcov_33, "p_cfcov_33", - index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - vars__.emplace_back( - rvalue(p_cfcov_33_ar, "p_cfcov_33_ar", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(x_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(y_p[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 43; - assign(tp_real_1d_ar, p_real_1d_ar, "assigning variable tp_real_1d_ar"); - current_statement__ = 44; - assign(tp_real_3d_ar, p_real_3d_ar, "assigning variable tp_real_3d_ar"); - current_statement__ = 45; - assign(tp_1d_vec, p_1d_vec, "assigning variable tp_1d_vec"); - current_statement__ = 46; - assign(tp_3d_vec, p_3d_vec, "assigning variable tp_3d_vec"); - current_statement__ = 47; - assign(tp_simplex, p_simplex, "assigning variable tp_simplex"); - current_statement__ = 48; - assign(tp_1d_simplex, p_1d_simplex, "assigning variable tp_1d_simplex"); - current_statement__ = 49; - assign(tp_3d_simplex, p_3d_simplex, "assigning variable tp_3d_simplex"); - current_statement__ = 50; - assign(tp_cfcov_54, p_cfcov_54, "assigning variable tp_cfcov_54"); - current_statement__ = 51; - assign(tp_cfcov_33, p_cfcov_33, "assigning variable tp_cfcov_33"); - current_statement__ = 52; - assign(tp_cfcov_33_ar, p_cfcov_33_ar, - "assigning variable tp_cfcov_33_ar"); - current_statement__ = 53; - assign(tp_mat, stan::math::fma(d_cfcov_54, p_mat, p_mat), - "assigning variable tp_mat"); - current_statement__ = 54; - assign(tp_vec, stan::math::fma(d_vec, p_vec, p_vec), - "assigning variable tp_vec"); - current_statement__ = 63; - for (int i = 1; i <= 2; ++i) { - current_statement__ = 61; - for (int j = 1; j <= 3; ++j) { - current_statement__ = 59; - for (int m = 1; m <= 4; ++m) { - current_statement__ = 57; - for (int n = 1; n <= 5; ++n) { - current_statement__ = 55; - assign(tp_ar_mat, 0.4, - "assigning variable tp_ar_mat", index_uni(m), index_uni(n), - index_uni(i), index_uni(j)); - } - } - } - } - current_statement__ = 65; - for (int i = 1; i <= N; ++i) { - current_statement__ = 64; - assign(tp_vec, (-1.0 * rvalue(p_vec, "p_vec", index_uni(i))), - "assigning variable tp_vec", index_uni(i)); - } - current_statement__ = 66; - assign(tp_row_vec, - transpose(rvalue(tp_1d_vec, "tp_1d_vec", index_uni(1))), - "assigning variable tp_row_vec"); - current_statement__ = 67; - assign(tp_1d_row_vec, p_1d_row_vec, "assigning variable tp_1d_row_vec"); - current_statement__ = 68; - assign(tp_3d_row_vec, p_3d_row_vec, "assigning variable tp_3d_row_vec"); - current_statement__ = 69; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, - pstream__), "assigning variable theta_p"); - current_statement__ = 70; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 71; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x, y_p, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 72; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, - pstream__), "assigning variable theta_p"); - current_statement__ = 73; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 74; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, - pstream__), "assigning variable theta_p"); - current_statement__ = 75; - assign(theta_p, - algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); - current_statement__ = 76; - tp_real = (p_real * p_real); - current_statement__ = 77; - tp_real = (p_real / p_real); - current_statement__ = 25; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 25; - check_greater_or_equal(function__, "tp_real_1d_ar[sym1__]", - tp_real_1d_ar[(sym1__ - 1)], 0); - } - current_statement__ = 26; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 26; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 26; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 26; - check_greater_or_equal(function__, - "tp_real_3d_ar[sym1__, sym2__, sym3__]", - tp_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ - (sym3__ - 1)], 0); - } - } - } - current_statement__ = 27; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 27; - check_less_or_equal(function__, "tp_vec[sym1__]", - tp_vec[(sym1__ - 1)], 0); - } - current_statement__ = 34; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 34; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 34; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 34; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 34; - check_greater_or_equal(function__, - "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(tp_ar_mat, "tp_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 0); - } - } - } - } - current_statement__ = 34; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 34; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 34; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 34; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 34; - check_less_or_equal(function__, - "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(tp_ar_mat, "tp_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 1); - } - } - } - } - current_statement__ = 35; - check_simplex(function__, "tp_simplex", tp_simplex); - current_statement__ = 36; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 36; - check_simplex(function__, "tp_1d_simplex[sym1__]", - tp_1d_simplex[(sym1__ - 1)]); - } - current_statement__ = 37; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 37; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 37; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 37; - check_simplex(function__, - "tp_3d_simplex[sym1__, sym2__, sym3__]", - tp_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - - 1)]); - } - } - } - current_statement__ = 38; - check_cholesky_factor(function__, "tp_cfcov_54", tp_cfcov_54); - current_statement__ = 39; - check_cholesky_factor(function__, "tp_cfcov_33", tp_cfcov_33); - current_statement__ = 40; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 40; - check_cholesky_factor(function__, "tp_cfcov_33_ar[sym1__]", - tp_cfcov_33_ar[(sym1__ - 1)]); - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(tp_real_1d_ar[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - tp_real_3d_ar[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(tp_vec[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(tp_1d_vec[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - tp_3d_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ - (sym1__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(tp_row_vec[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(tp_1d_row_vec[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - tp_3d_row_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ - (sym1__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back( - rvalue(tp_mat, "tp_mat", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - vars__.emplace_back( - rvalue(tp_ar_mat, "tp_ar_mat", - index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), - index_uni(sym1__))); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(tp_simplex[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(tp_1d_simplex[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - tp_3d_simplex[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ - (sym1__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back( - rvalue(tp_cfcov_54, "tp_cfcov_54", - index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back( - rvalue(tp_cfcov_33, "tp_cfcov_33", - index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - vars__.emplace_back( - rvalue(tp_cfcov_33_ar, "tp_cfcov_33_ar", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(theta_p[(sym1__ - 1)]); - } - vars__.emplace_back(tp_real); - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - double gq_r1; - gq_r1 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 78; - gq_r1 = foo_bar1(p_real, pstream__); - double gq_r2; - gq_r2 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 79; - gq_r2 = foo_bar1(J, pstream__); - std::vector gq_real_1d_ar; - gq_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); - - - std::vector>> gq_real_3d_ar; - gq_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); - - - Eigen::Matrix gq_vec; - gq_vec = Eigen::Matrix(N); - stan::math::fill(gq_vec, std::numeric_limits::quiet_NaN()); - - std::vector> gq_1d_vec; - gq_1d_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(gq_1d_vec, std::numeric_limits::quiet_NaN()); - - std::vector>>> gq_3d_vec; - gq_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(gq_3d_vec, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix gq_row_vec; - gq_row_vec = Eigen::Matrix(N); - stan::math::fill(gq_row_vec, std::numeric_limits::quiet_NaN()); - - std::vector> gq_1d_row_vec; - gq_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(gq_1d_row_vec, std::numeric_limits::quiet_NaN()); - - - std::vector>>> gq_3d_row_vec; - gq_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(gq_3d_row_vec, std::numeric_limits::quiet_NaN()); - - - std::vector>> gq_ar_mat; - gq_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(gq_ar_mat, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix gq_simplex; - gq_simplex = Eigen::Matrix(N); - stan::math::fill(gq_simplex, std::numeric_limits::quiet_NaN()); - - std::vector> gq_1d_simplex; - gq_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(gq_1d_simplex, std::numeric_limits::quiet_NaN()); - - - std::vector>>> gq_3d_simplex; - gq_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(gq_3d_simplex, std::numeric_limits::quiet_NaN()); - - - Eigen::Matrix gq_cfcov_54; - gq_cfcov_54 = Eigen::Matrix(5, 4); - stan::math::fill(gq_cfcov_54, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix gq_cfcov_33; - gq_cfcov_33 = Eigen::Matrix(3, 3); - stan::math::fill(gq_cfcov_33, std::numeric_limits::quiet_NaN()); - - std::vector> gq_cfcov_33_ar; - gq_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - stan::math::fill(gq_cfcov_33_ar, std::numeric_limits::quiet_NaN()); - - - std::vector indices; - indices = std::vector(3, std::numeric_limits::min()); - - current_statement__ = 95; - assign(indices, std::vector{2, 3, 1}, "assigning variable indices"); - std::vector> indexing_mat; - indexing_mat = std::vector>(5, Eigen::Matrix(3, 4)); - stan::math::fill(indexing_mat, std::numeric_limits::quiet_NaN()); - - - std::vector> idx_res1; - idx_res1 = std::vector>(3, Eigen::Matrix(3, 4)); - stan::math::fill(idx_res1, std::numeric_limits::quiet_NaN()); - - std::vector> idx_res2; - idx_res2 = std::vector>(5, Eigen::Matrix(3, 4)); - stan::math::fill(idx_res2, std::numeric_limits::quiet_NaN()); - - std::vector> idx_res3; - idx_res3 = std::vector>(3, Eigen::Matrix(3, 3)); - stan::math::fill(idx_res3, std::numeric_limits::quiet_NaN()); - - std::vector> idx_res11; - idx_res11 = std::vector>(3, Eigen::Matrix(3, 4)); - stan::math::fill(idx_res11, std::numeric_limits::quiet_NaN()); - - std::vector> idx_res21; - idx_res21 = std::vector>(5, Eigen::Matrix(3, 4)); - stan::math::fill(idx_res21, std::numeric_limits::quiet_NaN()); - - std::vector> idx_res31; - idx_res31 = std::vector>(3, Eigen::Matrix(3, 3)); - stan::math::fill(idx_res31, std::numeric_limits::quiet_NaN()); - - std::vector> idx_res4; - idx_res4 = std::vector>(3, Eigen::Matrix(4)); - stan::math::fill(idx_res4, std::numeric_limits::quiet_NaN()); - - std::vector> idx_res5; - idx_res5 = std::vector>(2, Eigen::Matrix(2)); - stan::math::fill(idx_res5, std::numeric_limits::quiet_NaN()); - - current_statement__ = 105; - assign(gq_real_1d_ar, - rvalue(p_1d_simplex, "p_1d_simplex", index_omni(), index_uni(1)), - "assigning variable gq_real_1d_ar"); - current_statement__ = 106; - assign(gq_real_3d_ar, p_real_3d_ar, "assigning variable gq_real_3d_ar"); - current_statement__ = 107; - assign(gq_1d_vec, p_1d_vec, "assigning variable gq_1d_vec"); - current_statement__ = 108; - assign(gq_3d_vec, p_3d_vec, "assigning variable gq_3d_vec"); - current_statement__ = 109; - assign(gq_row_vec, p_row_vec, "assigning variable gq_row_vec"); - current_statement__ = 110; - assign(gq_1d_row_vec, p_1d_row_vec, "assigning variable gq_1d_row_vec"); - current_statement__ = 111; - assign(gq_3d_row_vec, p_3d_row_vec, "assigning variable gq_3d_row_vec"); - current_statement__ = 112; - assign(gq_simplex, - rvalue(p_1d_simplex, "p_1d_simplex", - index_uni(1), index_min_max(1, N)), "assigning variable gq_simplex"); - current_statement__ = 113; - assign(gq_1d_simplex, p_1d_simplex, "assigning variable gq_1d_simplex"); - current_statement__ = 114; - assign(gq_3d_simplex, p_3d_simplex, "assigning variable gq_3d_simplex"); - current_statement__ = 115; - assign(gq_cfcov_54, p_cfcov_54, "assigning variable gq_cfcov_54"); - current_statement__ = 116; - assign(gq_cfcov_33, p_cfcov_33, "assigning variable gq_cfcov_33"); - current_statement__ = 117; - assign(gq_cfcov_33_ar, p_cfcov_33_ar, - "assigning variable gq_cfcov_33_ar"); - current_statement__ = 126; - for (int i = 1; i <= 2; ++i) { - current_statement__ = 124; - for (int j = 1; j <= 3; ++j) { - current_statement__ = 122; - for (int m = 1; m <= 4; ++m) { - current_statement__ = 120; - for (int n = 1; n <= 5; ++n) { - current_statement__ = 118; - assign(gq_ar_mat, 0.4, - "assigning variable gq_ar_mat", index_uni(m), index_uni(n), - index_uni(i), index_uni(j)); - } - } - } - } - current_statement__ = 128; - for (int i = 1; i <= N; ++i) { - current_statement__ = 127; - assign(gq_vec, (-1.0 * rvalue(p_vec, "p_vec", index_uni(i))), - "assigning variable gq_vec", index_uni(i)); - } - current_statement__ = 132; - for (int i = 1; i <= 3; ++i) { - current_statement__ = 131; - for (int j = 1; j <= 4; ++j) { - current_statement__ = 130; - for (int k = 1; k <= 5; ++k) { - current_statement__ = 129; - assign(indexing_mat, normal_rng(0, 1, base_rng__), - "assigning variable indexing_mat", index_uni(k), index_uni(i), - index_uni(j)); - } - } - } - current_statement__ = 135; - for (int i = 1; i <= size(indices); ++i) { - current_statement__ = 134; - for (int j = 1; j <= size(indices); ++j) { - current_statement__ = 133; - assign(idx_res1, - rvalue(indexing_mat, "indexing_mat", - index_uni(rvalue(indices, "indices", index_uni(i))), - index_uni(rvalue(indices, "indices", index_uni(j)))), - "assigning variable idx_res1", index_uni(i), index_uni(j)); - } - } - current_statement__ = 136; - assign(idx_res11, - rvalue(indexing_mat, "indexing_mat", - index_multi(indices), index_multi(indices)), - "assigning variable idx_res11"); - current_statement__ = 138; - if (logical_neq( - rvalue( - rvalue(indexing_mat, "indexing_mat", - index_multi(indices), index_multi(indices)), - "indexing_mat[indices, indices]", - index_uni(2), index_uni(1), index_uni(1)), - rvalue(idx_res1, "idx_res1", - index_uni(2), index_uni(1), index_uni(1)))) { - current_statement__ = 137; - std::stringstream errmsg_stream__; - errmsg_stream__ << "indexing test 1 failed"; - throw std::domain_error(errmsg_stream__.str()); - } - current_statement__ = 141; - for (int i = 1; i <= 5; ++i) { - current_statement__ = 140; - for (int j = 1; j <= size(indices); ++j) { - current_statement__ = 139; - assign(idx_res2, - rvalue(indexing_mat, "indexing_mat", - index_uni(i), - index_uni(rvalue(indices, "indices", index_uni(j)))), - "assigning variable idx_res2", index_uni(i), index_uni(j)); - } - } - current_statement__ = 142; - assign(idx_res21, - rvalue(indexing_mat, "indexing_mat", - index_omni(), index_multi(indices)), "assigning variable idx_res21"); - current_statement__ = 144; - if (logical_neq( - rvalue( - rvalue(indexing_mat, "indexing_mat", index_omni(), index_multi(indices)), - "indexing_mat[:, indices]", - index_uni(2), index_uni(1), index_uni(1)), - rvalue(idx_res2, "idx_res2", - index_uni(2), index_uni(1), index_uni(1)))) { - current_statement__ = 143; - std::stringstream errmsg_stream__; - errmsg_stream__ << "indexing test 2 failed"; - throw std::domain_error(errmsg_stream__.str()); - } - current_statement__ = 148; - for (int i = 1; i <= size(indices); ++i) { - current_statement__ = 147; - for (int j = 1; j <= 3; ++j) { - current_statement__ = 146; - for (int k = 1; k <= size(indices); ++k) { - current_statement__ = 145; - assign(idx_res3, - rvalue(indexing_mat, "indexing_mat", - index_uni(rvalue(indices, "indices", index_uni(i))), - index_uni(j), - index_uni(rvalue(indices, "indices", index_uni(k)))), - "assigning variable idx_res3", index_uni(i), index_uni(j), - index_uni(k)); - } - } - } - current_statement__ = 149; - assign(idx_res31, - rvalue(indexing_mat, "indexing_mat", - index_multi(indices), index_omni(), index_multi(indices)), - "assigning variable idx_res31"); - current_statement__ = 151; - if (logical_neq( - rvalue( - rvalue(indexing_mat, "indexing_mat", - index_multi(indices), index_omni(), index_multi(indices)), - "indexing_mat[indices, :, indices]", - index_uni(2), index_uni(1), index_uni(1)), - rvalue(idx_res3, "idx_res3", - index_uni(2), index_uni(1), index_uni(1)))) { - current_statement__ = 150; - std::stringstream errmsg_stream__; - errmsg_stream__ << "indexing test 3 failed"; - throw std::domain_error(errmsg_stream__.str()); - } - current_statement__ = 152; - assign(idx_res4, - rvalue(indexing_mat, "indexing_mat", - index_min_max(1, 3), index_uni(1), index_omni()), - "assigning variable idx_res4"); - current_statement__ = 153; - assign(idx_res5, - rvalue(indexing_mat, "indexing_mat", - index_min(4), index_min_max(2, 3), index_uni(1)), - "assigning variable idx_res5"); - current_statement__ = 80; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 80; - check_greater_or_equal(function__, "gq_real_1d_ar[sym1__]", - gq_real_1d_ar[(sym1__ - 1)], 0); - } - current_statement__ = 81; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 81; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 81; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 81; - check_greater_or_equal(function__, - "gq_real_3d_ar[sym1__, sym2__, sym3__]", - gq_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ - (sym3__ - 1)], 0); - } - } - } - current_statement__ = 82; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 82; - check_less_or_equal(function__, "gq_vec[sym1__]", - gq_vec[(sym1__ - 1)], 1); - } - current_statement__ = 88; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 88; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 88; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 88; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 88; - check_greater_or_equal(function__, - "gq_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(gq_ar_mat, "gq_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 0); - } - } - } - } - current_statement__ = 88; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 88; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 88; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 88; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 88; - check_less_or_equal(function__, - "gq_ar_mat[sym1__, sym2__, sym3__, sym4__]", - rvalue(gq_ar_mat, "gq_ar_mat", - index_uni(sym1__), index_uni(sym2__), - index_uni(sym3__), index_uni(sym4__)), - 1); - } - } - } - } - current_statement__ = 89; - check_simplex(function__, "gq_simplex", gq_simplex); - current_statement__ = 90; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 90; - check_simplex(function__, "gq_1d_simplex[sym1__]", - gq_1d_simplex[(sym1__ - 1)]); - } - current_statement__ = 91; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 91; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 91; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 91; - check_simplex(function__, - "gq_3d_simplex[sym1__, sym2__, sym3__]", - gq_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - - 1)]); - } - } - } - current_statement__ = 92; - check_cholesky_factor(function__, "gq_cfcov_54", gq_cfcov_54); - current_statement__ = 93; - check_cholesky_factor(function__, "gq_cfcov_33", gq_cfcov_33); - current_statement__ = 94; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 94; - check_cholesky_factor(function__, "gq_cfcov_33_ar[sym1__]", - gq_cfcov_33_ar[(sym1__ - 1)]); - } - vars__.emplace_back(gq_r1); - vars__.emplace_back(gq_r2); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(gq_real_1d_ar[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - gq_real_3d_ar[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(gq_vec[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(gq_1d_vec[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - gq_3d_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][(sym1__ - - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(gq_row_vec[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(gq_1d_row_vec[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - gq_3d_row_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ - (sym1__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - vars__.emplace_back( - rvalue(gq_ar_mat, "gq_ar_mat", - index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), - index_uni(sym1__))); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(gq_simplex[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(gq_1d_simplex[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - gq_3d_simplex[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ - (sym1__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back( - rvalue(gq_cfcov_54, "gq_cfcov_54", - index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back( - rvalue(gq_cfcov_33, "gq_cfcov_33", - index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - vars__.emplace_back( - rvalue(gq_cfcov_33_ar, "gq_cfcov_33_ar", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(indices[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - vars__.emplace_back( - rvalue(indexing_mat, "indexing_mat", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - vars__.emplace_back( - rvalue(idx_res1, "idx_res1", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - vars__.emplace_back( - rvalue(idx_res2, "idx_res2", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - vars__.emplace_back( - rvalue(idx_res3, "idx_res3", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - vars__.emplace_back( - rvalue(idx_res11, "idx_res11", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - vars__.emplace_back( - rvalue(idx_res21, "idx_res21", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - vars__.emplace_back( - rvalue(idx_res31, "idx_res31", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back(idx_res4[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - vars__.emplace_back(idx_res5[(sym2__ - 1)][(sym1__ - 1)]); - } - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - double p_real; - p_real = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - p_real = context__.vals_r("p_real")[(1 - 1)]; - double p_upper; - p_upper = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - p_upper = context__.vals_r("p_upper")[(1 - 1)]; - double p_upper_free__; - p_upper_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - p_upper_free__ = stan::math::lb_free(p_upper, p_real); - double p_lower; - p_lower = std::numeric_limits::quiet_NaN(); - - current_statement__ = 3; - p_lower = context__.vals_r("p_lower")[(1 - 1)]; - double p_lower_free__; - p_lower_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 3; - p_lower_free__ = stan::math::ub_free(p_lower, p_upper); - std::vector offset_multiplier; - offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 4; - offset_multiplier = context__.vals_r("offset_multiplier"); - std::vector offset_multiplier_free__; - offset_multiplier_free__ = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 4; - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - current_statement__ = 4; - assign(offset_multiplier_free__, - stan::math::offset_multiplier_free(offset_multiplier[(sym1__ - 1)], - 1, 2), - "assigning variable offset_multiplier_free__", index_uni(sym1__)); - } - std::vector no_offset_multiplier; - no_offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 5; - no_offset_multiplier = context__.vals_r("no_offset_multiplier"); - std::vector no_offset_multiplier_free__; - no_offset_multiplier_free__ = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 5; - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - current_statement__ = 5; - assign(no_offset_multiplier_free__, - stan::math::offset_multiplier_free( - no_offset_multiplier[(sym1__ - 1)], 0, 2), - "assigning variable no_offset_multiplier_free__", index_uni(sym1__)); - } - std::vector offset_no_multiplier; - offset_no_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 6; - offset_no_multiplier = context__.vals_r("offset_no_multiplier"); - std::vector offset_no_multiplier_free__; - offset_no_multiplier_free__ = std::vector(5, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 6; - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - current_statement__ = 6; - assign(offset_no_multiplier_free__, - stan::math::offset_multiplier_free( - offset_no_multiplier[(sym1__ - 1)], 3, 1), - "assigning variable offset_no_multiplier_free__", index_uni(sym1__)); - } - std::vector p_real_1d_ar; - p_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 7; - p_real_1d_ar = context__.vals_r("p_real_1d_ar"); - std::vector p_real_1d_ar_free__; - p_real_1d_ar_free__ = std::vector(N, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 7; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 7; - assign(p_real_1d_ar_free__, - stan::math::lb_free(p_real_1d_ar[(sym1__ - 1)], 0), - "assigning variable p_real_1d_ar_free__", index_uni(sym1__)); - } - std::vector>> p_real_3d_ar; - p_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); - - - { - std::vector p_real_3d_ar_flat__; - current_statement__ = 8; - p_real_3d_ar_flat__ = context__.vals_r("p_real_3d_ar"); - current_statement__ = 8; - pos__ = 1; - current_statement__ = 8; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 8; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 8; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 8; - assign(p_real_3d_ar, p_real_3d_ar_flat__[(pos__ - 1)], - "assigning variable p_real_3d_ar", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 8; - pos__ = (pos__ + 1); - } - } - } - } - std::vector>> p_real_3d_ar_free__; - p_real_3d_ar_free__ = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); - - - current_statement__ = 8; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 8; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 8; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 8; - assign(p_real_3d_ar_free__, - stan::math::lb_free( - p_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)], 0), - "assigning variable p_real_3d_ar_free__", index_uni(sym1__), - index_uni(sym2__), - index_uni(sym3__)); - } - } - } - Eigen::Matrix p_vec; - p_vec = Eigen::Matrix(N); - stan::math::fill(p_vec, std::numeric_limits::quiet_NaN()); - - { - std::vector p_vec_flat__; - current_statement__ = 9; - p_vec_flat__ = context__.vals_r("p_vec"); - current_statement__ = 9; - pos__ = 1; - current_statement__ = 9; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 9; - assign(p_vec, p_vec_flat__[(pos__ - 1)], - "assigning variable p_vec", index_uni(sym1__)); - current_statement__ = 9; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix p_vec_free__; - p_vec_free__ = Eigen::Matrix(N); - stan::math::fill(p_vec_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 9; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 9; - assign(p_vec_free__, stan::math::lb_free(p_vec[(sym1__ - 1)], 0), - "assigning variable p_vec_free__", index_uni(sym1__)); - } - std::vector> p_1d_vec; - p_1d_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_vec, std::numeric_limits::quiet_NaN()); - - { - std::vector p_1d_vec_flat__; - current_statement__ = 10; - p_1d_vec_flat__ = context__.vals_r("p_1d_vec"); - current_statement__ = 10; - pos__ = 1; - current_statement__ = 10; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 10; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 10; - assign(p_1d_vec, p_1d_vec_flat__[(pos__ - 1)], - "assigning variable p_1d_vec", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 10; - pos__ = (pos__ + 1); - } - } - } - std::vector>>> p_3d_vec; - p_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_vec, std::numeric_limits::quiet_NaN()); - - { - std::vector p_3d_vec_flat__; - current_statement__ = 11; - p_3d_vec_flat__ = context__.vals_r("p_3d_vec"); - current_statement__ = 11; - pos__ = 1; - current_statement__ = 11; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 11; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 11; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 11; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 11; - assign(p_3d_vec, p_3d_vec_flat__[(pos__ - 1)], - "assigning variable p_3d_vec", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 11; - pos__ = (pos__ + 1); - } - } - } - } - } - Eigen::Matrix p_row_vec; - p_row_vec = Eigen::Matrix(N); - stan::math::fill(p_row_vec, std::numeric_limits::quiet_NaN()); - - { - std::vector p_row_vec_flat__; - current_statement__ = 12; - p_row_vec_flat__ = context__.vals_r("p_row_vec"); - current_statement__ = 12; - pos__ = 1; - current_statement__ = 12; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 12; - assign(p_row_vec, p_row_vec_flat__[(pos__ - 1)], - "assigning variable p_row_vec", index_uni(sym1__)); - current_statement__ = 12; - pos__ = (pos__ + 1); - } - } - std::vector> p_1d_row_vec; - p_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_row_vec, std::numeric_limits::quiet_NaN()); - - - { - std::vector p_1d_row_vec_flat__; - current_statement__ = 13; - p_1d_row_vec_flat__ = context__.vals_r("p_1d_row_vec"); - current_statement__ = 13; - pos__ = 1; - current_statement__ = 13; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 13; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 13; - assign(p_1d_row_vec, p_1d_row_vec_flat__[(pos__ - 1)], - "assigning variable p_1d_row_vec", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 13; - pos__ = (pos__ + 1); - } - } - } - std::vector>>> p_3d_row_vec; - p_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_row_vec, std::numeric_limits::quiet_NaN()); - - - { - std::vector p_3d_row_vec_flat__; - current_statement__ = 14; - p_3d_row_vec_flat__ = context__.vals_r("p_3d_row_vec"); - current_statement__ = 14; - pos__ = 1; - current_statement__ = 14; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 14; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 14; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 14; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 14; - assign(p_3d_row_vec, p_3d_row_vec_flat__[(pos__ - 1)], - "assigning variable p_3d_row_vec", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 14; - pos__ = (pos__ + 1); - } - } - } - } - } - Eigen::Matrix p_mat; - p_mat = Eigen::Matrix(5, 4); - stan::math::fill(p_mat, std::numeric_limits::quiet_NaN()); - - { - std::vector p_mat_flat__; - current_statement__ = 15; - p_mat_flat__ = context__.vals_r("p_mat"); - current_statement__ = 15; - pos__ = 1; - current_statement__ = 15; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 15; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 15; - assign(p_mat, p_mat_flat__[(pos__ - 1)], - "assigning variable p_mat", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 15; - pos__ = (pos__ + 1); - } - } - } - std::vector>> p_ar_mat; - p_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(p_ar_mat, std::numeric_limits::quiet_NaN()); - - { - std::vector p_ar_mat_flat__; - current_statement__ = 16; - p_ar_mat_flat__ = context__.vals_r("p_ar_mat"); - current_statement__ = 16; - pos__ = 1; - current_statement__ = 16; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 16; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 16; - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - current_statement__ = 16; - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - current_statement__ = 16; - assign(p_ar_mat, p_ar_mat_flat__[(pos__ - 1)], - "assigning variable p_ar_mat", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 16; - pos__ = (pos__ + 1); - } - } - } - } - } - std::vector>> p_ar_mat_free__; - p_ar_mat_free__ = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); - stan::math::fill(p_ar_mat_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 16; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 16; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 16; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 16; - for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { - current_statement__ = 16; - assign(p_ar_mat_free__, - stan::math::lub_free( - rvalue(p_ar_mat, "p_ar_mat", - index_uni(sym1__), index_uni(sym2__), index_uni(sym3__), - index_uni(sym4__)), 0, 1), - "assigning variable p_ar_mat_free__", index_uni(sym1__), - index_uni(sym2__), - index_uni(sym3__), - index_uni(sym4__)); - } - } - } - } - Eigen::Matrix p_simplex; - p_simplex = Eigen::Matrix(N); - stan::math::fill(p_simplex, std::numeric_limits::quiet_NaN()); - - { - std::vector p_simplex_flat__; - current_statement__ = 17; - p_simplex_flat__ = context__.vals_r("p_simplex"); - current_statement__ = 17; - pos__ = 1; - current_statement__ = 17; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 17; - assign(p_simplex, p_simplex_flat__[(pos__ - 1)], - "assigning variable p_simplex", index_uni(sym1__)); - current_statement__ = 17; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix p_simplex_free__; - p_simplex_free__ = Eigen::Matrix((N - 1)); - stan::math::fill(p_simplex_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 17; - assign(p_simplex_free__, stan::math::simplex_free(p_simplex), - "assigning variable p_simplex_free__"); - std::vector> p_1d_simplex; - p_1d_simplex = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(p_1d_simplex, std::numeric_limits::quiet_NaN()); - - - { - std::vector p_1d_simplex_flat__; - current_statement__ = 18; - p_1d_simplex_flat__ = context__.vals_r("p_1d_simplex"); - current_statement__ = 18; - pos__ = 1; - current_statement__ = 18; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 18; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 18; - assign(p_1d_simplex, p_1d_simplex_flat__[(pos__ - 1)], - "assigning variable p_1d_simplex", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 18; - pos__ = (pos__ + 1); - } - } - } - std::vector> p_1d_simplex_free__; - p_1d_simplex_free__ = std::vector>(N, Eigen::Matrix( - (N - 1))); - stan::math::fill(p_1d_simplex_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 18; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 18; - assign(p_1d_simplex_free__, - stan::math::simplex_free(p_1d_simplex[(sym1__ - 1)]), - "assigning variable p_1d_simplex_free__", index_uni(sym1__)); - } - std::vector>>> p_3d_simplex; - p_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); - stan::math::fill(p_3d_simplex, std::numeric_limits::quiet_NaN()); - - - { - std::vector p_3d_simplex_flat__; - current_statement__ = 19; - p_3d_simplex_flat__ = context__.vals_r("p_3d_simplex"); - current_statement__ = 19; - pos__ = 1; - current_statement__ = 19; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 19; - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - current_statement__ = 19; - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - current_statement__ = 19; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 19; - assign(p_3d_simplex, p_3d_simplex_flat__[(pos__ - 1)], - "assigning variable p_3d_simplex", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 19; - pos__ = (pos__ + 1); - } - } - } - } - } - std::vector>>> p_3d_simplex_free__; - p_3d_simplex_free__ = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix( - (N - 1))))); - stan::math::fill(p_3d_simplex_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 19; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 19; - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - current_statement__ = 19; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 19; - assign(p_3d_simplex_free__, - stan::math::simplex_free( - p_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]), - "assigning variable p_3d_simplex_free__", index_uni(sym1__), - index_uni(sym2__), - index_uni(sym3__)); - } - } - } - Eigen::Matrix p_cfcov_54; - p_cfcov_54 = Eigen::Matrix(5, 4); - stan::math::fill(p_cfcov_54, std::numeric_limits::quiet_NaN()); - - { - std::vector p_cfcov_54_flat__; - current_statement__ = 20; - p_cfcov_54_flat__ = context__.vals_r("p_cfcov_54"); - current_statement__ = 20; - pos__ = 1; - current_statement__ = 20; - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - current_statement__ = 20; - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - current_statement__ = 20; - assign(p_cfcov_54, p_cfcov_54_flat__[(pos__ - 1)], - "assigning variable p_cfcov_54", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 20; - pos__ = (pos__ + 1); - } - } - } - Eigen::Matrix p_cfcov_54_free__; - p_cfcov_54_free__ = Eigen::Matrix(((((4 * (4 - 1)) / 2) - + 4) + - ((5 - 4) * 4))); - stan::math::fill(p_cfcov_54_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 20; - assign(p_cfcov_54_free__, stan::math::cholesky_factor_free(p_cfcov_54), - "assigning variable p_cfcov_54_free__"); - Eigen::Matrix p_cfcov_33; - p_cfcov_33 = Eigen::Matrix(3, 3); - stan::math::fill(p_cfcov_33, std::numeric_limits::quiet_NaN()); - - { - std::vector p_cfcov_33_flat__; - current_statement__ = 21; - p_cfcov_33_flat__ = context__.vals_r("p_cfcov_33"); - current_statement__ = 21; - pos__ = 1; - current_statement__ = 21; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 21; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 21; - assign(p_cfcov_33, p_cfcov_33_flat__[(pos__ - 1)], - "assigning variable p_cfcov_33", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 21; - pos__ = (pos__ + 1); - } - } - } - Eigen::Matrix p_cfcov_33_free__; - p_cfcov_33_free__ = Eigen::Matrix(((((3 * (3 - 1)) / 2) - + 3) + - ((3 - 3) * 3))); - stan::math::fill(p_cfcov_33_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 21; - assign(p_cfcov_33_free__, stan::math::cholesky_factor_free(p_cfcov_33), - "assigning variable p_cfcov_33_free__"); - std::vector> p_cfcov_33_ar; - p_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); - stan::math::fill(p_cfcov_33_ar, std::numeric_limits::quiet_NaN()); - - - { - std::vector p_cfcov_33_ar_flat__; - current_statement__ = 22; - p_cfcov_33_ar_flat__ = context__.vals_r("p_cfcov_33_ar"); - current_statement__ = 22; - pos__ = 1; - current_statement__ = 22; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 22; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 22; - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - current_statement__ = 22; - assign(p_cfcov_33_ar, p_cfcov_33_ar_flat__[(pos__ - 1)], - "assigning variable p_cfcov_33_ar", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 22; - pos__ = (pos__ + 1); - } - } - } - } - std::vector> p_cfcov_33_ar_free__; - p_cfcov_33_ar_free__ = std::vector>(K, Eigen::Matrix( - ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)))); - stan::math::fill(p_cfcov_33_ar_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 22; - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - current_statement__ = 22; - assign(p_cfcov_33_ar_free__, - stan::math::cholesky_factor_free(p_cfcov_33_ar[(sym1__ - 1)]), - "assigning variable p_cfcov_33_ar_free__", index_uni(sym1__)); - } - Eigen::Matrix x_p; - x_p = Eigen::Matrix(2); - stan::math::fill(x_p, std::numeric_limits::quiet_NaN()); - - { - std::vector x_p_flat__; - current_statement__ = 23; - x_p_flat__ = context__.vals_r("x_p"); - current_statement__ = 23; - pos__ = 1; - current_statement__ = 23; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 23; - assign(x_p, x_p_flat__[(pos__ - 1)], - "assigning variable x_p", index_uni(sym1__)); - current_statement__ = 23; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix y_p; - y_p = Eigen::Matrix(2); - stan::math::fill(y_p, std::numeric_limits::quiet_NaN()); - - { - std::vector y_p_flat__; - current_statement__ = 24; - y_p_flat__ = context__.vals_r("y_p"); - current_statement__ = 24; - pos__ = 1; - current_statement__ = 24; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 24; - assign(y_p, y_p_flat__[(pos__ - 1)], - "assigning variable y_p", index_uni(sym1__)); - current_statement__ = 24; - pos__ = (pos__ + 1); - } - } - vars__.emplace_back(p_real); - vars__.emplace_back(p_upper_free__); - vars__.emplace_back(p_lower_free__); - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - vars__.emplace_back(offset_multiplier_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - vars__.emplace_back(no_offset_multiplier_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - vars__.emplace_back(offset_no_multiplier_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(p_real_1d_ar_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - vars__.emplace_back( - p_real_3d_ar_free__[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(p_vec_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(p_1d_vec[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - p_3d_vec[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)][(sym4__ - - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(p_row_vec[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(p_1d_row_vec[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - p_3d_row_vec[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)][ - (sym4__ - 1)]); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back( - rvalue(p_mat, "p_mat", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { - vars__.emplace_back( - rvalue(p_ar_mat_free__, "p_ar_mat_free__", - index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), - index_uni(sym3__))); - } - } - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - vars__.emplace_back(p_simplex_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= (N - 1); ++sym2__) { - vars__.emplace_back( - p_1d_simplex_free__[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - for (int sym4__ = 1; sym4__ <= (N - 1); ++sym4__) { - vars__.emplace_back( - p_3d_simplex_free__[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)][ - (sym4__ - 1)]); - } - } - } - } - for (int sym1__ = 1; - sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { - vars__.emplace_back(p_cfcov_54_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; - sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { - vars__.emplace_back(p_cfcov_33_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - for (int sym2__ = 1; - sym2__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym2__) { - vars__.emplace_back( - p_cfcov_33_ar_free__[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(x_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(y_p[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"p_real", "p_upper", "p_lower", - "offset_multiplier", "no_offset_multiplier", "offset_no_multiplier", - "p_real_1d_ar", "p_real_3d_ar", "p_vec", "p_1d_vec", "p_3d_vec", - "p_row_vec", "p_1d_row_vec", "p_3d_row_vec", "p_mat", "p_ar_mat", - "p_simplex", "p_1d_simplex", "p_3d_simplex", "p_cfcov_54", - "p_cfcov_33", "p_cfcov_33_ar", "x_p", "y_p", "tp_real_1d_ar", - "tp_real_3d_ar", "tp_vec", "tp_1d_vec", "tp_3d_vec", "tp_row_vec", - "tp_1d_row_vec", "tp_3d_row_vec", "tp_mat", "tp_ar_mat", "tp_simplex", - "tp_1d_simplex", "tp_3d_simplex", "tp_cfcov_54", "tp_cfcov_33", - "tp_cfcov_33_ar", "theta_p", "tp_real", "gq_r1", "gq_r2", - "gq_real_1d_ar", "gq_real_3d_ar", "gq_vec", "gq_1d_vec", "gq_3d_vec", - "gq_row_vec", "gq_1d_row_vec", "gq_3d_row_vec", "gq_ar_mat", - "gq_simplex", "gq_1d_simplex", "gq_3d_simplex", "gq_cfcov_54", - "gq_cfcov_33", "gq_cfcov_33_ar", "indices", "indexing_mat", "idx_res1", - "idx_res2", "idx_res3", "idx_res11", "idx_res21", "idx_res31", - "idx_res4", "idx_res5"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}, - std::vector{}, std::vector{}, - std::vector{static_cast(5)}, - std::vector{static_cast(5)}, - std::vector{static_cast(5)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(5), static_cast(4)}, - std::vector{static_cast(4), static_cast(5), - static_cast(2), static_cast(3)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(5), static_cast(4)}, - std::vector{static_cast(3), static_cast(3)}, - std::vector{static_cast(K), static_cast(3), - static_cast(3)}, - std::vector{static_cast(2)}, - std::vector{static_cast(2)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(5), static_cast(4)}, - std::vector{static_cast(4), static_cast(5), - static_cast(2), static_cast(3)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(5), static_cast(4)}, - std::vector{static_cast(3), static_cast(3)}, - std::vector{static_cast(K), static_cast(3), - static_cast(3)}, - std::vector{static_cast(2)}, std::vector{ - }, std::vector{}, std::vector{}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(4), static_cast(5), - static_cast(2), static_cast(3)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(M), - static_cast(K), static_cast(N)}, - std::vector{static_cast(5), static_cast(4)}, - std::vector{static_cast(3), static_cast(3)}, - std::vector{static_cast(K), static_cast(3), - static_cast(3)}, - std::vector{static_cast(3)}, - std::vector{static_cast(5), static_cast(3), - static_cast(4)}, - std::vector{static_cast(3), static_cast(3), - static_cast(4)}, - std::vector{static_cast(5), static_cast(3), - static_cast(4)}, - std::vector{static_cast(3), static_cast(3), - static_cast(3)}, - std::vector{static_cast(3), static_cast(3), - static_cast(4)}, - std::vector{static_cast(5), static_cast(3), - static_cast(4)}, - std::vector{static_cast(3), static_cast(3), - static_cast(3)}, - std::vector{static_cast(3), static_cast(4)}, - std::vector{static_cast(2), static_cast(2)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "p_real"); - param_names__.emplace_back(std::string() + "p_upper"); - param_names__.emplace_back(std::string() + "p_lower"); - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - { - param_names__.emplace_back(std::string() + "offset_multiplier" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - { - param_names__.emplace_back(std::string() + "no_offset_multiplier" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - { - param_names__.emplace_back(std::string() + "offset_no_multiplier" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_real_1d_ar" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "p_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_row_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_simplex" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_cfcov_54" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_cfcov_33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - { - param_names__.emplace_back(std::string() + "p_cfcov_33_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_real_1d_ar" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "tp_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_row_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_simplex" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_cfcov_54" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_cfcov_33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - { - param_names__.emplace_back(std::string() + "tp_cfcov_33_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); - } - } - param_names__.emplace_back(std::string() + "tp_real"); - } - - if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "gq_r1"); - param_names__.emplace_back(std::string() + "gq_r2"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_real_1d_ar" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "gq_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_row_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_simplex" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_cfcov_54" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_cfcov_33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= K; ++sym3__) { - { - param_names__.emplace_back(std::string() + "gq_cfcov_33_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "indices" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - param_names__.emplace_back(std::string() + "indexing_mat" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res1" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res2" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res3" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res11" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res21" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res31" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "idx_res4" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - param_names__.emplace_back(std::string() + "idx_res5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "p_real"); - param_names__.emplace_back(std::string() + "p_upper"); - param_names__.emplace_back(std::string() + "p_lower"); - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - { - param_names__.emplace_back(std::string() + "offset_multiplier" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - { - param_names__.emplace_back(std::string() + "no_offset_multiplier" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { - { - param_names__.emplace_back(std::string() + "offset_no_multiplier" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_real_1d_ar" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "p_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_row_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_simplex" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "p_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; - sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_cfcov_54" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; - sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { - { - param_names__.emplace_back(std::string() + "p_cfcov_33" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; - sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - param_names__.emplace_back(std::string() + "p_cfcov_33_ar" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_real_1d_ar" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "tp_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_row_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_simplex" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "tp_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; - sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_cfcov_54" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; - sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { - { - param_names__.emplace_back(std::string() + "tp_cfcov_33" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; - sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - param_names__.emplace_back(std::string() + "tp_cfcov_33_ar" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); - } - } - param_names__.emplace_back(std::string() + "tp_real"); - } - - if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "gq_r1"); - param_names__.emplace_back(std::string() + "gq_r2"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_real_1d_ar" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= K; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= M; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "gq_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_row_vec" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_simplex" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= M; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "gq_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; - sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_cfcov_54" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; - sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { - { - param_names__.emplace_back(std::string() + "gq_cfcov_33" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; - sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= K; ++sym2__) { - { - param_names__.emplace_back(std::string() + "gq_cfcov_33_ar" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "indices" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - param_names__.emplace_back(std::string() + "indexing_mat" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res1" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res2" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res3" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res11" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res21" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { - { - param_names__.emplace_back(std::string() + "idx_res31" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "idx_res4" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - param_names__.emplace_back(std::string() + "idx_res5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"p_real\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_upper\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_lower\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"no_offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"offset_no_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"p_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"parameters\"},{\"name\":\"p_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"parameters\"},{\"name\":\"p_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_cfcov_54\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"tp_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_54\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"gq_r1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_r2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_54\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"indices\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"int\"}},\"block\":\"generated_quantities\"},{\"name\":\"indexing_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res11\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res21\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res31\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"generated_quantities\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"p_real\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_upper\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_lower\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"no_offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"offset_no_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"p_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"parameters\"},{\"name\":\"p_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"parameters\"},{\"name\":\"p_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_cfcov_54\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4))) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"tp_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_54\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4))) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"gq_r1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_r2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_54\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4))) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "}},\"block\":\"generated_quantities\"},{\"name\":\"indices\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"int\"}},\"block\":\"generated_quantities\"},{\"name\":\"indexing_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res11\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res21\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res31\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"generated_quantities\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = mother_model_namespace::mother_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return mother_model_namespace::profiles__; -} - -#endif - - -STAN_REGISTER_MAP_RECT(1, mother_model_namespace::binomialf_functor__) -Warning in 'mother.stan', line 63, column 4: increment_log_prob(...); is deprecated and will be removed in the future. Use target += ...; instead. -Warning in 'mother.stan', line 187, column 15: get_lp() function is deprecated. It will be removed in a future release. Use target() instead. -Warning in 'mother.stan', line 63, column 23: normal_log is deprecated and will be removed in the future. Use normal_lpdf instead. -Warning in 'mother.stan', line 187, column 15: The no-argument function `get_lp()` is deprecated. Use the no-argument function `target()` instead. - $ ../../../../../install/default/bin/stanc --print-cpp motherHOF.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace motherHOF_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'motherHOF.stan', line 52, column 2 to column 15)", - " (in 'motherHOF.stan', line 53, column 2 to column 18)", - " (in 'motherHOF.stan', line 54, column 2 to column 14)", - " (in 'motherHOF.stan', line 55, column 2 to column 18)", - " (in 'motherHOF.stan', line 56, column 2 to column 28)", - " (in 'motherHOF.stan', line 57, column 2 to column 28)", - " (in 'motherHOF.stan', line 58, column 2 to column 11)", - " (in 'motherHOF.stan', line 61, column 2 to column 18)", - " (in 'motherHOF.stan', line 62, column 2 to column 37)", - " (in 'motherHOF.stan', line 63, column 2 to column 33)", - " (in 'motherHOF.stan', line 64, column 2 to line 65, column 69)", - " (in 'motherHOF.stan', line 66, column 2 to line 67, column 69)", - " (in 'motherHOF.stan', line 68, column 2 to line 69, column 69)", - " (in 'motherHOF.stan', line 70, column 2 to column 23)", - " (in 'motherHOF.stan', line 71, column 2 to column 16)", - " (in 'motherHOF.stan', line 72, column 2 to column 16)", - " (in 'motherHOF.stan', line 73, column 2 to column 16)", - " (in 'motherHOF.stan', line 74, column 2 to column 70)", - " (in 'motherHOF.stan', line 75, column 2 to column 86)", - " (in 'motherHOF.stan', line 76, column 2 to column 86)", - " (in 'motherHOF.stan', line 77, column 2 to column 72)", - " (in 'motherHOF.stan', line 79, column 2 to column 88)", - " (in 'motherHOF.stan', line 80, column 2 to column 72)", - " (in 'motherHOF.stan', line 81, column 2 to column 88)", - " (in 'motherHOF.stan', line 83, column 2 to column 77)", - " (in 'motherHOF.stan', line 84, column 2 to column 93)", - " (in 'motherHOF.stan', line 85, column 2 to column 93)", - " (in 'motherHOF.stan', line 86, column 2 to column 79)", - " (in 'motherHOF.stan', line 88, column 2 to column 95)", - " (in 'motherHOF.stan', line 89, column 2 to column 79)", - " (in 'motherHOF.stan', line 90, column 2 to column 95)", - " (in 'motherHOF.stan', line 145, column 2 to column 18)", - " (in 'motherHOF.stan', line 146, column 2 to column 68)", - " (in 'motherHOF.stan', line 147, column 2 to column 68)", - " (in 'motherHOF.stan', line 148, column 2 to column 68)", - " (in 'motherHOF.stan', line 149, column 2 to column 68)", - " (in 'motherHOF.stan', line 151, column 2 to column 87)", - " (in 'motherHOF.stan', line 152, column 2 to column 87)", - " (in 'motherHOF.stan', line 153, column 2 to column 87)", - " (in 'motherHOF.stan', line 154, column 2 to column 87)", - " (in 'motherHOF.stan', line 156, column 2 to column 66)", - " (in 'motherHOF.stan', line 157, column 2 to column 66)", - " (in 'motherHOF.stan', line 158, column 2 to column 66)", - " (in 'motherHOF.stan', line 159, column 2 to column 66)", - " (in 'motherHOF.stan', line 161, column 2 to column 85)", - " (in 'motherHOF.stan', line 162, column 2 to column 85)", - " (in 'motherHOF.stan', line 163, column 2 to column 85)", - " (in 'motherHOF.stan', line 164, column 2 to column 85)", - " (in 'motherHOF.stan', line 166, column 2 to column 67)", - " (in 'motherHOF.stan', line 167, column 2 to column 67)", - " (in 'motherHOF.stan', line 168, column 2 to column 67)", - " (in 'motherHOF.stan', line 169, column 2 to column 67)", - " (in 'motherHOF.stan', line 171, column 2 to column 61)", - " (in 'motherHOF.stan', line 172, column 2 to column 58)", - " (in 'motherHOF.stan', line 173, column 2 to column 58)", - " (in 'motherHOF.stan', line 174, column 2 to column 60)", - " (in 'motherHOF.stan', line 176, column 2 to column 67)", - " (in 'motherHOF.stan', line 177, column 2 to column 64)", - " (in 'motherHOF.stan', line 178, column 2 to column 64)", - " (in 'motherHOF.stan', line 179, column 2 to column 66)", - " (in 'motherHOF.stan', line 181, column 2 to column 34)", - " (in 'motherHOF.stan', line 182, column 2 to column 38)", - " (in 'motherHOF.stan', line 183, column 2 to line 185, column 71)", - " (in 'motherHOF.stan', line 187, column 2 to line 188, column 69)", - " (in 'motherHOF.stan', line 190, column 2 to column 22)", - " (in 'motherHOF.stan', line 191, column 2 to column 69)", - " (in 'motherHOF.stan', line 192, column 2 to column 85)", - " (in 'motherHOF.stan', line 193, column 2 to column 85)", - " (in 'motherHOF.stan', line 194, column 2 to column 71)", - " (in 'motherHOF.stan', line 196, column 2 to column 87)", - " (in 'motherHOF.stan', line 197, column 2 to column 71)", - " (in 'motherHOF.stan', line 198, column 2 to column 87)", - " (in 'motherHOF.stan', line 200, column 2 to column 76)", - " (in 'motherHOF.stan', line 201, column 2 to column 92)", - " (in 'motherHOF.stan', line 202, column 2 to column 92)", - " (in 'motherHOF.stan', line 203, column 2 to column 78)", - " (in 'motherHOF.stan', line 205, column 2 to column 94)", - " (in 'motherHOF.stan', line 206, column 2 to column 78)", - " (in 'motherHOF.stan', line 207, column 2 to column 94)", - " (in 'motherHOF.stan', line 94, column 13 to column 14)", - " (in 'motherHOF.stan', line 94, column 2 to column 18)", - " (in 'motherHOF.stan', line 95, column 2 to column 68)", - " (in 'motherHOF.stan', line 96, column 2 to column 68)", - " (in 'motherHOF.stan', line 97, column 2 to column 68)", - " (in 'motherHOF.stan', line 99, column 2 to column 87)", - " (in 'motherHOF.stan', line 100, column 2 to column 87)", - " (in 'motherHOF.stan', line 101, column 2 to column 87)", - " (in 'motherHOF.stan', line 103, column 2 to column 66)", - " (in 'motherHOF.stan', line 104, column 2 to column 66)", - " (in 'motherHOF.stan', line 105, column 2 to column 66)", - " (in 'motherHOF.stan', line 106, column 2 to column 66)", - " (in 'motherHOF.stan', line 108, column 2 to column 85)", - " (in 'motherHOF.stan', line 109, column 2 to column 85)", - " (in 'motherHOF.stan', line 110, column 2 to column 85)", - " (in 'motherHOF.stan', line 111, column 2 to column 85)", - " (in 'motherHOF.stan', line 113, column 2 to column 67)", - " (in 'motherHOF.stan', line 114, column 2 to column 67)", - " (in 'motherHOF.stan', line 115, column 2 to column 67)", - " (in 'motherHOF.stan', line 116, column 2 to column 67)", - " (in 'motherHOF.stan', line 118, column 2 to column 61)", - " (in 'motherHOF.stan', line 119, column 2 to column 58)", - " (in 'motherHOF.stan', line 120, column 2 to column 58)", - " (in 'motherHOF.stan', line 121, column 2 to column 60)", - " (in 'motherHOF.stan', line 122, column 2 to column 56)", - " (in 'motherHOF.stan', line 123, column 2 to column 58)", - " (in 'motherHOF.stan', line 124, column 2 to column 58)", - " (in 'motherHOF.stan', line 125, column 2 to column 60)", - " (in 'motherHOF.stan', line 126, column 2 to column 62)", - " (in 'motherHOF.stan', line 127, column 2 to column 62)", - " (in 'motherHOF.stan', line 128, column 2 to column 64)", - " (in 'motherHOF.stan', line 130, column 2 to column 67)", - " (in 'motherHOF.stan', line 131, column 2 to column 64)", - " (in 'motherHOF.stan', line 132, column 2 to column 64)", - " (in 'motherHOF.stan', line 133, column 2 to column 66)", - " (in 'motherHOF.stan', line 134, column 2 to column 62)", - " (in 'motherHOF.stan', line 135, column 2 to column 64)", - " (in 'motherHOF.stan', line 136, column 2 to column 64)", - " (in 'motherHOF.stan', line 137, column 2 to column 66)", - " (in 'motherHOF.stan', line 138, column 2 to column 68)", - " (in 'motherHOF.stan', line 139, column 2 to column 68)", - " (in 'motherHOF.stan', line 140, column 2 to column 70)", - " (in 'motherHOF.stan', line 142, column 2 to column 36)", - " (in 'motherHOF.stan', line 37, column 2 to column 17)", - " (in 'motherHOF.stan', line 38, column 2 to column 15)", - " (in 'motherHOF.stan', line 39, column 2 to column 10)", - " (in 'motherHOF.stan', line 40, column 10 to column 11)", - " (in 'motherHOF.stan', line 40, column 2 to column 13)", - " (in 'motherHOF.stan', line 41, column 2 to column 18)", - " (in 'motherHOF.stan', line 42, column 2 to column 12)", - " (in 'motherHOF.stan', line 43, column 2 to column 15)", - " (in 'motherHOF.stan', line 44, column 2 to column 16)", - " (in 'motherHOF.stan', line 45, column 2 to column 15)", - " (in 'motherHOF.stan', line 46, column 2 to column 28)", - " (in 'motherHOF.stan', line 47, column 2 to column 28)", - " (in 'motherHOF.stan', line 48, column 2 to column 20)", - " (in 'motherHOF.stan', line 49, column 2 to column 19)", - " (in 'motherHOF.stan', line 53, column 15 to column 16)", - " (in 'motherHOF.stan', line 54, column 11 to column 12)", - " (in 'motherHOF.stan', line 145, column 13 to column 14)", - " (in 'motherHOF.stan', line 7, column 4 to column 17)", - " (in 'motherHOF.stan', line 8, column 4 to column 19)", - " (in 'motherHOF.stan', line 9, column 4 to column 38)", - " (in 'motherHOF.stan', line 10, column 4 to column 16)", - " (in 'motherHOF.stan', line 6, column 26 to line 11, column 3)", - " (in 'motherHOF.stan', line 13, column 4 to column 15)", - " (in 'motherHOF.stan', line 12, column 71 to line 14, column 3)", - " (in 'motherHOF.stan', line 17, column 4 to column 22)", - " (in 'motherHOF.stan', line 16, column 42 to line 18, column 3)", - " (in 'motherHOF.stan', line 21, column 4 to column 22)", - " (in 'motherHOF.stan', line 20, column 42 to line 22, column 3)", - " (in 'motherHOF.stan', line 24, column 4 to column 17)", - " (in 'motherHOF.stan', line 23, column 28 to line 25, column 3)", - " (in 'motherHOF.stan', line 30, column 4 to column 18)", - " (in 'motherHOF.stan', line 31, column 4 to column 25)", - " (in 'motherHOF.stan', line 32, column 4 to column 25)", - " (in 'motherHOF.stan', line 33, column 4 to column 15)", - " (in 'motherHOF.stan', line 29, column 39 to line 34, column 3)"}; - -template -std::vector> -sho(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) ; - -struct sho_functor__ { -template -std::vector> -operator()(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) const -{ -return sho(t, y, theta, x, x_int, pstream__); -} -}; - -template -stan::promote_args_t -integrand(const T0__& x, const T1__& xc, const std::vector& theta, - const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) ; - -struct integrand_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, const T1__& xc, const std::vector& theta, - const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) const -{ -return integrand(x, xc, theta, x_r, x_i, pstream__); -} -}; - -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -foo(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) ; - -struct foo_functor__ { -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) const -{ -return foo(shared_params, job_params, data_r, data_i, pstream__); -} -}; - -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -goo(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) ; - -struct goo_functor__ { -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) const -{ -return goo(shared_params, job_params, data_r, data_i, pstream__); -} -}; - -template -stan::promote_args_t -map_rectfake(const T0__& x, std::ostream* pstream__) ; - -struct map_rectfake_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return map_rectfake(x, pstream__); -} -}; - -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -algebra_system(const T0__& x, const T1__& y, const std::vector& dat, - const std::vector& dat_int, std::ostream* pstream__) ; - -struct algebra_system_functor__ { -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -operator()(const T0__& x, const T1__& y, const std::vector& dat, - const std::vector& dat_int, std::ostream* pstream__) const -{ -return algebra_system(x, y, dat, dat_int, pstream__); -} -}; - -template -std::vector> -sho(const T0__& t, const std::vector& y, - const std::vector& theta, const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - std::vector dydt; - dydt = std::vector(2, DUMMY_VAR__); - - current_statement__ = 141; - assign(dydt, rvalue(y, "y", index_uni(2)), - "assigning variable dydt", index_uni(1)); - current_statement__ = 142; - assign(dydt, - (-rvalue(y, "y", index_uni(1)) - - (rvalue(theta, "theta", index_uni(1)) * rvalue(y, "y", index_uni(2)))), - "assigning variable dydt", index_uni(2)); - current_statement__ = 143; - return dydt; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -integrand(const T0__& x, const T1__& xc, const std::vector& theta, - const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 145; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - T2__>; - int current_statement__ = 0; - const auto& shared_params = to_ref(shared_params_arg__); - const auto& job_params = to_ref(job_params_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 147; - return (Eigen::Matrix(3) << 1, 2, 3).finished(); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - T2__>; - int current_statement__ = 0; - const auto& shared_params = to_ref(shared_params_arg__); - const auto& job_params = to_ref(job_params_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 149; - return (Eigen::Matrix(3) << 4, 5, 6).finished(); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -map_rectfake(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 151; - return (2 * x); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -Eigen::Matrix, stan::value_type_t, -T2__>, -1, 1> -algebra_system(const T0__& x_arg__, const T1__& y_arg__, - const std::vector& dat, const std::vector& dat_int, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - T2__>; - int current_statement__ = 0; - const auto& x = to_ref(x_arg__); - const auto& y = to_ref(y_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - Eigen::Matrix f_x; - f_x = Eigen::Matrix(2); - stan::math::fill(f_x, DUMMY_VAR__); - - current_statement__ = 154; - assign(f_x, - (rvalue(x, "x", index_uni(1)) - rvalue(y, "y", index_uni(1))), - "assigning variable f_x", index_uni(1)); - current_statement__ = 155; - assign(f_x, - (rvalue(x, "x", index_uni(2)) - rvalue(y, "y", index_uni(2))), - "assigning variable f_x", index_uni(2)); - current_statement__ = 156; - return f_x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class motherHOF_model final : public model_base_crtp { - - private: - int T; - std::vector y0_d; - double t0; - std::vector ts; - std::vector theta_d; - std::vector x; - std::vector x_int; - std::vector x_d_r; - std::vector x_d_i; - Eigen::Matrix shared_params_d__; - std::vector> job_params_d; - std::vector> data_r; - std::vector> data_i; - Eigen::Map> shared_params_d{nullptr, 0}; - - public: - ~motherHOF_model() { } - - inline std::string model_name() const final { return "motherHOF_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - motherHOF_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "motherHOF_model_namespace::motherHOF_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 123; - context__.validate_dims("data initialization","T","int", - std::vector{}); - T = std::numeric_limits::min(); - - current_statement__ = 123; - T = context__.vals_i("T")[(1 - 1)]; - current_statement__ = 123; - check_greater_or_equal(function__, "T", T, 1); - current_statement__ = 124; - context__.validate_dims("data initialization","y0_d","double", - std::vector{static_cast(2)}); - y0_d = std::vector(2, std::numeric_limits::quiet_NaN()); - - current_statement__ = 124; - y0_d = context__.vals_r("y0_d"); - current_statement__ = 125; - context__.validate_dims("data initialization","t0","double", - std::vector{}); - t0 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 125; - t0 = context__.vals_r("t0")[(1 - 1)]; - current_statement__ = 126; - validate_non_negative_index("ts", "T", T); - current_statement__ = 127; - context__.validate_dims("data initialization","ts","double", - std::vector{static_cast(T)}); - ts = std::vector(T, std::numeric_limits::quiet_NaN()); - - current_statement__ = 127; - ts = context__.vals_r("ts"); - current_statement__ = 128; - context__.validate_dims("data initialization","theta_d","double", - std::vector{static_cast(1)}); - theta_d = std::vector(1, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 128; - theta_d = context__.vals_r("theta_d"); - current_statement__ = 129; - context__.validate_dims("data initialization","x","double", - std::vector{static_cast(0)}); - x = std::vector(0, std::numeric_limits::quiet_NaN()); - - current_statement__ = 129; - x = context__.vals_r("x"); - current_statement__ = 130; - context__.validate_dims("data initialization","x_int","int", - std::vector{static_cast(0)}); - x_int = std::vector(0, std::numeric_limits::min()); - - current_statement__ = 130; - x_int = context__.vals_i("x_int"); - current_statement__ = 131; - context__.validate_dims("data initialization","x_d_r","double", - std::vector{static_cast(0)}); - x_d_r = std::vector(0, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 131; - x_d_r = context__.vals_r("x_d_r"); - current_statement__ = 132; - context__.validate_dims("data initialization","x_d_i","int", - std::vector{static_cast(0)}); - x_d_i = std::vector(0, std::numeric_limits::min()); - - current_statement__ = 132; - x_d_i = context__.vals_i("x_d_i"); - current_statement__ = 133; - context__.validate_dims("data initialization","shared_params_d", - "double", std::vector{static_cast(3)}); - shared_params_d__ = Eigen::Matrix(3); - new (&shared_params_d) Eigen::Map>(shared_params_d__.data(), 3); - - - { - std::vector shared_params_d_flat__; - current_statement__ = 133; - shared_params_d_flat__ = context__.vals_r("shared_params_d"); - current_statement__ = 133; - pos__ = 1; - current_statement__ = 133; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 133; - assign(shared_params_d, shared_params_d_flat__[(pos__ - 1)], - "assigning variable shared_params_d", index_uni(sym1__)); - current_statement__ = 133; - pos__ = (pos__ + 1); - } - } - current_statement__ = 134; - context__.validate_dims("data initialization","job_params_d","double", - std::vector{static_cast(3), - static_cast(3)}); - job_params_d = std::vector>(3, Eigen::Matrix(3)); - - - { - std::vector job_params_d_flat__; - current_statement__ = 134; - job_params_d_flat__ = context__.vals_r("job_params_d"); - current_statement__ = 134; - pos__ = 1; - current_statement__ = 134; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 134; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 134; - assign(job_params_d, job_params_d_flat__[(pos__ - 1)], - "assigning variable job_params_d", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 134; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 135; - context__.validate_dims("data initialization","data_r","double", - std::vector{static_cast(3), - static_cast(3)}); - data_r = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); - - - { - std::vector data_r_flat__; - current_statement__ = 135; - data_r_flat__ = context__.vals_r("data_r"); - current_statement__ = 135; - pos__ = 1; - current_statement__ = 135; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 135; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 135; - assign(data_r, data_r_flat__[(pos__ - 1)], - "assigning variable data_r", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 135; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 136; - context__.validate_dims("data initialization","data_i","int", - std::vector{static_cast(3), - static_cast(3)}); - data_i = std::vector>(3, std::vector(3, std::numeric_limits::min())); - - - { - std::vector data_i_flat__; - current_statement__ = 136; - data_i_flat__ = context__.vals_i("data_i"); - current_statement__ = 136; - pos__ = 1; - current_statement__ = 136; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 136; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 136; - assign(data_i, data_i_flat__[(pos__ - 1)], - "assigning variable data_i", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 136; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 137; - validate_non_negative_index("theta_p", "1", 1); - current_statement__ = 138; - validate_non_negative_index("x_p", "1", 1); - current_statement__ = 139; - validate_non_negative_index("y_hat", "T", T); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 2 + 1 + 1 + 2 + 3 + (3 * 3) + 1; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "motherHOF_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - std::vector y0_p; - y0_p = std::vector(2, DUMMY_VAR__); - - current_statement__ = 1; - y0_p = in__.template read>(2); - std::vector theta_p; - theta_p = std::vector(1, DUMMY_VAR__); - - current_statement__ = 2; - theta_p = in__.template read>(1); - std::vector x_p; - x_p = std::vector(1, DUMMY_VAR__); - - current_statement__ = 3; - x_p = in__.template read>(1); - Eigen::Matrix x_p_v; - x_p_v = Eigen::Matrix(2); - stan::math::fill(x_p_v, DUMMY_VAR__); - - current_statement__ = 4; - x_p_v = in__.template read>(2); - Eigen::Matrix shared_params_p; - shared_params_p = Eigen::Matrix(3); - stan::math::fill(shared_params_p, DUMMY_VAR__); - - current_statement__ = 5; - shared_params_p = in__.template read>( - 3); - std::vector> job_params_p; - job_params_p = std::vector>(3, Eigen::Matrix(3)); - stan::math::fill(job_params_p, DUMMY_VAR__); - - current_statement__ = 6; - job_params_p = in__.template read>>( - 3, 3); - local_scalar_t__ x_r; - x_r = DUMMY_VAR__; - - current_statement__ = 7; - x_r = in__.template read(); - local_scalar_t__ abc1_p; - abc1_p = DUMMY_VAR__; - - current_statement__ = 8; - abc1_p = 3; - local_scalar_t__ abc2_p; - abc2_p = DUMMY_VAR__; - - current_statement__ = 9; - abc2_p = map_rectfake(abc1_p, pstream__); - local_scalar_t__ abc3_p; - abc3_p = DUMMY_VAR__; - - current_statement__ = 10; - abc3_p = map_rectfake(12, pstream__); - Eigen::Matrix y_hat_tp1; - y_hat_tp1 = Eigen::Matrix(3); - stan::math::fill(y_hat_tp1, DUMMY_VAR__); - - current_statement__ = 11; - assign(y_hat_tp1, - map_rect<1, foo_functor__>(shared_params_p, job_params_d, data_r, - data_i, pstream__), "assigning variable y_hat_tp1"); - Eigen::Matrix y_hat_tp2; - y_hat_tp2 = Eigen::Matrix(3); - stan::math::fill(y_hat_tp2, DUMMY_VAR__); - - current_statement__ = 12; - assign(y_hat_tp2, - map_rect<2, foo_functor__>(shared_params_d, job_params_p, data_r, - data_i, pstream__), "assigning variable y_hat_tp2"); - Eigen::Matrix y_hat_tp3; - y_hat_tp3 = Eigen::Matrix(3); - stan::math::fill(y_hat_tp3, DUMMY_VAR__); - - current_statement__ = 13; - assign(y_hat_tp3, - map_rect<3, foo_functor__>(shared_params_p, job_params_d, data_r, - data_i, pstream__), "assigning variable y_hat_tp3"); - Eigen::Matrix theta_p_as; - theta_p_as = Eigen::Matrix(2); - stan::math::fill(theta_p_as, DUMMY_VAR__); - - Eigen::Matrix x_v; - x_v = Eigen::Matrix(2); - stan::math::fill(x_v, DUMMY_VAR__); - - Eigen::Matrix y_v; - y_v = Eigen::Matrix(2); - stan::math::fill(y_v, DUMMY_VAR__); - - Eigen::Matrix y_p; - y_p = Eigen::Matrix(2); - stan::math::fill(y_p, DUMMY_VAR__); - - current_statement__ = 18; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, - pstream__), "assigning variable theta_p_as"); - current_statement__ = 19; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 20; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_v, y_p, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 21; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, - pstream__), "assigning variable theta_p_as"); - current_statement__ = 22; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 23; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, - pstream__), "assigning variable theta_p_as"); - current_statement__ = 24; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 25; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, - x_d_i, pstream__), "assigning variable theta_p_as"); - current_statement__ = 26; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 27; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_v, y_p, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 28; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, - x_d_i, pstream__), "assigning variable theta_p_as"); - current_statement__ = 29; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 30; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, - x_d_i, pstream__), "assigning variable theta_p_as"); - current_statement__ = 31; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - { - current_statement__ = 80; - validate_non_negative_index("y_hat", "T", T); - std::vector> y_hat; - y_hat = std::vector>(T, std::vector(2, DUMMY_VAR__)); - - - current_statement__ = 82; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, - x_int, pstream__), "assigning variable y_hat"); - current_statement__ = 83; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, - x_int, pstream__), "assigning variable y_hat"); - current_statement__ = 84; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, - x_int, pstream__), "assigning variable y_hat"); - current_statement__ = 85; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, - x_int, pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 86; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, - x_int, pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 87; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, - x_int, pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 88; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 89; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 90; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 91; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 92; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 93; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 94; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 95; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 96; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_d, x, - x_int, pstream__), "assigning variable y_hat"); - current_statement__ = 97; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_p, x, - x_int, pstream__), "assigning variable y_hat"); - current_statement__ = 98; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_d, x, - x_int, pstream__), "assigning variable y_hat"); - current_statement__ = 99; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_p, x, - x_int, pstream__), "assigning variable y_hat"); - local_scalar_t__ y_1d; - y_1d = DUMMY_VAR__; - - current_statement__ = 100; - y_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 101; - y_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 102; - y_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 103; - y_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 104; - y_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 105; - y_1d = integrate_1d(integrand_functor__(), x_r, 1, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 106; - y_1d = integrate_1d(integrand_functor__(), 0, x_r, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 107; - y_1d = integrate_1d(integrand_functor__(), x_r, x_r, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 108; - y_1d = integrate_1d(integrand_functor__(), x_r, 1, x_d_r, x_d_r, - x_d_i, pstream__); - current_statement__ = 109; - y_1d = integrate_1d(integrand_functor__(), 0, x_r, x_d_r, x_d_r, - x_d_i, pstream__); - current_statement__ = 110; - y_1d = integrate_1d(integrand_functor__(), x_r, x_r, x_d_r, x_d_r, - x_d_i, pstream__); - local_scalar_t__ z_1d; - z_1d = DUMMY_VAR__; - - current_statement__ = 111; - z_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 112; - z_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 113; - z_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 114; - z_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 115; - z_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 116; - z_1d = integrate_1d(integrand_functor__(), x_r, 1, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 117; - z_1d = integrate_1d(integrand_functor__(), 0, x_r, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 118; - z_1d = integrate_1d(integrand_functor__(), x_r, x_r, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 119; - z_1d = integrate_1d(integrand_functor__(), x_r, 1, x_d_r, x_d_r, - x_d_i, pstream__, 1e-8); - current_statement__ = 120; - z_1d = integrate_1d(integrand_functor__(), 0, x_r, x_d_r, x_d_r, - x_d_i, pstream__, 1e-8); - current_statement__ = 121; - z_1d = integrate_1d(integrand_functor__(), x_r, x_r, x_d_r, x_d_r, - x_d_i, pstream__, 1e-8); - local_scalar_t__ abc_m; - abc_m = DUMMY_VAR__; - - current_statement__ = 122; - abc_m = map_rectfake(abc1_p, pstream__); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "motherHOF_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - std::vector y0_p; - y0_p = std::vector(2, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - y0_p = in__.template read>(2); - std::vector theta_p; - theta_p = std::vector(1, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 2; - theta_p = in__.template read>(1); - std::vector x_p; - x_p = std::vector(1, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - x_p = in__.template read>(1); - Eigen::Matrix x_p_v; - x_p_v = Eigen::Matrix(2); - stan::math::fill(x_p_v, std::numeric_limits::quiet_NaN()); - - current_statement__ = 4; - x_p_v = in__.template read>(2); - Eigen::Matrix shared_params_p; - shared_params_p = Eigen::Matrix(3); - stan::math::fill(shared_params_p, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 5; - shared_params_p = in__.template read>( - 3); - std::vector> job_params_p; - job_params_p = std::vector>(3, Eigen::Matrix(3)); - stan::math::fill(job_params_p, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 6; - job_params_p = in__.template read>>( - 3, 3); - double x_r; - x_r = std::numeric_limits::quiet_NaN(); - - current_statement__ = 7; - x_r = in__.template read(); - double abc1_p; - abc1_p = std::numeric_limits::quiet_NaN(); - - double abc2_p; - abc2_p = std::numeric_limits::quiet_NaN(); - - double abc3_p; - abc3_p = std::numeric_limits::quiet_NaN(); - - Eigen::Matrix y_hat_tp1; - y_hat_tp1 = Eigen::Matrix(3); - stan::math::fill(y_hat_tp1, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix y_hat_tp2; - y_hat_tp2 = Eigen::Matrix(3); - stan::math::fill(y_hat_tp2, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix y_hat_tp3; - y_hat_tp3 = Eigen::Matrix(3); - stan::math::fill(y_hat_tp3, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix theta_p_as; - theta_p_as = Eigen::Matrix(2); - stan::math::fill(theta_p_as, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix x_v; - x_v = Eigen::Matrix(2); - stan::math::fill(x_v, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix y_v; - y_v = Eigen::Matrix(2); - stan::math::fill(y_v, std::numeric_limits::quiet_NaN()); - - Eigen::Matrix y_p; - y_p = Eigen::Matrix(2); - stan::math::fill(y_p, std::numeric_limits::quiet_NaN()); - - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(y0_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - vars__.emplace_back(theta_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - vars__.emplace_back(x_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(x_p_v[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(shared_params_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back(job_params_p[(sym2__ - 1)][(sym1__ - 1)]); - } - } - vars__.emplace_back(x_r); - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 8; - abc1_p = 3; - current_statement__ = 9; - abc2_p = map_rectfake(abc1_p, pstream__); - current_statement__ = 10; - abc3_p = map_rectfake(12, pstream__); - current_statement__ = 11; - assign(y_hat_tp1, - map_rect<4, foo_functor__>(shared_params_p, job_params_d, data_r, - data_i, pstream__), "assigning variable y_hat_tp1"); - current_statement__ = 12; - assign(y_hat_tp2, - map_rect<5, foo_functor__>(shared_params_d, job_params_p, data_r, - data_i, pstream__), "assigning variable y_hat_tp2"); - current_statement__ = 13; - assign(y_hat_tp3, - map_rect<6, foo_functor__>(shared_params_p, job_params_d, data_r, - data_i, pstream__), "assigning variable y_hat_tp3"); - current_statement__ = 18; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, - pstream__), "assigning variable theta_p_as"); - current_statement__ = 19; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 20; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_v, y_p, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 21; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, - pstream__), "assigning variable theta_p_as"); - current_statement__ = 22; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 23; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, - pstream__), "assigning variable theta_p_as"); - current_statement__ = 24; - assign(theta_p_as, - algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 25; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, - x_d_i, pstream__), "assigning variable theta_p_as"); - current_statement__ = 26; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 27; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_v, y_p, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 28; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, - x_d_i, pstream__), "assigning variable theta_p_as"); - current_statement__ = 29; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - current_statement__ = 30; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, - x_d_i, pstream__), "assigning variable theta_p_as"); - current_statement__ = 31; - assign(theta_p_as, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); - if (emit_transformed_parameters__) { - vars__.emplace_back(abc1_p); - vars__.emplace_back(abc2_p); - vars__.emplace_back(abc3_p); - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(y_hat_tp1[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(y_hat_tp2[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(y_hat_tp3[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(theta_p_as[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(x_v[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(y_v[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(y_p[(sym1__ - 1)]); - } - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - std::vector> y_hat; - y_hat = std::vector>(T, std::vector(2, std::numeric_limits::quiet_NaN())); - - - current_statement__ = 33; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 34; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 35; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 36; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 37; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 38; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 39; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 40; - assign(y_hat, - integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 41; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 42; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 43; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 44; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 45; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 46; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 47; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 48; - assign(y_hat, - integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, - pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); - current_statement__ = 49; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 50; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 51; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, - pstream__), "assigning variable y_hat"); - current_statement__ = 52; - assign(y_hat, - integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, - pstream__), "assigning variable y_hat"); - double y_1d; - y_1d = std::numeric_limits::quiet_NaN(); - - current_statement__ = 53; - y_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 54; - y_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 55; - y_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, - pstream__); - current_statement__ = 56; - y_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, - pstream__); - double z_1d; - z_1d = std::numeric_limits::quiet_NaN(); - - current_statement__ = 57; - z_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 58; - z_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 59; - z_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, - pstream__, 1e-8); - current_statement__ = 60; - z_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, - pstream__, 1e-8); - double abc1_gq; - abc1_gq = std::numeric_limits::quiet_NaN(); - - current_statement__ = 61; - abc1_gq = map_rectfake(12, pstream__); - double abc2_gq; - abc2_gq = std::numeric_limits::quiet_NaN(); - - current_statement__ = 62; - abc2_gq = map_rectfake(abc1_p, pstream__); - Eigen::Matrix y_hat_gq; - y_hat_gq = Eigen::Matrix(3); - stan::math::fill(y_hat_gq, std::numeric_limits::quiet_NaN()); - - current_statement__ = 63; - assign(y_hat_gq, - add( - map_rect<7, foo_functor__>(shared_params_d, job_params_d, data_r, - data_i, pstream__), - map_rect<8, goo_functor__>(shared_params_d, job_params_d, data_r, - data_i, pstream__)), "assigning variable y_hat_gq"); - Eigen::Matrix yy_hat_gq; - yy_hat_gq = Eigen::Matrix(3); - stan::math::fill(yy_hat_gq, std::numeric_limits::quiet_NaN()); - - current_statement__ = 64; - assign(yy_hat_gq, - map_rect<9, goo_functor__>(shared_params_d, job_params_d, data_r, - data_i, pstream__), "assigning variable yy_hat_gq"); - Eigen::Matrix theta_dbl; - theta_dbl = Eigen::Matrix(2); - stan::math::fill(theta_dbl, std::numeric_limits::quiet_NaN()); - - current_statement__ = 66; - assign(theta_dbl, - algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, - pstream__), "assigning variable theta_dbl"); - current_statement__ = 67; - assign(theta_dbl, - algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - current_statement__ = 68; - assign(theta_dbl, - algebra_solver(algebra_system_functor__(), x_v, y_p, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - current_statement__ = 69; - assign(theta_dbl, - algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, - pstream__), "assigning variable theta_dbl"); - current_statement__ = 70; - assign(theta_dbl, - algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - current_statement__ = 71; - assign(theta_dbl, - algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, - pstream__), "assigning variable theta_dbl"); - current_statement__ = 72; - assign(theta_dbl, - algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, - pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - current_statement__ = 73; - assign(theta_dbl, - algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, - x_d_i, pstream__), "assigning variable theta_dbl"); - current_statement__ = 74; - assign(theta_dbl, - algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - current_statement__ = 75; - assign(theta_dbl, - algebra_solver_newton(algebra_system_functor__(), x_v, y_p, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - current_statement__ = 76; - assign(theta_dbl, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, - x_d_i, pstream__), "assigning variable theta_dbl"); - current_statement__ = 77; - assign(theta_dbl, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - current_statement__ = 78; - assign(theta_dbl, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, - x_d_i, pstream__), "assigning variable theta_dbl"); - current_statement__ = 79; - assign(theta_dbl, - algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, - x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= T; ++sym2__) { - vars__.emplace_back(y_hat[(sym2__ - 1)][(sym1__ - 1)]); - } - } - vars__.emplace_back(y_1d); - vars__.emplace_back(z_1d); - vars__.emplace_back(abc1_gq); - vars__.emplace_back(abc2_gq); - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(y_hat_gq[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(yy_hat_gq[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(theta_dbl[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - std::vector y0_p; - y0_p = std::vector(2, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - y0_p = context__.vals_r("y0_p"); - std::vector theta_p; - theta_p = std::vector(1, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 2; - theta_p = context__.vals_r("theta_p"); - std::vector x_p; - x_p = std::vector(1, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - x_p = context__.vals_r("x_p"); - Eigen::Matrix x_p_v; - x_p_v = Eigen::Matrix(2); - stan::math::fill(x_p_v, std::numeric_limits::quiet_NaN()); - - { - std::vector x_p_v_flat__; - current_statement__ = 4; - x_p_v_flat__ = context__.vals_r("x_p_v"); - current_statement__ = 4; - pos__ = 1; - current_statement__ = 4; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 4; - assign(x_p_v, x_p_v_flat__[(pos__ - 1)], - "assigning variable x_p_v", index_uni(sym1__)); - current_statement__ = 4; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix shared_params_p; - shared_params_p = Eigen::Matrix(3); - stan::math::fill(shared_params_p, std::numeric_limits::quiet_NaN()); - - - { - std::vector shared_params_p_flat__; - current_statement__ = 5; - shared_params_p_flat__ = context__.vals_r("shared_params_p"); - current_statement__ = 5; - pos__ = 1; - current_statement__ = 5; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 5; - assign(shared_params_p, shared_params_p_flat__[(pos__ - 1)], - "assigning variable shared_params_p", index_uni(sym1__)); - current_statement__ = 5; - pos__ = (pos__ + 1); - } - } - std::vector> job_params_p; - job_params_p = std::vector>(3, Eigen::Matrix(3)); - stan::math::fill(job_params_p, std::numeric_limits::quiet_NaN()); - - - { - std::vector job_params_p_flat__; - current_statement__ = 6; - job_params_p_flat__ = context__.vals_r("job_params_p"); - current_statement__ = 6; - pos__ = 1; - current_statement__ = 6; - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - current_statement__ = 6; - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - current_statement__ = 6; - assign(job_params_p, job_params_p_flat__[(pos__ - 1)], - "assigning variable job_params_p", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 6; - pos__ = (pos__ + 1); - } - } - } - double x_r; - x_r = std::numeric_limits::quiet_NaN(); - - current_statement__ = 7; - x_r = context__.vals_r("x_r")[(1 - 1)]; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(y0_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - vars__.emplace_back(theta_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - vars__.emplace_back(x_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(x_p_v[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - vars__.emplace_back(shared_params_p[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - vars__.emplace_back(job_params_p[(sym1__ - 1)][(sym2__ - 1)]); - } - } - vars__.emplace_back(x_r); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"y0_p", "theta_p", "x_p", "x_p_v", - "shared_params_p", "job_params_p", "x_r", "abc1_p", "abc2_p", "abc3_p", - "y_hat_tp1", "y_hat_tp2", "y_hat_tp3", "theta_p_as", "x_v", "y_v", - "y_p", "y_hat", "y_1d", "z_1d", "abc1_gq", "abc2_gq", "y_hat_gq", - "yy_hat_gq", "theta_dbl"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{ - static_cast(2) - }, - std::vector{static_cast(1)}, - std::vector{static_cast(1)}, - std::vector{static_cast(2)}, - std::vector{static_cast(3)}, - std::vector{static_cast(3), static_cast(3)}, - std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{static_cast(3)}, - std::vector{static_cast(3)}, - std::vector{static_cast(3)}, - std::vector{static_cast(2)}, - std::vector{static_cast(2)}, - std::vector{static_cast(2)}, - std::vector{static_cast(2)}, - std::vector{static_cast(T), static_cast(2)}, - std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{static_cast(3)}, - std::vector{static_cast(3)}, - std::vector{static_cast(2)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y0_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_p_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "shared_params_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "job_params_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - param_names__.emplace_back(std::string() + "x_r"); - if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "abc1_p"); - param_names__.emplace_back(std::string() + "abc2_p"); - param_names__.emplace_back(std::string() + "abc3_p"); - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_tp1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_tp2" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_tp3" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_p_as" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); - } - } - } - - if (emit_generated_quantities__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= T; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y_hat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - param_names__.emplace_back(std::string() + "y_1d"); - param_names__.emplace_back(std::string() + "z_1d"); - param_names__.emplace_back(std::string() + "abc1_gq"); - param_names__.emplace_back(std::string() + "abc2_gq"); - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_gq" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "yy_hat_gq" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_dbl" + '.' + std::to_string(sym1__)); - } - } - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y0_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_p_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "shared_params_p" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { - { - param_names__.emplace_back(std::string() + "job_params_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - param_names__.emplace_back(std::string() + "x_r"); - if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "abc1_p"); - param_names__.emplace_back(std::string() + "abc2_p"); - param_names__.emplace_back(std::string() + "abc3_p"); - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_tp1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_tp2" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_tp3" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_p_as" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "x_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); - } - } - } - - if (emit_generated_quantities__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= T; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y_hat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - param_names__.emplace_back(std::string() + "y_1d"); - param_names__.emplace_back(std::string() + "z_1d"); - param_names__.emplace_back(std::string() + "abc1_gq"); - param_names__.emplace_back(std::string() + "abc2_gq"); - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y_hat_gq" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { - { - param_names__.emplace_back(std::string() + "yy_hat_gq" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "theta_dbl" + '.' + std::to_string(sym1__)); - } - } - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"y0_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"shared_params_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"parameters\"},{\"name\":\"job_params_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "}},\"block\":\"parameters\"},{\"name\":\"x_r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"abc1_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc2_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc3_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp2\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp3\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p_as\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"x_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(T) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"generated_quantities\"},{\"name\":\"y_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"z_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc1_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc2_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"y_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"yy_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"theta_dbl\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"generated_quantities\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"y0_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"shared_params_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"parameters\"},{\"name\":\"job_params_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "}},\"block\":\"parameters\"},{\"name\":\"x_r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"abc1_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc2_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc3_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp2\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp3\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p_as\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"x_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(T) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"generated_quantities\"},{\"name\":\"y_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"z_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc1_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc2_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"y_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"yy_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"theta_dbl\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"generated_quantities\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = motherHOF_model_namespace::motherHOF_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return motherHOF_model_namespace::profiles__; -} - -#endif - - -STAN_REGISTER_MAP_RECT(1, motherHOF_model_namespace::foo_functor__) -STAN_REGISTER_MAP_RECT(2, motherHOF_model_namespace::foo_functor__) -STAN_REGISTER_MAP_RECT(3, motherHOF_model_namespace::foo_functor__) -STAN_REGISTER_MAP_RECT(4, motherHOF_model_namespace::foo_functor__) -STAN_REGISTER_MAP_RECT(5, motherHOF_model_namespace::foo_functor__) -STAN_REGISTER_MAP_RECT(6, motherHOF_model_namespace::foo_functor__) -STAN_REGISTER_MAP_RECT(7, motherHOF_model_namespace::foo_functor__) -STAN_REGISTER_MAP_RECT(8, motherHOF_model_namespace::goo_functor__) -STAN_REGISTER_MAP_RECT(9, motherHOF_model_namespace::goo_functor__) -Warning in 'motherHOF.stan', line 95, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 96, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 97, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 99, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 100, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 101, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 103, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 104, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 105, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 106, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 108, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 109, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 110, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 111, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 113, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 114, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 115, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 116, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 146, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 147, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 148, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 149, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 151, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 152, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 153, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 154, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 156, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 157, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 158, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 159, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 161, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 162, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 163, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 164, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 166, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 167, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 168, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html -Warning in 'motherHOF.stan', line 169, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html - $ ../../../../../install/default/bin/stanc --print-cpp new_integrate_interface.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace new_integrate_interface_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'new_integrate_interface.stan', line 31, column 2 to column 9)", - " (in 'new_integrate_interface.stan', line 32, column 2 to column 13)", - " (in 'new_integrate_interface.stan', line 33, column 2 to column 14)", - " (in 'new_integrate_interface.stan', line 37, column 2 to column 72)", - " (in 'new_integrate_interface.stan', line 39, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 40, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 41, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 42, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 43, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 44, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 45, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 46, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 47, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 48, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 49, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 50, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 51, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 52, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 53, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 54, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 55, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 56, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 57, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 58, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 59, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 60, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 61, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 62, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 63, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 64, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 65, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 66, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 67, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 68, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 69, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 70, column 2 to column 54)", - " (in 'new_integrate_interface.stan', line 71, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 72, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 73, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 74, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 75, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 76, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 77, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 78, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 79, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 80, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 81, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 82, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 83, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 84, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 85, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 86, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 87, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 88, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 89, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 90, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 91, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 92, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 93, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 94, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 95, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 96, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 97, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 98, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 99, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 100, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 101, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 102, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 103, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 104, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 105, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 106, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 107, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 108, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 109, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 110, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 111, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 112, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 113, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 114, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 115, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 116, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 117, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 118, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 119, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 120, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 121, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 122, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 123, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 124, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 125, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 126, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 127, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 128, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 129, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 130, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 131, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 132, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 133, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 134, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 135, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 136, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 137, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 138, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 139, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 140, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 141, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 142, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 143, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 144, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 145, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 146, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 147, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 148, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 149, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 150, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 151, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 152, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 153, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 154, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 155, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 156, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 157, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 158, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 159, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 160, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 161, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 162, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 163, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 164, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 165, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 166, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 167, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 168, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 169, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 170, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 171, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 172, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 173, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 174, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 175, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 176, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 177, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 178, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 179, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 180, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 181, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 182, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 183, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 184, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 185, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 186, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 187, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 188, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 189, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 190, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 191, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 192, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 193, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 194, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 195, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 196, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 197, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 198, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 199, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 200, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 201, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 202, column 2 to column 33)", - " (in 'new_integrate_interface.stan', line 203, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 204, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 205, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 206, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 207, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 208, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 209, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 210, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 211, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 212, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 213, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 214, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 215, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 216, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 217, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 218, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 219, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 220, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 221, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 222, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 223, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 224, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 225, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 226, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 227, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 228, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 229, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 230, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 231, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 232, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 233, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 234, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 235, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 442, column 2 to column 73)", - " (in 'new_integrate_interface.stan', line 443, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 444, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 445, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 446, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 447, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 448, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 449, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 450, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 451, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 452, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 453, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 454, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 455, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 456, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 457, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 458, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 459, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 460, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 461, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 462, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 463, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 464, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 465, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 466, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 467, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 468, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 469, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 470, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 471, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 472, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 473, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 474, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 475, column 2 to column 62)", - " (in 'new_integrate_interface.stan', line 476, column 2 to column 62)", - " (in 'new_integrate_interface.stan', line 477, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 478, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 479, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 480, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 481, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 482, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 483, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 484, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 485, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 486, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 487, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 488, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 489, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 490, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 491, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 492, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 493, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 494, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 495, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 496, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 497, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 498, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 499, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 500, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 501, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 502, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 503, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 504, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 505, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 506, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 507, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 508, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 509, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 510, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 511, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 512, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 513, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 514, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 515, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 516, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 517, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 518, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 519, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 520, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 521, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 522, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 523, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 524, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 525, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 526, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 527, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 528, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 529, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 530, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 531, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 532, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 533, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 534, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 535, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 536, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 537, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 538, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 539, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 540, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 541, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 542, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 543, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 544, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 545, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 546, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 547, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 548, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 549, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 550, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 551, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 552, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 553, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 554, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 555, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 556, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 557, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 558, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 559, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 560, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 561, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 562, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 563, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 564, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 565, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 566, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 567, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 568, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 569, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 570, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 571, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 572, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 573, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 574, column 2 to column 41)", - " (in 'new_integrate_interface.stan', line 575, column 2 to column 41)", - " (in 'new_integrate_interface.stan', line 576, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 577, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 578, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 579, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 580, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 581, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 582, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 583, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 584, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 585, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 586, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 587, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 588, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 589, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 590, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 591, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 592, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 593, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 594, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 595, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 596, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 597, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 598, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 599, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 600, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 601, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 602, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 603, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 604, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 605, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 606, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 607, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 608, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 609, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 610, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 611, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 612, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 613, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 614, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 615, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 616, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 617, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 618, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 619, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 620, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 621, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 622, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 623, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 624, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 625, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 626, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 627, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 628, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 629, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 630, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 631, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 632, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 633, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 634, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 635, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 636, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 637, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 638, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 639, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 239, column 15 to column 16)", - " (in 'new_integrate_interface.stan', line 239, column 9 to column 10)", - " (in 'new_integrate_interface.stan', line 239, column 2 to column 73)", - " (in 'new_integrate_interface.stan', line 241, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 242, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 243, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 244, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 245, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 246, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 247, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 248, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 249, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 250, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 251, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 252, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 253, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 254, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 255, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 256, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 257, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 258, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 259, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 260, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 261, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 262, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 263, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 264, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 265, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 266, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 267, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 268, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 269, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 270, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 271, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 272, column 2 to column 55)", - " (in 'new_integrate_interface.stan', line 273, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 274, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 275, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 276, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 277, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 278, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 279, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 280, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 281, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 282, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 283, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 284, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 285, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 286, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 287, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 288, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 289, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 290, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 291, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 292, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 293, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 294, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 295, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 296, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 297, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 298, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 299, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 300, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 301, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 302, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 303, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 304, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 305, column 2 to column 56)", - " (in 'new_integrate_interface.stan', line 306, column 2 to column 62)", - " (in 'new_integrate_interface.stan', line 307, column 2 to column 62)", - " (in 'new_integrate_interface.stan', line 308, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 309, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 310, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 311, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 312, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 313, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 314, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 315, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 316, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 317, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 318, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 319, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 320, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 321, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 322, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 323, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 324, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 325, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 326, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 327, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 328, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 329, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 330, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 331, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 332, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 333, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 334, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 335, column 2 to column 59)", - " (in 'new_integrate_interface.stan', line 336, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 337, column 2 to column 58)", - " (in 'new_integrate_interface.stan', line 338, column 2 to column 57)", - " (in 'new_integrate_interface.stan', line 339, column 2 to column 41)", - " (in 'new_integrate_interface.stan', line 340, column 2 to column 41)", - " (in 'new_integrate_interface.stan', line 341, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 342, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 343, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 344, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 345, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 346, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 347, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 348, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 349, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 350, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 351, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 352, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 353, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 354, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 355, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 356, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 357, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 358, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 359, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 360, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 361, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 362, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 363, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 364, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 365, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 366, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 367, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 368, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 369, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 370, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 371, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 372, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 373, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 374, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 375, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 376, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 377, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 378, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 379, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 380, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 381, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 382, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 383, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 384, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 385, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 386, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 387, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 388, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 389, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 390, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 391, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 392, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 393, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 394, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 395, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 396, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 397, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 398, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 399, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 400, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 401, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 402, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 403, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 404, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 405, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 406, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 407, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 408, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 409, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 410, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 411, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 412, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 413, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 414, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 415, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 416, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 417, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 418, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 419, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 420, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 421, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 422, column 2 to column 38)", - " (in 'new_integrate_interface.stan', line 423, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 424, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 425, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 426, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 427, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 428, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 429, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 430, column 2 to column 37)", - " (in 'new_integrate_interface.stan', line 431, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 432, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 433, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 434, column 2 to column 36)", - " (in 'new_integrate_interface.stan', line 435, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 436, column 2 to column 35)", - " (in 'new_integrate_interface.stan', line 437, column 2 to column 34)", - " (in 'new_integrate_interface.stan', line 438, column 2 to column 19)", - " (in 'new_integrate_interface.stan', line 8, column 2 to column 8)", - " (in 'new_integrate_interface.stan', line 9, column 2 to column 9)", - " (in 'new_integrate_interface.stan', line 10, column 2 to column 10)", - " (in 'new_integrate_interface.stan', line 11, column 11 to column 12)", - " (in 'new_integrate_interface.stan', line 11, column 2 to column 14)", - " (in 'new_integrate_interface.stan', line 12, column 9 to column 10)", - " (in 'new_integrate_interface.stan', line 12, column 2 to column 15)", - " (in 'new_integrate_interface.stan', line 16, column 15 to column 16)", - " (in 'new_integrate_interface.stan', line 16, column 9 to column 10)", - " (in 'new_integrate_interface.stan', line 16, column 2 to column 73)", - " (in 'new_integrate_interface.stan', line 17, column 2 to column 60)", - " (in 'new_integrate_interface.stan', line 18, column 2 to column 62)", - " (in 'new_integrate_interface.stan', line 19, column 2 to column 62)", - " (in 'new_integrate_interface.stan', line 20, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 21, column 2 to column 61)", - " (in 'new_integrate_interface.stan', line 22, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 23, column 2 to column 39)", - " (in 'new_integrate_interface.stan', line 24, column 2 to column 41)", - " (in 'new_integrate_interface.stan', line 25, column 2 to column 41)", - " (in 'new_integrate_interface.stan', line 26, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 27, column 2 to column 40)", - " (in 'new_integrate_interface.stan', line 32, column 10 to column 11)", - " (in 'new_integrate_interface.stan', line 33, column 9 to column 10)", - " (in 'new_integrate_interface.stan', line 37, column 14 to column 15)", - " (in 'new_integrate_interface.stan', line 37, column 9 to column 10)", - " (in 'new_integrate_interface.stan', line 442, column 15 to column 16)", - " (in 'new_integrate_interface.stan', line 442, column 9 to column 10)", - " (in 'new_integrate_interface.stan', line 3, column 4 to column 13)", - " (in 'new_integrate_interface.stan', line 2, column 47 to line 4, column 3)"}; - -template -Eigen::Matrix, T2__, -stan::value_type_t>, -1, 1> -f(const T0__& t, const T1__& z, const T2__& a, const T3__& b, - std::ostream* pstream__) ; - -struct f_functor__ { -template -Eigen::Matrix, T2__, -stan::value_type_t>, -1, 1> -operator()(const T0__& t, const T1__& z, const T2__& a, const T3__& b, - std::ostream* pstream__) const -{ -return f(t, z, a, b, pstream__); -} -}; - -template -Eigen::Matrix, T2__, -stan::value_type_t>, -1, 1> -f(const T0__& t, const T1__& z_arg__, const T2__& a, const T3__& b_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T2__, - stan::value_type_t>; - int current_statement__ = 0; - const auto& z = to_ref(z_arg__); - const auto& b = to_ref(b_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 628; - return z; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class new_integrate_interface_model final : public model_base_crtp { - - private: - int N; - int id; - double rd; - std::vector rad; - Eigen::Matrix vd__; - std::vector> zd; - Eigen::Map> vd{nullptr, 0}; - - public: - ~new_integrate_interface_model() { } - - inline std::string model_name() const final { return "new_integrate_interface_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - new_integrate_interface_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "new_integrate_interface_model_namespace::new_integrate_interface_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 601; - context__.validate_dims("data initialization","N","int", - std::vector{}); - N = std::numeric_limits::min(); - - current_statement__ = 601; - N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 602; - context__.validate_dims("data initialization","id","int", - std::vector{}); - id = std::numeric_limits::min(); - - current_statement__ = 602; - id = context__.vals_i("id")[(1 - 1)]; - current_statement__ = 603; - context__.validate_dims("data initialization","rd","double", - std::vector{}); - rd = std::numeric_limits::quiet_NaN(); - - current_statement__ = 603; - rd = context__.vals_r("rd")[(1 - 1)]; - current_statement__ = 604; - validate_non_negative_index("rad", "N", N); - current_statement__ = 605; - context__.validate_dims("data initialization","rad","double", - std::vector{static_cast(N)}); - rad = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 605; - rad = context__.vals_r("rad"); - current_statement__ = 606; - validate_non_negative_index("vd", "N", N); - current_statement__ = 607; - context__.validate_dims("data initialization","vd","double", - std::vector{static_cast(N)}); - vd__ = Eigen::Matrix(N); - new (&vd) Eigen::Map>(vd__.data(), N); - - { - std::vector vd_flat__; - current_statement__ = 607; - vd_flat__ = context__.vals_r("vd"); - current_statement__ = 607; - pos__ = 1; - current_statement__ = 607; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 607; - assign(vd, vd_flat__[(pos__ - 1)], - "assigning variable vd", index_uni(sym1__)); - current_statement__ = 607; - pos__ = (pos__ + 1); - } - } - current_statement__ = 608; - validate_non_negative_index("zd", "N", N); - current_statement__ = 609; - validate_non_negative_index("zd", "N", N); - current_statement__ = 610; - zd = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(zd, std::numeric_limits::quiet_NaN()); - - current_statement__ = 610; - assign(zd, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zd"); - current_statement__ = 611; - assign(zd, - ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zd"); - current_statement__ = 612; - assign(zd, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zd"); - current_statement__ = 613; - assign(zd, - ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zd"); - current_statement__ = 614; - assign(zd, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zd"); - current_statement__ = 615; - assign(zd, - ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zd"); - current_statement__ = 616; - assign(zd, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable zd"); - current_statement__ = 617; - assign(zd, - ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable zd"); - current_statement__ = 618; - assign(zd, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable zd"); - current_statement__ = 619; - assign(zd, - ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable zd"); - current_statement__ = 620; - assign(zd, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable zd"); - current_statement__ = 621; - assign(zd, - ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable zd"); - current_statement__ = 622; - validate_non_negative_index("ra", "N", N); - current_statement__ = 623; - validate_non_negative_index("v", "N", N); - current_statement__ = 624; - validate_non_negative_index("z", "N", N); - current_statement__ = 625; - validate_non_negative_index("z", "N", N); - current_statement__ = 626; - validate_non_negative_index("zg", "N", N); - current_statement__ = 627; - validate_non_negative_index("zg", "N", N); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 1 + N + N; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "new_integrate_interface_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - local_scalar_t__ r; - r = DUMMY_VAR__; - - current_statement__ = 1; - r = in__.template read(); - std::vector ra; - ra = std::vector(N, DUMMY_VAR__); - - current_statement__ = 2; - ra = in__.template read>(N); - Eigen::Matrix v; - v = Eigen::Matrix(N); - stan::math::fill(v, DUMMY_VAR__); - - current_statement__ = 3; - v = in__.template read>(N); - std::vector> z; - z = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(z, DUMMY_VAR__); - - current_statement__ = 4; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 5; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 6; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 7; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 8; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 9; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 10; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 11; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 12; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 13; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 14; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 15; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 16; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 17; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 18; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 19; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 20; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 21; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 22; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 23; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 24; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 25; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 26; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 27; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 28; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 29; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 30; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 31; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 32; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 33; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 34; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 35; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 36; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 37; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 38; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 39; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 40; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 41; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 42; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 43; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 44; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 45; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 46; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 47; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 48; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 49; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 50; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 51; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 52; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 53; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 54; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 55; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 56; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 57; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 58; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 59; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 60; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 61; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 62; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 63; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 64; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 65; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 66; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 67; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 68; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 69; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 70; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 71; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 72; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 73; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 74; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 75; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 76; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 77; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 78; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 79; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 80; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 81; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 82; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 83; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 84; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 85; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 86; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 87; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 88; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 89; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 90; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 91; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 92; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 93; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 94; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 95; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 96; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 97; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 98; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 99; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 100; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 101; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 102; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 103; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 104; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 105; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 106; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 107; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 108; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 109; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 110; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 111; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 112; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 113; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 114; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 115; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 116; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 117; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 118; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 119; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 120; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 121; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 122; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 123; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 124; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 125; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 126; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 127; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 128; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 129; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 130; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 131; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 132; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 133; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 134; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 135; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 136; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 137; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 138; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 139; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 140; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 141; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 142; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 143; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 144; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 145; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 146; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 147; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 148; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 149; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 150; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 151; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 152; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 153; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 154; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 155; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 156; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 157; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 158; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 159; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 160; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 161; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 162; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 163; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 164; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 165; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 166; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 167; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 168; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 169; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 170; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 171; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 172; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 173; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 174; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 175; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 176; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 177; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 178; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 179; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 180; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 181; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 182; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 183; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 184; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 185; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 186; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 187; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 188; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 189; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 190; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 191; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 192; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 193; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 194; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 195; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 196; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 197; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 198; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 199; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 200; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 201; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable z"); - { - current_statement__ = 400; - validate_non_negative_index("zm", "N", N); - current_statement__ = 401; - validate_non_negative_index("zm", "N", N); - std::vector> zm; - zm = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(zm, DUMMY_VAR__); - - current_statement__ = 402; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 403; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 404; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 405; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 406; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 407; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 408; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 409; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 410; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 411; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 412; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 413; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 414; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 415; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 416; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zm"); - current_statement__ = 417; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zm"); - current_statement__ = 418; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zm"); - current_statement__ = 419; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 420; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 421; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 422; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 423; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 424; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zm"); - current_statement__ = 425; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zm"); - current_statement__ = 426; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zm"); - current_statement__ = 427; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 428; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zm"); - current_statement__ = 429; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zm"); - current_statement__ = 430; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zm"); - current_statement__ = 431; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 432; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zm"); - current_statement__ = 433; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zm"); - current_statement__ = 434; - assign(zm, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zm"); - current_statement__ = 435; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 436; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 437; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 438; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 439; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 440; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 441; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 442; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 443; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 444; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 445; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 446; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 447; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 448; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 449; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 450; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 451; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 452; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 453; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 454; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 455; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 456; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 457; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 458; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 459; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 460; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 461; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 462; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 463; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 464; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 465; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zm"); - current_statement__ = 466; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zm"); - current_statement__ = 467; - assign(zm, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zm"); - current_statement__ = 468; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 469; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 470; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 471; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 472; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 473; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 474; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 475; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 476; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 477; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 478; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 479; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 480; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 481; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 482; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 483; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 484; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 485; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 486; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 487; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 488; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 489; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 490; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 491; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 492; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 493; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 494; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 495; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 496; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 497; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zm"); - current_statement__ = 498; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zm"); - current_statement__ = 499; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zm"); - current_statement__ = 500; - assign(zm, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zm"); - current_statement__ = 501; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, - vd), "assigning variable zm"); - current_statement__ = 502; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, - vd), "assigning variable zm"); - current_statement__ = 503; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, - v), "assigning variable zm"); - current_statement__ = 504; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, - vd), "assigning variable zm"); - current_statement__ = 505; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 506; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, - vd), "assigning variable zm"); - current_statement__ = 507; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 508; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 509; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 510; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, - vd), "assigning variable zm"); - current_statement__ = 511; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 512; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 513; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 514; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 515; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 516; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 517; - assign(zm, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 518; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, - vd), "assigning variable zm"); - current_statement__ = 519; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 520; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 521; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 522; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 523; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 524; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 525; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 526; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 527; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 528; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 529; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 530; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 531; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 532; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 533; - assign(zm, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 534; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, - vd), "assigning variable zm"); - current_statement__ = 535; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, - vd), "assigning variable zm"); - current_statement__ = 536; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 537; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 538; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 539; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 540; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 541; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 542; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 543; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 544; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 545; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 546; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 547; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 548; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 549; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 550; - assign(zm, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 551; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 552; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 553; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 554; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 555; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 556; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 557; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 558; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 559; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 560; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 561; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 562; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 563; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 564; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 565; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 566; - assign(zm, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 567; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 568; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 569; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 570; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 571; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 572; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 573; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 574; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 575; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 576; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 577; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 578; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 579; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 580; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 581; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 582; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 583; - assign(zm, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 584; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 585; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 586; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 587; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 588; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 589; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 590; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 591; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 592; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 593; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 594; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 595; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 596; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable zm"); - current_statement__ = 597; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable zm"); - current_statement__ = 598; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable zm"); - current_statement__ = 599; - assign(zm, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable zm"); - current_statement__ = 600; - lp_accum__.add(normal_lpdf(r, 0, 1)); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "new_integrate_interface_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - double r; - r = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - r = in__.template read(); - std::vector ra; - ra = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - ra = in__.template read>(N); - Eigen::Matrix v; - v = Eigen::Matrix(N); - stan::math::fill(v, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - v = in__.template read>(N); - std::vector> z; - z = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(z, std::numeric_limits::quiet_NaN()); - - vars__.emplace_back(r); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(ra[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(v[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 4; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 5; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 6; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 7; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 8; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 9; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 10; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 11; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 12; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 13; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 14; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 15; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 16; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 17; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 18; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 19; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 20; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 21; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 22; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 23; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 24; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 25; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 26; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 27; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 28; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 29; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 30; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 31; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 32; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 33; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 34; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 35; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 36; - assign(z, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 37; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 38; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 39; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 40; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 41; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 42; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 43; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 44; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 45; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 46; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 47; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 48; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 49; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 50; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 51; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 52; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 53; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 54; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 55; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 56; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 57; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 58; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 59; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 60; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 61; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 62; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 63; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 64; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 65; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 66; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 67; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 68; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 69; - assign(z, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 70; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 71; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 72; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 73; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 74; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 75; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 76; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 77; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 78; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 79; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 80; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 81; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 82; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 83; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 84; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 85; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 86; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 87; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable z"); - current_statement__ = 88; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable z"); - current_statement__ = 89; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable z"); - current_statement__ = 90; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable z"); - current_statement__ = 91; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 92; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 93; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 94; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 95; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 96; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 97; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 98; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 99; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable z"); - current_statement__ = 100; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable z"); - current_statement__ = 101; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable z"); - current_statement__ = 102; - assign(z, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable z"); - current_statement__ = 103; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 104; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 105; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 106; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 107; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 108; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 109; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 110; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 111; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 112; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 113; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 114; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 115; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 116; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 117; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 118; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 119; - assign(z, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 120; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 121; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 122; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 123; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 124; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 125; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 126; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 127; - assign(z, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 128; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 129; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 130; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 131; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 132; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 133; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 134; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 135; - assign(z, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 136; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 137; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 138; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 139; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 140; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 141; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 142; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 143; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 144; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 145; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 146; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 147; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 148; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 149; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 150; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 151; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 152; - assign(z, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 153; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 154; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 155; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 156; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 157; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 158; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 159; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 160; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 161; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 162; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 163; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 164; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 165; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 166; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 167; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 168; - assign(z, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 169; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 170; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 171; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 172; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 173; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 174; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 175; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 176; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 177; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 178; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 179; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 180; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 181; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 182; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 183; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 184; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 185; - assign(z, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 186; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 187; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 188; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 189; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 190; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 191; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 192; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 193; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable z"); - current_statement__ = 194; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 195; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 196; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 197; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable z"); - current_statement__ = 198; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable z"); - current_statement__ = 199; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable z"); - current_statement__ = 200; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable z"); - current_statement__ = 201; - assign(z, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable z"); - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(z[(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - std::vector> zg; - zg = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(zg, std::numeric_limits::quiet_NaN()); - - current_statement__ = 202; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 203; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 204; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 205; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 206; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 207; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 208; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 209; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 210; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 211; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 212; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 213; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 214; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 215; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 216; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 217; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 218; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 219; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 220; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 221; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 222; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 223; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 224; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 225; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 226; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 227; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 228; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 229; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 230; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 231; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 232; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 233; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 234; - assign(zg, - ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 235; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 236; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 237; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zg"); - current_statement__ = 238; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zg"); - current_statement__ = 239; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zg"); - current_statement__ = 240; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 241; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zg"); - current_statement__ = 242; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zg"); - current_statement__ = 243; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zg"); - current_statement__ = 244; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 245; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zg"); - current_statement__ = 246; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zg"); - current_statement__ = 247; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zg"); - current_statement__ = 248; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 249; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 250; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 251; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 252; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 253; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zg"); - current_statement__ = 254; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zg"); - current_statement__ = 255; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zg"); - current_statement__ = 256; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 257; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 258; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 259; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 260; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 261; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 262; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 263; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 264; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 265; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 266; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 267; - assign(zg, - ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 268; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 269; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 270; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, rd, v), "assigning variable zg"); - current_statement__ = 271; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, vd), "assigning variable zg"); - current_statement__ = 272; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, - 100, pstream__, r, v), "assigning variable zg"); - current_statement__ = 273; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 274; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 275; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 276; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 277; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 278; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 279; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 280; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 281; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 282; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 283; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 284; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 285; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 286; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 287; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 288; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 289; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 290; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 291; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 292; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 293; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 294; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 295; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 296; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 297; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, vd), "assigning variable zg"); - current_statement__ = 298; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, rd, v), "assigning variable zg"); - current_statement__ = 299; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, vd), "assigning variable zg"); - current_statement__ = 300; - assign(zg, - ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, - pstream__, r, v), "assigning variable zg"); - current_statement__ = 301; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 302; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 303; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 304; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 305; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 306; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 307; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 308; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 309; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 310; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 311; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 312; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 313; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 314; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 315; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 316; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 317; - assign(zg, - ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 318; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 319; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 320; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 321; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 322; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 323; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 324; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 325; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 326; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 327; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 328; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 329; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 330; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 331; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 332; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 333; - assign(zg, - ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 334; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 335; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 336; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 337; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 338; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 339; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 340; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 341; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 342; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 343; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 344; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 345; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 346; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 347; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 348; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 349; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 350; - assign(zg, - ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 351; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 352; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 353; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 354; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 355; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 356; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 357; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 358; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 359; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 360; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 361; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 362; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 363; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 364; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 365; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 366; - assign(zg, - ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 367; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 368; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 369; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 370; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 371; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 372; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 373; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 374; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 375; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 376; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 377; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 378; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 379; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 380; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 381; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 382; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 383; - assign(zg, - ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 384; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 385; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 386; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 387; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 388; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 389; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 390; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 391; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 392; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 393; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 394; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 395; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), - "assigning variable zg"); - current_statement__ = 396; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), - "assigning variable zg"); - current_statement__ = 397; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), - "assigning variable zg"); - current_statement__ = 398; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), - "assigning variable zg"); - current_statement__ = 399; - assign(zg, - ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), - "assigning variable zg"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(zg[(sym2__ - 1)][(sym1__ - 1)]); - } - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - double r; - r = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - r = context__.vals_r("r")[(1 - 1)]; - std::vector ra; - ra = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - ra = context__.vals_r("ra"); - Eigen::Matrix v; - v = Eigen::Matrix(N); - stan::math::fill(v, std::numeric_limits::quiet_NaN()); - - { - std::vector v_flat__; - current_statement__ = 3; - v_flat__ = context__.vals_r("v"); - current_statement__ = 3; - pos__ = 1; - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 3; - assign(v, v_flat__[(pos__ - 1)], - "assigning variable v", index_uni(sym1__)); - current_statement__ = 3; - pos__ = (pos__ + 1); - } - } - vars__.emplace_back(r); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(ra[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(v[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"r", "ra", "v", "z", "zg"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}, - std::vector{static_cast(N)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "r"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "ra" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "v" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "zg" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "r"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "ra" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "v" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "zg" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"ra\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"zg\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"ra\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"zg\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} - -using stan_model = new_integrate_interface_model_namespace::new_integrate_interface_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return new_integrate_interface_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp old_integrate_interface.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace old_integrate_interface_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'old_integrate_interface.stan', line 27, column 2 to column 24)", - " (in 'old_integrate_interface.stan', line 28, column 2 to column 23)", - " (in 'old_integrate_interface.stan', line 29, column 2 to column 24)", - " (in 'old_integrate_interface.stan', line 30, column 2 to column 24)", - " (in 'old_integrate_interface.stan', line 31, column 2 to column 28)", - " (in 'old_integrate_interface.stan', line 32, column 2 to column 27)", - " (in 'old_integrate_interface.stan', line 35, column 2 to line 38, column 40)", - " (in 'old_integrate_interface.stan', line 41, column 2 to column 25)", - " (in 'old_integrate_interface.stan', line 42, column 2 to column 25)", - " (in 'old_integrate_interface.stan', line 43, column 2 to column 28)", - " (in 'old_integrate_interface.stan', line 44, column 2 to column 29)", - " (in 'old_integrate_interface.stan', line 45, column 2 to column 27)", - " (in 'old_integrate_interface.stan', line 46, column 2 to column 33)", - " (in 'old_integrate_interface.stan', line 48, column 4 to column 52)", - " (in 'old_integrate_interface.stan', line 49, column 4 to column 47)", - " (in 'old_integrate_interface.stan', line 47, column 17 to line 50, column 3)", - " (in 'old_integrate_interface.stan', line 47, column 2 to line 50, column 3)", - " (in 'old_integrate_interface.stan', line 21, column 2 to column 19)", - " (in 'old_integrate_interface.stan', line 22, column 10 to column 11)", - " (in 'old_integrate_interface.stan', line 22, column 2 to column 13)", - " (in 'old_integrate_interface.stan', line 23, column 2 to column 17)", - " (in 'old_integrate_interface.stan', line 24, column 20 to column 21)", - " (in 'old_integrate_interface.stan', line 24, column 2 to column 26)", - " (in 'old_integrate_interface.stan', line 35, column 9 to column 10)", - " (in 'old_integrate_interface.stan', line 7, column 4 to column 18)", - " (in 'old_integrate_interface.stan', line 8, column 4 to column 18)", - " (in 'old_integrate_interface.stan', line 10, column 4 to column 26)", - " (in 'old_integrate_interface.stan', line 11, column 4 to column 25)", - " (in 'old_integrate_interface.stan', line 12, column 4 to column 26)", - " (in 'old_integrate_interface.stan', line 13, column 4 to column 26)", - " (in 'old_integrate_interface.stan', line 15, column 4 to column 40)", - " (in 'old_integrate_interface.stan', line 16, column 4 to column 42)", - " (in 'old_integrate_interface.stan', line 17, column 4 to column 28)", - " (in 'old_integrate_interface.stan', line 6, column 26 to line 18, column 3)"}; - -template -std::vector> -dz_dt(const T0__& t, const std::vector& z, - const std::vector& theta, const std::vector& x_r, - const std::vector& x_i, std::ostream* pstream__) ; - -struct dz_dt_functor__ { -template -std::vector> -operator()(const T0__& t, const std::vector& z, - const std::vector& theta, const std::vector& x_r, - const std::vector& x_i, std::ostream* pstream__) const -{ -return dz_dt(t, z, theta, x_r, x_i, pstream__); -} -}; - -template -std::vector> -dz_dt(const T0__& t, const std::vector& z, - const std::vector& theta, const std::vector& x_r, - const std::vector& x_i, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ u; - u = DUMMY_VAR__; - - current_statement__ = 25; - u = rvalue(z, "z", index_uni(1)); - local_scalar_t__ v; - v = DUMMY_VAR__; - - current_statement__ = 26; - v = rvalue(z, "z", index_uni(2)); - local_scalar_t__ alpha; - alpha = DUMMY_VAR__; - - current_statement__ = 27; - alpha = rvalue(theta, "theta", index_uni(1)); - local_scalar_t__ beta; - beta = DUMMY_VAR__; - - current_statement__ = 28; - beta = rvalue(theta, "theta", index_uni(2)); - local_scalar_t__ gamma; - gamma = DUMMY_VAR__; - - current_statement__ = 29; - gamma = rvalue(theta, "theta", index_uni(3)); - local_scalar_t__ delta; - delta = DUMMY_VAR__; - - current_statement__ = 30; - delta = rvalue(theta, "theta", index_uni(4)); - local_scalar_t__ du_dt; - du_dt = DUMMY_VAR__; - - current_statement__ = 31; - du_dt = ((alpha - (beta * v)) * u); - local_scalar_t__ dv_dt; - dv_dt = DUMMY_VAR__; - - current_statement__ = 32; - dv_dt = ((-gamma + (delta * u)) * v); - current_statement__ = 33; - return std::vector{du_dt, dv_dt}; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class old_integrate_interface_model final : public model_base_crtp { - - private: - int N; - std::vector ts; - std::vector y_init; - std::vector> y; - - - public: - ~old_integrate_interface_model() { } - - inline std::string model_name() const final { return "old_integrate_interface_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - old_integrate_interface_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "old_integrate_interface_model_namespace::old_integrate_interface_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 18; - context__.validate_dims("data initialization","N","int", - std::vector{}); - N = std::numeric_limits::min(); - - current_statement__ = 18; - N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 18; - check_greater_or_equal(function__, "N", N, 0); - current_statement__ = 19; - validate_non_negative_index("ts", "N", N); - current_statement__ = 20; - context__.validate_dims("data initialization","ts","double", - std::vector{static_cast(N)}); - ts = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 20; - ts = context__.vals_r("ts"); - current_statement__ = 21; - context__.validate_dims("data initialization","y_init","double", - std::vector{static_cast(2)}); - y_init = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 21; - y_init = context__.vals_r("y_init"); - current_statement__ = 22; - validate_non_negative_index("y", "N", N); - current_statement__ = 23; - context__.validate_dims("data initialization","y","double", - std::vector{static_cast(N), - static_cast(2)}); - y = std::vector>(N, std::vector(2, std::numeric_limits::quiet_NaN())); - - - { - std::vector y_flat__; - current_statement__ = 23; - y_flat__ = context__.vals_r("y"); - current_statement__ = 23; - pos__ = 1; - current_statement__ = 23; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 23; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 23; - assign(y, y_flat__[(pos__ - 1)], - "assigning variable y", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 23; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 23; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 23; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 23; - check_greater_or_equal(function__, "y[sym1__, sym2__]", - y[(sym1__ - 1)][(sym2__ - 1)], 0); - } - } - current_statement__ = 24; - validate_non_negative_index("z", "N", N); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = 1 + 1 + 1 + 1 + 2 + 2; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "old_integrate_interface_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - local_scalar_t__ alpha; - alpha = DUMMY_VAR__; - - current_statement__ = 1; - alpha = in__.template read_constrain_lb( - 0, lp__); - local_scalar_t__ beta; - beta = DUMMY_VAR__; - - current_statement__ = 2; - beta = in__.template read_constrain_lb(0, - lp__); - local_scalar_t__ gamma; - gamma = DUMMY_VAR__; - - current_statement__ = 3; - gamma = in__.template read_constrain_lb( - 0, lp__); - local_scalar_t__ delta; - delta = DUMMY_VAR__; - - current_statement__ = 4; - delta = in__.template read_constrain_lb( - 0, lp__); - std::vector z_init; - z_init = std::vector(2, DUMMY_VAR__); - - current_statement__ = 5; - z_init = in__.template read_constrain_lb, jacobian__>( - 0, lp__, 2); - std::vector sigma; - sigma = std::vector(2, DUMMY_VAR__); - - current_statement__ = 6; - sigma = in__.template read_constrain_lb, jacobian__>( - 0, lp__, 2); - std::vector> z; - z = std::vector>(N, std::vector(2, DUMMY_VAR__)); - - - current_statement__ = 7; - assign(z, - integrate_ode_bdf(dz_dt_functor__(), z_init, 0, ts, - std::vector{alpha, beta, gamma, delta}, - rep_array(0.0, 0), rep_array(0, 0), pstream__, 1e-5, 1e-3, 5e2), - "assigning variable z"); - { - current_statement__ = 8; - lp_accum__.add(normal_lpdf(alpha, 1, 0.5)); - current_statement__ = 9; - lp_accum__.add(normal_lpdf(gamma, 1, 0.5)); - current_statement__ = 10; - lp_accum__.add(normal_lpdf(beta, 0.05, 0.05)); - current_statement__ = 11; - lp_accum__.add(normal_lpdf(delta, 0.05, 0.05)); - current_statement__ = 12; - lp_accum__.add(lognormal_lpdf(sigma, -1, 1)); - current_statement__ = 13; - lp_accum__.add( - lognormal_lpdf(z_init, stan::math::log(10), 1)); - current_statement__ = 17; - for (int k = 1; k <= 2; ++k) { - current_statement__ = 14; - lp_accum__.add( - lognormal_lpdf(rvalue(y_init, "y_init", index_uni(k)), - stan::math::log(rvalue(z_init, "z_init", index_uni(k))), - rvalue(sigma, "sigma", index_uni(k)))); - current_statement__ = 15; - lp_accum__.add( - lognormal_lpdf( - rvalue(y, "y", index_omni(), index_uni(k)), - stan::math::log(rvalue(z, "z", index_omni(), index_uni(k))), - rvalue(sigma, "sigma", index_uni(k)))); - } - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "old_integrate_interface_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - double alpha; - alpha = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - alpha = in__.template read_constrain_lb( - 0, lp__); - double beta; - beta = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - beta = in__.template read_constrain_lb(0, - lp__); - double gamma; - gamma = std::numeric_limits::quiet_NaN(); - - current_statement__ = 3; - gamma = in__.template read_constrain_lb( - 0, lp__); - double delta; - delta = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - delta = in__.template read_constrain_lb( - 0, lp__); - std::vector z_init; - z_init = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 5; - z_init = in__.template read_constrain_lb, jacobian__>( - 0, lp__, 2); - std::vector sigma; - sigma = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 6; - sigma = in__.template read_constrain_lb, jacobian__>( - 0, lp__, 2); - std::vector> z; - z = std::vector>(N, std::vector(2, std::numeric_limits::quiet_NaN())); - - - vars__.emplace_back(alpha); - vars__.emplace_back(beta); - vars__.emplace_back(gamma); - vars__.emplace_back(delta); - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(z_init[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(sigma[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - current_statement__ = 7; - assign(z, - integrate_ode_bdf(dz_dt_functor__(), z_init, 0, ts, - std::vector{alpha, beta, gamma, delta}, - rep_array(0.0, 0), rep_array(0, 0), pstream__, 1e-5, 1e-3, 5e2), - "assigning variable z"); - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(z[(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - double alpha; - alpha = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - alpha = context__.vals_r("alpha")[(1 - 1)]; - double alpha_free__; - alpha_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 1; - alpha_free__ = stan::math::lb_free(alpha, 0); - double beta; - beta = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - beta = context__.vals_r("beta")[(1 - 1)]; - double beta_free__; - beta_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 2; - beta_free__ = stan::math::lb_free(beta, 0); - double gamma; - gamma = std::numeric_limits::quiet_NaN(); - - current_statement__ = 3; - gamma = context__.vals_r("gamma")[(1 - 1)]; - double gamma_free__; - gamma_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 3; - gamma_free__ = stan::math::lb_free(gamma, 0); - double delta; - delta = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - delta = context__.vals_r("delta")[(1 - 1)]; - double delta_free__; - delta_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - delta_free__ = stan::math::lb_free(delta, 0); - std::vector z_init; - z_init = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 5; - z_init = context__.vals_r("z_init"); - std::vector z_init_free__; - z_init_free__ = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 5; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 5; - assign(z_init_free__, stan::math::lb_free(z_init[(sym1__ - 1)], 0), - "assigning variable z_init_free__", index_uni(sym1__)); - } - std::vector sigma; - sigma = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 6; - sigma = context__.vals_r("sigma"); - std::vector sigma_free__; - sigma_free__ = std::vector(2, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 6; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 6; - assign(sigma_free__, stan::math::lb_free(sigma[(sym1__ - 1)], 0), - "assigning variable sigma_free__", index_uni(sym1__)); - } - vars__.emplace_back(alpha_free__); - vars__.emplace_back(beta_free__); - vars__.emplace_back(gamma_free__); - vars__.emplace_back(delta_free__); - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(z_init_free__[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(sigma_free__[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"alpha", "beta", "gamma", "delta", - "z_init", "sigma", "z"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{}, - std::vector{}, std::vector{}, std::vector{ - }, std::vector{static_cast(2)}, - std::vector{static_cast(2)}, - std::vector{static_cast(N), static_cast(2)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "alpha"); - param_names__.emplace_back(std::string() + "beta"); - param_names__.emplace_back(std::string() + "gamma"); - param_names__.emplace_back(std::string() + "delta"); - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "z_init" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "sigma" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "alpha"); - param_names__.emplace_back(std::string() + "beta"); - param_names__.emplace_back(std::string() + "gamma"); - param_names__.emplace_back(std::string() + "delta"); - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "z_init" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "sigma" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"gamma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"delta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"z_init\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"gamma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"delta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"z_init\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} - -using stan_model = old_integrate_interface_model_namespace::old_integrate_interface_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return old_integrate_interface_model_namespace::profiles__; -} - -#endif - - - -Warning in 'old_integrate_interface.stan', line 36, column 4: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. -The new interface is slightly different, see: -https://mc-stan.org/users/documentation/case-studies/convert_odes.html - $ ../../../../../install/default/bin/stanc --print-cpp optimize_glm.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace optimize_glm_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'optimize_glm.stan', line 27, column 2 to column 20)", - " (in 'optimize_glm.stan', line 28, column 2 to column 17)", - " (in 'optimize_glm.stan', line 29, column 2 to column 17)", - " (in 'optimize_glm.stan', line 30, column 2 to column 22)", - " (in 'optimize_glm.stan', line 31, column 2 to column 13)", - " (in 'optimize_glm.stan', line 32, column 2 to column 11)", - " (in 'optimize_glm.stan', line 33, column 2 to column 19)", - " (in 'optimize_glm.stan', line 34, column 2 to column 22)", - " (in 'optimize_glm.stan', line 35, column 2 to column 23)", - " (in 'optimize_glm.stan', line 39, column 2 to column 64)", - " (in 'optimize_glm.stan', line 40, column 2 to column 49)", - " (in 'optimize_glm.stan', line 42, column 2 to column 64)", - " (in 'optimize_glm.stan', line 43, column 2 to column 49)", - " (in 'optimize_glm.stan', line 45, column 2 to column 63)", - " (in 'optimize_glm.stan', line 46, column 2 to column 48)", - " (in 'optimize_glm.stan', line 48, column 2 to column 63)", - " (in 'optimize_glm.stan', line 49, column 2 to column 48)", - " (in 'optimize_glm.stan', line 51, column 2 to column 66)", - " (in 'optimize_glm.stan', line 52, column 2 to column 51)", - " (in 'optimize_glm.stan', line 54, column 2 to column 66)", - " (in 'optimize_glm.stan', line 55, column 2 to column 51)", - " (in 'optimize_glm.stan', line 57, column 2 to column 70)", - " (in 'optimize_glm.stan', line 58, column 2 to column 55)", - " (in 'optimize_glm.stan', line 60, column 2 to column 67)", - " (in 'optimize_glm.stan', line 61, column 2 to column 52)", - " (in 'optimize_glm.stan', line 63, column 2 to column 69)", - " (in 'optimize_glm.stan', line 64, column 2 to column 54)", - " (in 'optimize_glm.stan', line 66, column 2 to column 66)", - " (in 'optimize_glm.stan', line 67, column 2 to column 51)", - " (in 'optimize_glm.stan', line 69, column 2 to column 72)", - " (in 'optimize_glm.stan', line 70, column 2 to column 57)", - " (in 'optimize_glm.stan', line 72, column 2 to column 69)", - " (in 'optimize_glm.stan', line 73, column 2 to column 54)", - " (in 'optimize_glm.stan', line 75, column 2 to column 63)", - " (in 'optimize_glm.stan', line 76, column 2 to column 49)", - " (in 'optimize_glm.stan', line 78, column 2 to column 63)", - " (in 'optimize_glm.stan', line 79, column 2 to column 49)", - " (in 'optimize_glm.stan', line 81, column 2 to column 66)", - " (in 'optimize_glm.stan', line 82, column 2 to column 52)", - " (in 'optimize_glm.stan', line 84, column 2 to column 66)", - " (in 'optimize_glm.stan', line 85, column 2 to column 52)", - " (in 'optimize_glm.stan', line 87, column 2 to column 62)", - " (in 'optimize_glm.stan', line 88, column 2 to column 48)", - " (in 'optimize_glm.stan', line 90, column 2 to column 62)", - " (in 'optimize_glm.stan', line 91, column 2 to column 48)", - " (in 'optimize_glm.stan', line 93, column 2 to column 69)", - " (in 'optimize_glm.stan', line 94, column 2 to column 55)", - " (in 'optimize_glm.stan', line 96, column 2 to column 66)", - " (in 'optimize_glm.stan', line 97, column 2 to column 52)", - " (in 'optimize_glm.stan', line 99, column 2 to column 72)", - " (in 'optimize_glm.stan', line 100, column 2 to column 58)", - " (in 'optimize_glm.stan', line 102, column 2 to column 69)", - " (in 'optimize_glm.stan', line 103, column 2 to column 55)", - " (in 'optimize_glm.stan', line 105, column 2 to column 68)", - " (in 'optimize_glm.stan', line 106, column 2 to column 54)", - " (in 'optimize_glm.stan', line 108, column 2 to column 65)", - " (in 'optimize_glm.stan', line 109, column 2 to column 51)", - " (in 'optimize_glm.stan', line 111, column 2 to column 59)", - " (in 'optimize_glm.stan', line 112, column 2 to column 45)", - " (in 'optimize_glm.stan', line 114, column 2 to column 59)", - " (in 'optimize_glm.stan', line 115, column 2 to column 45)", - " (in 'optimize_glm.stan', line 117, column 2 to column 58)", - " (in 'optimize_glm.stan', line 118, column 2 to column 44)", - " (in 'optimize_glm.stan', line 120, column 2 to column 58)", - " (in 'optimize_glm.stan', line 121, column 2 to column 44)", - " (in 'optimize_glm.stan', line 123, column 2 to column 62)", - " (in 'optimize_glm.stan', line 124, column 2 to column 48)", - " (in 'optimize_glm.stan', line 126, column 2 to column 62)", - " (in 'optimize_glm.stan', line 127, column 2 to column 48)", - " (in 'optimize_glm.stan', line 129, column 2 to column 65)", - " (in 'optimize_glm.stan', line 130, column 2 to column 51)", - " (in 'optimize_glm.stan', line 132, column 2 to column 62)", - " (in 'optimize_glm.stan', line 133, column 2 to column 48)", - " (in 'optimize_glm.stan', line 135, column 2 to column 64)", - " (in 'optimize_glm.stan', line 136, column 2 to column 50)", - " (in 'optimize_glm.stan', line 138, column 2 to column 61)", - " (in 'optimize_glm.stan', line 139, column 2 to column 47)", - " (in 'optimize_glm.stan', line 141, column 2 to column 68)", - " (in 'optimize_glm.stan', line 142, column 2 to column 54)", - " (in 'optimize_glm.stan', line 144, column 2 to column 65)", - " (in 'optimize_glm.stan', line 145, column 2 to column 51)", - " (in 'optimize_glm.stan', line 147, column 2 to column 71)", - " (in 'optimize_glm.stan', line 148, column 2 to column 57)", - " (in 'optimize_glm.stan', line 150, column 2 to column 71)", - " (in 'optimize_glm.stan', line 151, column 2 to column 57)", - " (in 'optimize_glm.stan', line 153, column 2 to column 70)", - " (in 'optimize_glm.stan', line 154, column 2 to column 56)", - " (in 'optimize_glm.stan', line 156, column 2 to column 70)", - " (in 'optimize_glm.stan', line 157, column 2 to column 56)", - " (in 'optimize_glm.stan', line 159, column 2 to column 74)", - " (in 'optimize_glm.stan', line 160, column 2 to column 60)", - " (in 'optimize_glm.stan', line 162, column 2 to column 74)", - " (in 'optimize_glm.stan', line 163, column 2 to column 60)", - " (in 'optimize_glm.stan', line 165, column 2 to column 77)", - " (in 'optimize_glm.stan', line 166, column 2 to column 63)", - " (in 'optimize_glm.stan', line 168, column 2 to column 74)", - " (in 'optimize_glm.stan', line 169, column 2 to column 60)", - " (in 'optimize_glm.stan', line 171, column 2 to column 76)", - " (in 'optimize_glm.stan', line 172, column 2 to column 62)", - " (in 'optimize_glm.stan', line 174, column 2 to column 73)", - " (in 'optimize_glm.stan', line 175, column 2 to column 59)", - " (in 'optimize_glm.stan', line 177, column 2 to column 80)", - " (in 'optimize_glm.stan', line 178, column 2 to column 66)", - " (in 'optimize_glm.stan', line 180, column 2 to column 77)", - " (in 'optimize_glm.stan', line 181, column 2 to column 63)", - " (in 'optimize_glm.stan', line 183, column 2 to column 62)", - " (in 'optimize_glm.stan', line 184, column 2 to column 48)", - " (in 'optimize_glm.stan', line 186, column 2 to column 62)", - " (in 'optimize_glm.stan', line 187, column 2 to column 48)", - " (in 'optimize_glm.stan', line 189, column 2 to column 68)", - " (in 'optimize_glm.stan', line 190, column 2 to column 54)", - " (in 'optimize_glm.stan', line 192, column 2 to column 65)", - " (in 'optimize_glm.stan', line 193, column 2 to column 51)", - " (in 'optimize_glm.stan', line 195, column 2 to column 62)", - " (in 'optimize_glm.stan', line 196, column 2 to column 48)", - " (in 'optimize_glm.stan', line 198, column 2 to column 62)", - " (in 'optimize_glm.stan', line 199, column 2 to column 48)", - " (in 'optimize_glm.stan', line 201, column 2 to column 68)", - " (in 'optimize_glm.stan', line 202, column 2 to column 54)", - " (in 'optimize_glm.stan', line 204, column 2 to column 65)", - " (in 'optimize_glm.stan', line 205, column 2 to column 51)", - " (in 'optimize_glm.stan', line 207, column 2 to column 65)", - " (in 'optimize_glm.stan', line 208, column 2 to column 51)", - " (in 'optimize_glm.stan', line 210, column 2 to column 65)", - " (in 'optimize_glm.stan', line 211, column 2 to column 51)", - " (in 'optimize_glm.stan', line 213, column 2 to column 63)", - " (in 'optimize_glm.stan', line 214, column 2 to column 49)", - " (in 'optimize_glm.stan', line 216, column 2 to column 63)", - " (in 'optimize_glm.stan', line 217, column 2 to column 49)", - " (in 'optimize_glm.stan', line 219, column 2 to column 69)", - " (in 'optimize_glm.stan', line 220, column 2 to column 55)", - " (in 'optimize_glm.stan', line 222, column 2 to column 66)", - " (in 'optimize_glm.stan', line 223, column 2 to column 53)", - " (in 'optimize_glm.stan', line 225, column 2 to column 66)", - " (in 'optimize_glm.stan', line 226, column 2 to column 52)", - " (in 'optimize_glm.stan', line 228, column 2 to column 66)", - " (in 'optimize_glm.stan', line 229, column 2 to column 52)", - " (in 'optimize_glm.stan', line 231, column 2 to column 68)", - " (in 'optimize_glm.stan', line 232, column 2 to column 54)", - " (in 'optimize_glm.stan', line 234, column 2 to column 68)", - " (in 'optimize_glm.stan', line 235, column 2 to column 54)", - " (in 'optimize_glm.stan', line 237, column 2 to column 74)", - " (in 'optimize_glm.stan', line 238, column 2 to column 60)", - " (in 'optimize_glm.stan', line 240, column 2 to column 71)", - " (in 'optimize_glm.stan', line 241, column 2 to column 57)", - " (in 'optimize_glm.stan', line 243, column 2 to column 71)", - " (in 'optimize_glm.stan', line 244, column 2 to column 57)", - " (in 'optimize_glm.stan', line 246, column 2 to column 71)", - " (in 'optimize_glm.stan', line 247, column 2 to column 57)", - " (in 'optimize_glm.stan', line 249, column 2 to column 77)", - " (in 'optimize_glm.stan', line 250, column 2 to column 63)", - " (in 'optimize_glm.stan', line 252, column 2 to column 74)", - " (in 'optimize_glm.stan', line 253, column 2 to column 60)", - " (in 'optimize_glm.stan', line 255, column 2 to column 69)", - " (in 'optimize_glm.stan', line 256, column 2 to column 55)", - " (in 'optimize_glm.stan', line 258, column 2 to column 69)", - " (in 'optimize_glm.stan', line 259, column 2 to column 55)", - " (in 'optimize_glm.stan', line 261, column 2 to column 75)", - " (in 'optimize_glm.stan', line 262, column 2 to column 61)", - " (in 'optimize_glm.stan', line 264, column 2 to column 72)", - " (in 'optimize_glm.stan', line 265, column 2 to column 58)", - " (in 'optimize_glm.stan', line 267, column 2 to column 72)", - " (in 'optimize_glm.stan', line 268, column 2 to column 58)", - " (in 'optimize_glm.stan', line 270, column 2 to column 72)", - " (in 'optimize_glm.stan', line 271, column 2 to column 58)", - " (in 'optimize_glm.stan', line 273, column 2 to column 78)", - " (in 'optimize_glm.stan', line 274, column 2 to column 64)", - " (in 'optimize_glm.stan', line 276, column 2 to column 75)", - " (in 'optimize_glm.stan', line 277, column 2 to column 61)", - " (in 'optimize_glm.stan', line 279, column 2 to column 73)", - " (in 'optimize_glm.stan', line 280, column 2 to column 59)", - " (in 'optimize_glm.stan', line 282, column 2 to column 76)", - " (in 'optimize_glm.stan', line 283, column 2 to column 62)", - " (in 'optimize_glm.stan', line 285, column 2 to column 69)", - " (in 'optimize_glm.stan', line 286, column 2 to column 54)", - " (in 'optimize_glm.stan', line 2, column 2 to column 17)", - " (in 'optimize_glm.stan', line 3, column 2 to column 17)", - " (in 'optimize_glm.stan', line 4, column 9 to column 10)", - " (in 'optimize_glm.stan', line 4, column 12 to column 13)", - " (in 'optimize_glm.stan', line 4, column 2 to column 19)", - " (in 'optimize_glm.stan', line 5, column 9 to column 10)", - " (in 'optimize_glm.stan', line 5, column 12 to column 13)", - " (in 'optimize_glm.stan', line 5, column 2 to column 24)", - " (in 'optimize_glm.stan', line 6, column 9 to column 10)", - " (in 'optimize_glm.stan', line 6, column 2 to column 18)", - " (in 'optimize_glm.stan', line 7, column 13 to column 14)", - " (in 'optimize_glm.stan', line 7, column 2 to column 23)", - " (in 'optimize_glm.stan', line 8, column 13 to column 14)", - " (in 'optimize_glm.stan', line 8, column 2 to column 16)", - " (in 'optimize_glm.stan', line 9, column 14 to column 15)", - " (in 'optimize_glm.stan', line 9, column 2 to column 17)", - " (in 'optimize_glm.stan', line 10, column 2 to column 12)", - " (in 'optimize_glm.stan', line 11, column 2 to column 13)", - " (in 'optimize_glm.stan', line 15, column 2 to column 20)", - " (in 'optimize_glm.stan', line 16, column 2 to column 20)", - " (in 'optimize_glm.stan', line 17, column 9 to column 10)", - " (in 'optimize_glm.stan', line 17, column 12 to column 13)", - " (in 'optimize_glm.stan', line 17, column 2 to column 22)", - " (in 'optimize_glm.stan', line 18, column 9 to column 10)", - " (in 'optimize_glm.stan', line 18, column 2 to column 21)", - " (in 'optimize_glm.stan', line 19, column 13 to column 14)", - " (in 'optimize_glm.stan', line 19, column 2 to column 26)", - " (in 'optimize_glm.stan', line 20, column 16 to column 17)", - " (in 'optimize_glm.stan', line 20, column 2 to column 19)", - " (in 'optimize_glm.stan', line 21, column 17 to column 18)", - " (in 'optimize_glm.stan', line 21, column 2 to column 20)", - " (in 'optimize_glm.stan', line 22, column 2 to column 15)", - " (in 'optimize_glm.stan', line 23, column 2 to column 16)", - " (in 'optimize_glm.stan', line 27, column 9 to column 10)", - " (in 'optimize_glm.stan', line 28, column 9 to column 10)", - " (in 'optimize_glm.stan', line 29, column 9 to column 10)", - " (in 'optimize_glm.stan', line 33, column 9 to column 10)", - " (in 'optimize_glm.stan', line 33, column 12 to column 13)", - " (in 'optimize_glm.stan', line 34, column 9 to column 10)", - " (in 'optimize_glm.stan', line 34, column 12 to column 13)", - " (in 'optimize_glm.stan', line 35, column 13 to column 14)"}; - - - -class optimize_glm_model final : public model_base_crtp { - - private: - int k; - int n; - Eigen::Matrix X_d__; - std::vector> X_d_a; - Eigen::Matrix y_v_d__; - Eigen::Matrix X_rv_d__; - std::vector y_vi_d; - std::vector y2_vi_d; - int y_s_d; - double y_r_d; - int k_td; - int n_td; - Eigen::Matrix X_d_td__; - Eigen::Matrix y_v_d_td__; - Eigen::Matrix X_rv_d_td__; - std::vector y_vi_d_td; - std::vector y2_vi_d_td; - int y_s_d_td; - double y_r_d_td; - Eigen::Map> X_d{nullptr, 0, 0}; - Eigen::Map> y_v_d{nullptr, 0}; - Eigen::Map> X_rv_d{nullptr, 0}; - Eigen::Map> X_d_td{nullptr, 0, 0}; - Eigen::Map> y_v_d_td{nullptr, 0}; - Eigen::Map> X_rv_d_td{nullptr, 0}; - - public: - ~optimize_glm_model() { } - - inline std::string model_name() const final { return "optimize_glm_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - optimize_glm_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "optimize_glm_model_namespace::optimize_glm_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 176; - context__.validate_dims("data initialization","k","int", - std::vector{}); - k = std::numeric_limits::min(); - - current_statement__ = 176; - k = context__.vals_i("k")[(1 - 1)]; - current_statement__ = 176; - check_greater_or_equal(function__, "k", k, 1); - current_statement__ = 177; - context__.validate_dims("data initialization","n","int", - std::vector{}); - n = std::numeric_limits::min(); - - current_statement__ = 177; - n = context__.vals_i("n")[(1 - 1)]; - current_statement__ = 177; - check_greater_or_equal(function__, "n", n, 0); - current_statement__ = 178; - validate_non_negative_index("X_d", "n", n); - current_statement__ = 179; - validate_non_negative_index("X_d", "k", k); - current_statement__ = 180; - context__.validate_dims("data initialization","X_d","double", - std::vector{static_cast(n), - static_cast(k)}); - X_d__ = Eigen::Matrix(n, k); - new (&X_d) Eigen::Map>(X_d__.data(), n, k); - - - { - std::vector X_d_flat__; - current_statement__ = 180; - X_d_flat__ = context__.vals_r("X_d"); - current_statement__ = 180; - pos__ = 1; - current_statement__ = 180; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 180; - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - current_statement__ = 180; - assign(X_d, X_d_flat__[(pos__ - 1)], - "assigning variable X_d", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 180; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 181; - validate_non_negative_index("X_d_a", "n", n); - current_statement__ = 182; - validate_non_negative_index("X_d_a", "k", k); - current_statement__ = 183; - context__.validate_dims("data initialization","X_d_a","double", - std::vector{static_cast(2), - static_cast(n), static_cast(k)}); - X_d_a = std::vector>(2, Eigen::Matrix(n, k)); - - - { - std::vector X_d_a_flat__; - current_statement__ = 183; - X_d_a_flat__ = context__.vals_r("X_d_a"); - current_statement__ = 183; - pos__ = 1; - current_statement__ = 183; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 183; - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - current_statement__ = 183; - for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { - current_statement__ = 183; - assign(X_d_a, X_d_a_flat__[(pos__ - 1)], - "assigning variable X_d_a", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 183; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 184; - validate_non_negative_index("y_v_d", "n", n); - current_statement__ = 185; - context__.validate_dims("data initialization","y_v_d","double", - std::vector{static_cast(n)}); - y_v_d__ = Eigen::Matrix(n); - new (&y_v_d) Eigen::Map>(y_v_d__.data(), n); - - - { - std::vector y_v_d_flat__; - current_statement__ = 185; - y_v_d_flat__ = context__.vals_r("y_v_d"); - current_statement__ = 185; - pos__ = 1; - current_statement__ = 185; - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - current_statement__ = 185; - assign(y_v_d, y_v_d_flat__[(pos__ - 1)], - "assigning variable y_v_d", index_uni(sym1__)); - current_statement__ = 185; - pos__ = (pos__ + 1); - } - } - current_statement__ = 186; - validate_non_negative_index("X_rv_d", "n", n); - current_statement__ = 187; - context__.validate_dims("data initialization","X_rv_d","double", - std::vector{static_cast(n)}); - X_rv_d__ = Eigen::Matrix(n); - new (&X_rv_d) Eigen::Map>(X_rv_d__.data(), n); - - - { - std::vector X_rv_d_flat__; - current_statement__ = 187; - X_rv_d_flat__ = context__.vals_r("X_rv_d"); - current_statement__ = 187; - pos__ = 1; - current_statement__ = 187; - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - current_statement__ = 187; - assign(X_rv_d, X_rv_d_flat__[(pos__ - 1)], - "assigning variable X_rv_d", index_uni(sym1__)); - current_statement__ = 187; - pos__ = (pos__ + 1); - } - } - current_statement__ = 188; - validate_non_negative_index("y_vi_d", "n", n); - current_statement__ = 189; - context__.validate_dims("data initialization","y_vi_d","int", - std::vector{static_cast(n)}); - y_vi_d = std::vector(n, std::numeric_limits::min()); - - current_statement__ = 189; - y_vi_d = context__.vals_i("y_vi_d"); - current_statement__ = 190; - validate_non_negative_index("y2_vi_d", "n", n); - current_statement__ = 191; - context__.validate_dims("data initialization","y2_vi_d","int", - std::vector{static_cast(n)}); - y2_vi_d = std::vector(n, std::numeric_limits::min()); - - current_statement__ = 191; - y2_vi_d = context__.vals_i("y2_vi_d"); - current_statement__ = 192; - context__.validate_dims("data initialization","y_s_d","int", - std::vector{}); - y_s_d = std::numeric_limits::min(); - - current_statement__ = 192; - y_s_d = context__.vals_i("y_s_d")[(1 - 1)]; - current_statement__ = 193; - context__.validate_dims("data initialization","y_r_d","double", - std::vector{}); - y_r_d = std::numeric_limits::quiet_NaN(); - - current_statement__ = 193; - y_r_d = context__.vals_r("y_r_d")[(1 - 1)]; - current_statement__ = 194; - k_td = std::numeric_limits::min(); - - current_statement__ = 195; - n_td = std::numeric_limits::min(); - - current_statement__ = 196; - validate_non_negative_index("X_d_td", "n", n); - current_statement__ = 197; - validate_non_negative_index("X_d_td", "k", k); - current_statement__ = 198; - X_d_td__ = Eigen::Matrix(n, k); - new (&X_d_td) Eigen::Map>(X_d_td__.data(), n, k); - stan::math::fill(X_d_td, std::numeric_limits::quiet_NaN()); - - current_statement__ = 199; - validate_non_negative_index("y_v_d_td", "n", n); - current_statement__ = 200; - y_v_d_td__ = Eigen::Matrix(n); - new (&y_v_d_td) Eigen::Map>(y_v_d_td__.data(), n); - stan::math::fill(y_v_d_td, std::numeric_limits::quiet_NaN()); - - current_statement__ = 201; - validate_non_negative_index("X_rv_d_td", "n", n); - current_statement__ = 202; - X_rv_d_td__ = Eigen::Matrix(n); - new (&X_rv_d_td) Eigen::Map>(X_rv_d_td__.data(), n); - stan::math::fill(X_rv_d_td, std::numeric_limits::quiet_NaN()); - - current_statement__ = 203; - validate_non_negative_index("y_vi_d_td", "n", n); - current_statement__ = 204; - y_vi_d_td = std::vector(n, std::numeric_limits::min()); - - current_statement__ = 205; - validate_non_negative_index("y2_vi_d_td", "n", n); - current_statement__ = 206; - y2_vi_d_td = std::vector(n, std::numeric_limits::min()); - - current_statement__ = 207; - y_s_d_td = std::numeric_limits::min(); - - current_statement__ = 208; - y_r_d_td = std::numeric_limits::quiet_NaN(); - - current_statement__ = 194; - check_greater_or_equal(function__, "k_td", k_td, 1); - current_statement__ = 195; - check_greater_or_equal(function__, "n_td", n_td, 0); - current_statement__ = 209; - validate_non_negative_index("alpha_v", "k", k); - current_statement__ = 210; - validate_non_negative_index("beta", "k", k); - current_statement__ = 211; - validate_non_negative_index("cuts", "k", k); - current_statement__ = 212; - validate_non_negative_index("X_p", "n", n); - current_statement__ = 213; - validate_non_negative_index("X_p", "k", k); - current_statement__ = 214; - validate_non_negative_index("beta_m", "n", n); - current_statement__ = 215; - validate_non_negative_index("beta_m", "k", k); - current_statement__ = 216; - validate_non_negative_index("X_rv_p", "n", n); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = k + k + k + 1 + 1 + 1 + (n * k) + (n * k) + n; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "optimize_glm_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - Eigen::Matrix alpha_v; - alpha_v = Eigen::Matrix(k); - stan::math::fill(alpha_v, DUMMY_VAR__); - - current_statement__ = 1; - alpha_v = in__.template read>(k); - Eigen::Matrix beta; - beta = Eigen::Matrix(k); - stan::math::fill(beta, DUMMY_VAR__); - - current_statement__ = 2; - beta = in__.template read>(k); - Eigen::Matrix cuts; - cuts = Eigen::Matrix(k); - stan::math::fill(cuts, DUMMY_VAR__); - - current_statement__ = 3; - cuts = in__.template read>(k); - local_scalar_t__ sigma; - sigma = DUMMY_VAR__; - - current_statement__ = 4; - sigma = in__.template read_constrain_lb( - 0, lp__); - local_scalar_t__ alpha; - alpha = DUMMY_VAR__; - - current_statement__ = 5; - alpha = in__.template read(); - local_scalar_t__ phi; - phi = DUMMY_VAR__; - - current_statement__ = 6; - phi = in__.template read(); - Eigen::Matrix X_p; - X_p = Eigen::Matrix(n, k); - stan::math::fill(X_p, DUMMY_VAR__); - - current_statement__ = 7; - X_p = in__.template read>(n, k); - Eigen::Matrix beta_m; - beta_m = Eigen::Matrix(n, k); - stan::math::fill(beta_m, DUMMY_VAR__); - - current_statement__ = 8; - beta_m = in__.template read>(n, - k); - Eigen::Matrix X_rv_p; - X_rv_p = Eigen::Matrix(n); - stan::math::fill(X_rv_p, DUMMY_VAR__); - - current_statement__ = 9; - X_rv_p = in__.template read>(n); - { - current_statement__ = 10; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_d, alpha, beta, sigma)); - current_statement__ = 11; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_d, alpha, beta, sigma)); - current_statement__ = 12; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_p, alpha, beta, sigma)); - current_statement__ = 13; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_p, alpha, beta, sigma)); - current_statement__ = 14; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d, X_d, alpha, beta, beta)); - current_statement__ = 15; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d, X_d, alpha, beta, beta)); - current_statement__ = 16; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d, X_p, alpha, beta, beta)); - current_statement__ = 17; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d, X_p, alpha, beta, beta)); - current_statement__ = 18; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_rv_d, alpha, beta, beta)); - current_statement__ = 19; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_rv_d, alpha, beta, beta)); - current_statement__ = 20; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_rv_p, alpha, beta, beta)); - current_statement__ = 21; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, X_rv_p, alpha, beta, beta)); - current_statement__ = 22; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_d_td, alpha, beta, sigma)); - current_statement__ = 23; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_d_td, alpha, beta, sigma)); - current_statement__ = 24; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_p, alpha, beta, sigma)); - current_statement__ = 25; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_p, alpha, beta, sigma)); - current_statement__ = 26; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d_td, X_d_td, alpha, beta, beta)); - current_statement__ = 27; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d_td, X_d_td, alpha, beta, beta)); - current_statement__ = 28; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d_td, X_p, alpha, beta, beta)); - current_statement__ = 29; - lp_accum__.add( - normal_id_glm_lpdf(y_r_d_td, X_p, alpha, beta, beta)); - current_statement__ = 30; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_rv_d_td, alpha, beta, beta)); - current_statement__ = 31; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_rv_d_td, alpha, beta, - beta)); - current_statement__ = 32; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_rv_p, alpha, beta, beta)); - current_statement__ = 33; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d_td, X_rv_p, alpha, beta, beta)); - current_statement__ = 34; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_d, alpha, beta)); - current_statement__ = 35; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_d, alpha, beta)); - current_statement__ = 36; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_p, alpha, beta)); - current_statement__ = 37; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_p, alpha, beta)); - current_statement__ = 38; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); - current_statement__ = 39; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); - current_statement__ = 40; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); - current_statement__ = 41; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); - current_statement__ = 42; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d, X_d, alpha, beta)); - current_statement__ = 43; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d, X_d, alpha, beta)); - current_statement__ = 44; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d, X_p, alpha, beta)); - current_statement__ = 45; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d, X_p, alpha, beta)); - current_statement__ = 46; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); - current_statement__ = 47; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); - current_statement__ = 48; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); - current_statement__ = 49; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); - current_statement__ = 50; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, beta)); - current_statement__ = 51; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, - beta)); - current_statement__ = 52; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); - current_statement__ = 53; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); - current_statement__ = 54; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); - current_statement__ = 55; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); - current_statement__ = 56; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d_td, X_p, alpha, beta)); - current_statement__ = 57; - lp_accum__.add( - bernoulli_logit_glm_lpmf(y_s_d_td, X_p, alpha, beta)); - current_statement__ = 58; - lp_accum__.add(poisson_log_glm_lpmf(y_vi_d, X_d, alpha, beta)); - current_statement__ = 59; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d, X_d, alpha, beta)); - current_statement__ = 60; - lp_accum__.add(poisson_log_glm_lpmf(y_vi_d, X_p, alpha, beta)); - current_statement__ = 61; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d, X_p, alpha, beta)); - current_statement__ = 62; - lp_accum__.add(poisson_log_glm_lpmf(y_s_d, X_d, alpha, beta)); - current_statement__ = 63; - lp_accum__.add( - poisson_log_glm_lpmf(y_s_d, X_d, alpha, beta)); - current_statement__ = 64; - lp_accum__.add(poisson_log_glm_lpmf(y_s_d, X_p, alpha, beta)); - current_statement__ = 65; - lp_accum__.add( - poisson_log_glm_lpmf(y_s_d, X_p, alpha, beta)); - current_statement__ = 66; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); - current_statement__ = 67; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); - current_statement__ = 68; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); - current_statement__ = 69; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); - current_statement__ = 70; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); - current_statement__ = 71; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); - current_statement__ = 72; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); - current_statement__ = 73; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); - current_statement__ = 74; - lp_accum__.add( - poisson_log_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); - current_statement__ = 75; - lp_accum__.add( - poisson_log_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); - current_statement__ = 76; - lp_accum__.add( - poisson_log_glm_lpmf(y_s_d_td, X_p, alpha, beta)); - current_statement__ = 77; - lp_accum__.add( - poisson_log_glm_lpmf(y_s_d_td, X_p, alpha, beta)); - current_statement__ = 78; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, beta)); - current_statement__ = 79; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, beta)); - current_statement__ = 80; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); - current_statement__ = 81; - lp_accum__.add( - poisson_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); - current_statement__ = 82; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_d, alpha, beta, phi)); - current_statement__ = 83; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_d, alpha, beta, - phi)); - current_statement__ = 84; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_p, alpha, beta, phi)); - current_statement__ = 85; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_p, alpha, beta, - phi)); - current_statement__ = 86; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d, X_d, alpha, beta, phi)); - current_statement__ = 87; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d, X_d, alpha, beta, phi)); - current_statement__ = 88; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d, X_p, alpha, beta, phi)); - current_statement__ = 89; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d, X_p, alpha, beta, phi)); - current_statement__ = 90; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta, - phi)); - current_statement__ = 91; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta, - phi)); - current_statement__ = 92; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta, - phi)); - current_statement__ = 93; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta, - phi)); - current_statement__ = 94; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta, - phi)); - current_statement__ = 95; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, - beta, phi)); - current_statement__ = 96; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta, - phi)); - current_statement__ = 97; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta, - phi)); - current_statement__ = 98; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d_td, X_d_td, alpha, beta, - phi)); - current_statement__ = 99; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d_td, X_d_td, alpha, - beta, phi)); - current_statement__ = 100; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d_td, X_p, alpha, beta, phi)); - current_statement__ = 101; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_s_d_td, X_p, alpha, beta, - phi)); - current_statement__ = 102; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, - beta, phi)); - current_statement__ = 103; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, - beta, phi)); - current_statement__ = 104; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta, - phi)); - current_statement__ = 105; - lp_accum__.add( - neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, - beta, phi)); - current_statement__ = 106; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); - current_statement__ = 107; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); - current_statement__ = 108; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); - current_statement__ = 109; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); - current_statement__ = 110; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); - current_statement__ = 111; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); - current_statement__ = 112; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); - current_statement__ = 113; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); - current_statement__ = 114; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); - current_statement__ = 115; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); - current_statement__ = 116; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); - current_statement__ = 117; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); - current_statement__ = 118; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); - current_statement__ = 119; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); - current_statement__ = 120; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); - current_statement__ = 121; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); - current_statement__ = 122; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_rv_d, beta, cuts)); - current_statement__ = 123; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_rv_d, beta, cuts)); - current_statement__ = 124; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_rv_p, beta, cuts)); - current_statement__ = 125; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_s_d, X_rv_p, beta, cuts)); - current_statement__ = 126; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_d, beta, cuts)); - current_statement__ = 127; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_d, beta, cuts)); - current_statement__ = 128; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_p, beta, cuts)); - current_statement__ = 129; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_p, beta, cuts)); - current_statement__ = 130; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d_td, X_d_td, beta, cuts)); - current_statement__ = 131; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d_td, X_d_td, beta, cuts)); - current_statement__ = 132; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d_td, X_p, beta, cuts)); - current_statement__ = 133; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d_td, X_p, beta, cuts)); - current_statement__ = 134; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_rv_d, beta, cuts)); - current_statement__ = 135; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_rv_d, beta, cuts)); - current_statement__ = 136; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_rv_p, beta, cuts)); - current_statement__ = 137; - lp_accum__.add( - ordered_logistic_glm_lpmf(y_vi_d, X_rv_p, beta, cuts)); - current_statement__ = 138; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_d, alpha_v, beta_m)); - current_statement__ = 139; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_d, alpha_v, beta_m)); - current_statement__ = 140; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_p, alpha_v, beta_m)); - current_statement__ = 141; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_p, alpha_v, beta_m)); - current_statement__ = 142; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_d_td, alpha_v, - beta_m)); - current_statement__ = 143; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_d_td, alpha_v, - beta_m)); - current_statement__ = 144; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_p, alpha_v, beta_m)); - current_statement__ = 145; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_p, alpha_v, - beta_m)); - current_statement__ = 146; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_rv_d, alpha_v, beta_m)); - current_statement__ = 147; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_rv_d, alpha_v, - beta_m)); - current_statement__ = 148; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_rv_p, alpha_v, beta_m)); - current_statement__ = 149; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 150; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_rv_d_td, alpha_v, - beta_m)); - current_statement__ = 151; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_rv_d_td, alpha_v, - beta_m)); - current_statement__ = 152; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 153; - lp_accum__.add( - categorical_logit_glm_lpmf(y_s_d_td, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 154; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_d, alpha_v, beta_m)); - current_statement__ = 155; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_d, alpha_v, beta_m)); - current_statement__ = 156; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_p, alpha_v, beta_m)); - current_statement__ = 157; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_p, alpha_v, beta_m)); - current_statement__ = 158; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha_v, - beta_m)); - current_statement__ = 159; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha_v, - beta_m)); - current_statement__ = 160; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_p, alpha_v, beta_m)); - current_statement__ = 161; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_p, alpha_v, - beta_m)); - current_statement__ = 162; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_rv_d, alpha_v, beta_m)); - current_statement__ = 163; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_rv_d, alpha_v, - beta_m)); - current_statement__ = 164; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_rv_p, alpha_v, beta_m)); - current_statement__ = 165; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 166; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha_v, - beta_m)); - current_statement__ = 167; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha_v, - beta_m)); - current_statement__ = 168; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 169; - lp_accum__.add( - categorical_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 170; - lp_accum__.add( - categorical_logit_glm_lpmf(y2_vi_d, X_rv_p, alpha_v, beta_m)); - current_statement__ = 171; - lp_accum__.add( - categorical_logit_glm_lpmf(y2_vi_d, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 172; - lp_accum__.add( - categorical_logit_glm_lpmf(y2_vi_d_td, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 173; - lp_accum__.add( - categorical_logit_glm_lpmf(y2_vi_d_td, X_rv_p, alpha_v, - beta_m)); - current_statement__ = 174; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, - rvalue(X_d_a, "X_d_a", index_uni(1)), alpha, beta, sigma)); - current_statement__ = 175; - lp_accum__.add( - normal_id_glm_lpdf(y_v_d, - rvalue(X_d_a, "X_d_a", index_uni(1)), alpha, beta, sigma)); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "optimize_glm_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - Eigen::Matrix alpha_v; - alpha_v = Eigen::Matrix(k); - stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - alpha_v = in__.template read>(k); - Eigen::Matrix beta; - beta = Eigen::Matrix(k); - stan::math::fill(beta, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - beta = in__.template read>(k); - Eigen::Matrix cuts; - cuts = Eigen::Matrix(k); - stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - cuts = in__.template read>(k); - double sigma; - sigma = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - sigma = in__.template read_constrain_lb( - 0, lp__); - double alpha; - alpha = std::numeric_limits::quiet_NaN(); - - current_statement__ = 5; - alpha = in__.template read(); - double phi; - phi = std::numeric_limits::quiet_NaN(); - - current_statement__ = 6; - phi = in__.template read(); - Eigen::Matrix X_p; - X_p = Eigen::Matrix(n, k); - stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); - - current_statement__ = 7; - X_p = in__.template read>(n, k); - Eigen::Matrix beta_m; - beta_m = Eigen::Matrix(n, k); - stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); - - current_statement__ = 8; - beta_m = in__.template read>(n, - k); - Eigen::Matrix X_rv_p; - X_rv_p = Eigen::Matrix(n); - stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); - - current_statement__ = 9; - X_rv_p = in__.template read>(n); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(alpha_v[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(beta[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(cuts[(sym1__ - 1)]); - } - vars__.emplace_back(sigma); - vars__.emplace_back(alpha); - vars__.emplace_back(phi); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(X_p, "X_p", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(beta_m, "beta_m", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - vars__.emplace_back(X_rv_p[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - Eigen::Matrix alpha_v; - alpha_v = Eigen::Matrix(k); - stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); - - { - std::vector alpha_v_flat__; - current_statement__ = 1; - alpha_v_flat__ = context__.vals_r("alpha_v"); - current_statement__ = 1; - pos__ = 1; - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 1; - assign(alpha_v, alpha_v_flat__[(pos__ - 1)], - "assigning variable alpha_v", index_uni(sym1__)); - current_statement__ = 1; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix beta; - beta = Eigen::Matrix(k); - stan::math::fill(beta, std::numeric_limits::quiet_NaN()); - - { - std::vector beta_flat__; - current_statement__ = 2; - beta_flat__ = context__.vals_r("beta"); - current_statement__ = 2; - pos__ = 1; - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 2; - assign(beta, beta_flat__[(pos__ - 1)], - "assigning variable beta", index_uni(sym1__)); - current_statement__ = 2; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix cuts; - cuts = Eigen::Matrix(k); - stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); - - { - std::vector cuts_flat__; - current_statement__ = 3; - cuts_flat__ = context__.vals_r("cuts"); - current_statement__ = 3; - pos__ = 1; - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 3; - assign(cuts, cuts_flat__[(pos__ - 1)], - "assigning variable cuts", index_uni(sym1__)); - current_statement__ = 3; - pos__ = (pos__ + 1); - } - } - double sigma; - sigma = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - sigma = context__.vals_r("sigma")[(1 - 1)]; - double sigma_free__; - sigma_free__ = std::numeric_limits::quiet_NaN(); - - current_statement__ = 4; - sigma_free__ = stan::math::lb_free(sigma, 0); - double alpha; - alpha = std::numeric_limits::quiet_NaN(); - - current_statement__ = 5; - alpha = context__.vals_r("alpha")[(1 - 1)]; - double phi; - phi = std::numeric_limits::quiet_NaN(); - - current_statement__ = 6; - phi = context__.vals_r("phi")[(1 - 1)]; - Eigen::Matrix X_p; - X_p = Eigen::Matrix(n, k); - stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); - - { - std::vector X_p_flat__; - current_statement__ = 7; - X_p_flat__ = context__.vals_r("X_p"); - current_statement__ = 7; - pos__ = 1; - current_statement__ = 7; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 7; - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - current_statement__ = 7; - assign(X_p, X_p_flat__[(pos__ - 1)], - "assigning variable X_p", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 7; - pos__ = (pos__ + 1); - } - } - } - Eigen::Matrix beta_m; - beta_m = Eigen::Matrix(n, k); - stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); - - { - std::vector beta_m_flat__; - current_statement__ = 8; - beta_m_flat__ = context__.vals_r("beta_m"); - current_statement__ = 8; - pos__ = 1; - current_statement__ = 8; - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - current_statement__ = 8; - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - current_statement__ = 8; - assign(beta_m, beta_m_flat__[(pos__ - 1)], - "assigning variable beta_m", index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 8; - pos__ = (pos__ + 1); - } - } - } - Eigen::Matrix X_rv_p; - X_rv_p = Eigen::Matrix(n); - stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); - - { - std::vector X_rv_p_flat__; - current_statement__ = 9; - X_rv_p_flat__ = context__.vals_r("X_rv_p"); - current_statement__ = 9; - pos__ = 1; - current_statement__ = 9; - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - current_statement__ = 9; - assign(X_rv_p, X_rv_p_flat__[(pos__ - 1)], - "assigning variable X_rv_p", index_uni(sym1__)); - current_statement__ = 9; - pos__ = (pos__ + 1); - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(alpha_v[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(beta[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - vars__.emplace_back(cuts[(sym1__ - 1)]); - } - vars__.emplace_back(sigma_free__); - vars__.emplace_back(alpha); - vars__.emplace_back(phi); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(X_p, "X_p", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - vars__.emplace_back( - rvalue(beta_m, "beta_m", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - vars__.emplace_back(X_rv_p[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"alpha_v", "beta", "cuts", "sigma", - "alpha", "phi", "X_p", "beta_m", "X_rv_p"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{ - static_cast(k) - }, - std::vector{static_cast(k)}, - std::vector{static_cast(k)}, std::vector{ - }, std::vector{}, std::vector{}, - std::vector{static_cast(n), static_cast(k)}, - std::vector{static_cast(n), static_cast(k)}, - std::vector{static_cast(n)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); - } - } - param_names__.emplace_back(std::string() + "sigma"); - param_names__.emplace_back(std::string() + "alpha"); - param_names__.emplace_back(std::string() + "phi"); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - { - param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); - } - } - param_names__.emplace_back(std::string() + "sigma"); - param_names__.emplace_back(std::string() + "alpha"); - param_names__.emplace_back(std::string() + "phi"); - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= k; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= n; ++sym2__) { - { - param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= n; ++sym1__) { - { - param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(n) + "},\"block\":\"parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(n) + "},\"block\":\"parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = optimize_glm_model_namespace::optimize_glm_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return optimize_glm_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp param-constraint.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace param_constraint_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'param-constraint.stan', line 7, column 2 to column 38)", - " (in 'param-constraint.stan', line 8, column 2 to column 38)", - " (in 'param-constraint.stan', line 2, column 2 to column 9)", - " (in 'param-constraint.stan', line 3, column 2 to column 9)", - " (in 'param-constraint.stan', line 7, column 34 to column 36)", - " (in 'param-constraint.stan', line 8, column 31 to column 33)"}; - - - -class param_constraint_model final : public model_base_crtp { - - private: - int nt; - int NS; - - - public: - ~param_constraint_model() { } - - inline std::string model_name() const final { return "param_constraint_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - param_constraint_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "param_constraint_model_namespace::param_constraint_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 3; - context__.validate_dims("data initialization","nt","int", - std::vector{}); - nt = std::numeric_limits::min(); - - current_statement__ = 3; - nt = context__.vals_i("nt")[(1 - 1)]; - current_statement__ = 4; - context__.validate_dims("data initialization","NS","int", - std::vector{}); - NS = std::numeric_limits::min(); - - current_statement__ = 4; - NS = context__.vals_i("NS")[(1 - 1)]; - current_statement__ = 5; - validate_non_negative_index("L_Omega", "nt", nt); - current_statement__ = 6; - validate_non_negative_index("z1", "NS", NS); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = (nt * ((2 * (2 - 1)) / 2)) + NS; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "param_constraint_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - std::vector> L_Omega; - L_Omega = std::vector>(nt, Eigen::Matrix(2, 2)); - stan::math::fill(L_Omega, DUMMY_VAR__); - - current_statement__ = 1; - L_Omega = in__.template read_constrain_cholesky_factor_corr>, jacobian__>( - lp__, nt, 2); - Eigen::Matrix z1; - z1 = Eigen::Matrix(NS); - stan::math::fill(z1, DUMMY_VAR__); - - current_statement__ = 2; - z1 = in__.template read_constrain_lb, jacobian__>( - rvalue(L_Omega, "L_Omega", - index_uni(1), index_uni(1), index_uni(2)), lp__, NS); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "param_constraint_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - std::vector> L_Omega; - L_Omega = std::vector>(nt, Eigen::Matrix(2, 2)); - stan::math::fill(L_Omega, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - L_Omega = in__.template read_constrain_cholesky_factor_corr>, jacobian__>( - lp__, nt, 2); - Eigen::Matrix z1; - z1 = Eigen::Matrix(NS); - stan::math::fill(z1, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - z1 = in__.template read_constrain_lb, jacobian__>( - rvalue(L_Omega, "L_Omega", - index_uni(1), index_uni(1), index_uni(2)), lp__, NS); - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - for (int sym3__ = 1; sym3__ <= nt; ++sym3__) { - vars__.emplace_back( - rvalue(L_Omega, "L_Omega", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } - } - } - for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { - vars__.emplace_back(z1[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - std::vector> L_Omega; - L_Omega = std::vector>(nt, Eigen::Matrix(2, 2)); - stan::math::fill(L_Omega, std::numeric_limits::quiet_NaN()); - - { - std::vector L_Omega_flat__; - current_statement__ = 1; - L_Omega_flat__ = context__.vals_r("L_Omega"); - current_statement__ = 1; - pos__ = 1; - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 1; - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - current_statement__ = 1; - for (int sym3__ = 1; sym3__ <= nt; ++sym3__) { - current_statement__ = 1; - assign(L_Omega, L_Omega_flat__[(pos__ - 1)], - "assigning variable L_Omega", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 1; - pos__ = (pos__ + 1); - } - } - } - } - std::vector> L_Omega_free__; - L_Omega_free__ = std::vector>(nt, Eigen::Matrix( - ((2 * (2 - 1)) / 2))); - stan::math::fill(L_Omega_free__, std::numeric_limits::quiet_NaN()); - - - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= nt; ++sym1__) { - current_statement__ = 1; - assign(L_Omega_free__, - stan::math::cholesky_corr_free(L_Omega[(sym1__ - 1)]), - "assigning variable L_Omega_free__", index_uni(sym1__)); - } - Eigen::Matrix z1; - z1 = Eigen::Matrix(NS); - stan::math::fill(z1, std::numeric_limits::quiet_NaN()); - - { - std::vector z1_flat__; - current_statement__ = 2; - z1_flat__ = context__.vals_r("z1"); - current_statement__ = 2; - pos__ = 1; - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { - current_statement__ = 2; - assign(z1, z1_flat__[(pos__ - 1)], - "assigning variable z1", index_uni(sym1__)); - current_statement__ = 2; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix z1_free__; - z1_free__ = Eigen::Matrix(NS); - stan::math::fill(z1_free__, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { - current_statement__ = 2; - assign(z1_free__, - stan::math::lb_free(z1[(sym1__ - 1)], - rvalue(L_Omega, "L_Omega", - index_uni(1), index_uni(1), index_uni(2))), - "assigning variable z1_free__", index_uni(sym1__)); - } - for (int sym1__ = 1; sym1__ <= nt; ++sym1__) { - for (int sym2__ = 1; sym2__ <= ((2 * (2 - 1)) / 2); ++sym2__) { - vars__.emplace_back(L_Omega_free__[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { - vars__.emplace_back(z1_free__[(sym1__ - 1)]); - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"L_Omega", "z1"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{ - static_cast(nt) - , - static_cast(2) - , - static_cast(2) - }, - std::vector{static_cast(NS)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= nt; ++sym3__) { - { - param_names__.emplace_back(std::string() + "L_Omega" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { - { - param_names__.emplace_back(std::string() + "z1" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= ((2 * (2 - 1)) / 2); ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= nt; ++sym2__) { - { - param_names__.emplace_back(std::string() + "L_Omega" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { - { - param_names__.emplace_back(std::string() + "z1" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"L_Omega\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(nt) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"z1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(NS) + "},\"block\":\"parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"L_Omega\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(nt) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((2 * (2 - 1)) / 2)) + "}},\"block\":\"parameters\"},{\"name\":\"z1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(NS) + "},\"block\":\"parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } + " (in 'mother.stan', line 555, column 2 to column 14)", + " (in 'mother.stan', line 556, column 2 to column 29)", + " (in 'mother.stan', line 557, column 2 to column 30)", + " (in 'mother.stan', line 558, column 2 to column 52)", + " (in 'mother.stan', line 559, column 2 to column 45)", + " (in 'mother.stan', line 560, column 2 to column 41)", + " (in 'mother.stan', line 561, column 2 to column 32)", + " (in 'mother.stan', line 562, column 2 to column 36)", + " (in 'mother.stan', line 563, column 2 to column 27)", + " (in 'mother.stan', line 564, column 2 to column 24)", + " (in 'mother.stan', line 565, column 2 to column 28)", + " (in 'mother.stan', line 566, column 2 to column 26)", + " (in 'mother.stan', line 567, column 2 to column 32)", + " (in 'mother.stan', line 568, column 2 to column 36)", + " (in 'mother.stan', line 569, column 2 to column 21)", + " (in 'mother.stan', line 570, column 2 to column 45)", + " (in 'mother.stan', line 571, column 2 to column 23)", + " (in 'mother.stan', line 572, column 2 to column 29)", + " (in 'mother.stan', line 573, column 2 to column 33)", + " (in 'mother.stan', line 574, column 2 to column 38)", + " (in 'mother.stan', line 575, column 2 to column 36)", + " (in 'mother.stan', line 576, column 2 to column 42)", + " (in 'mother.stan', line 577, column 2 to column 16)", + " (in 'mother.stan', line 578, column 2 to column 16)", + " (in 'mother.stan', line 581, column 2 to column 33)", + " (in 'mother.stan', line 582, column 2 to column 37)", + " (in 'mother.stan', line 583, column 2 to column 28)", + " (in 'mother.stan', line 584, column 2 to column 25)", + " (in 'mother.stan', line 585, column 2 to column 29)", + " (in 'mother.stan', line 586, column 2 to column 27)", + " (in 'mother.stan', line 587, column 2 to column 33)", + " (in 'mother.stan', line 588, column 2 to column 37)", + " (in 'mother.stan', line 589, column 2 to column 22)", + " (in 'mother.stan', line 590, column 2 to column 46)", + " (in 'mother.stan', line 591, column 2 to column 24)", + " (in 'mother.stan', line 592, column 2 to column 30)", + " (in 'mother.stan', line 593, column 2 to column 34)", + " (in 'mother.stan', line 594, column 2 to column 39)", + " (in 'mother.stan', line 595, column 2 to column 37)", + " (in 'mother.stan', line 596, column 2 to column 43)", + " (in 'mother.stan', line 597, column 2 to column 20)", + " (in 'mother.stan', line 598, column 2 to column 15)", + " (in 'mother.stan', line 600, column 2 to column 31)", + " (in 'mother.stan', line 601, column 2 to column 31)", + " (in 'mother.stan', line 602, column 2 to column 23)", + " (in 'mother.stan', line 603, column 2 to column 23)", + " (in 'mother.stan', line 605, column 2 to column 25)", + " (in 'mother.stan', line 606, column 2 to column 31)", + " (in 'mother.stan', line 607, column 2 to column 31)", + " (in 'mother.stan', line 609, column 2 to column 27)", + " (in 'mother.stan', line 610, column 2 to column 27)", + " (in 'mother.stan', line 611, column 2 to column 33)", + " (in 'mother.stan', line 613, column 2 to column 41)", + " (in 'mother.stan', line 614, column 2 to column 36)", + " (in 'mother.stan', line 620, column 10 to column 38)", + " (in 'mother.stan', line 619, column 23 to line 620, column 39)", + " (in 'mother.stan', line 619, column 8 to line 620, column 39)", + " (in 'mother.stan', line 618, column 21 to line 620, column 40)", + " (in 'mother.stan', line 618, column 6 to line 620, column 40)", + " (in 'mother.stan', line 617, column 19 to line 620, column 41)", + " (in 'mother.stan', line 617, column 4 to line 620, column 41)", + " (in 'mother.stan', line 616, column 17 to line 620, column 42)", + " (in 'mother.stan', line 616, column 2 to line 620, column 42)", + " (in 'mother.stan', line 622, column 17 to column 45)", + " (in 'mother.stan', line 622, column 2 to column 45)", + " (in 'mother.stan', line 623, column 2 to column 29)", + " (in 'mother.stan', line 624, column 2 to column 31)", + " (in 'mother.stan', line 625, column 2 to column 31)", + " (in 'mother.stan', line 627, column 2 to column 63)", + " (in 'mother.stan', line 628, column 2 to column 79)", + " (in 'mother.stan', line 629, column 2 to column 81)", + " (in 'mother.stan', line 630, column 2 to column 65)", + " (in 'mother.stan', line 631, column 2 to column 81)", + " (in 'mother.stan', line 632, column 2 to column 67)", + " (in 'mother.stan', line 633, column 2 to column 83)", + " (in 'mother.stan', line 635, column 2 to column 29)", + " (in 'mother.stan', line 636, column 2 to column 29)", + " (in 'mother.stan', line 680, column 2 to column 32)", + " (in 'mother.stan', line 681, column 2 to column 27)", + " (in 'mother.stan', line 682, column 2 to column 35)", + " (in 'mother.stan', line 683, column 2 to column 39)", + " (in 'mother.stan', line 684, column 2 to column 28)", + " (in 'mother.stan', line 685, column 2 to column 25)", + " (in 'mother.stan', line 686, column 2 to column 29)", + " (in 'mother.stan', line 687, column 2 to column 27)", + " (in 'mother.stan', line 688, column 2 to column 33)", + " (in 'mother.stan', line 689, column 2 to column 37)", + " (in 'mother.stan', line 690, column 2 to column 46)", + " (in 'mother.stan', line 691, column 2 to column 24)", + " (in 'mother.stan', line 692, column 2 to column 30)", + " (in 'mother.stan', line 693, column 2 to column 34)", + " (in 'mother.stan', line 694, column 2 to column 39)", + " (in 'mother.stan', line 695, column 2 to column 37)", + " (in 'mother.stan', line 696, column 2 to column 43)", + " (in 'mother.stan', line 697, column 2 to column 29)", + " (in 'mother.stan', line 698, column 2 to column 31)", + " (in 'mother.stan', line 699, column 2 to column 27)", + " (in 'mother.stan', line 700, column 2 to column 27)", + " (in 'mother.stan', line 701, column 2 to column 27)", + " (in 'mother.stan', line 702, column 2 to column 28)", + " (in 'mother.stan', line 703, column 2 to column 28)", + " (in 'mother.stan', line 704, column 2 to column 28)", + " (in 'mother.stan', line 705, column 2 to column 28)", + " (in 'mother.stan', line 706, column 2 to column 24)", + " (in 'mother.stan', line 708, column 2 to column 35)", + " (in 'mother.stan', line 709, column 2 to column 31)", + " (in 'mother.stan', line 710, column 2 to column 23)", + " (in 'mother.stan', line 711, column 2 to column 23)", + " (in 'mother.stan', line 712, column 2 to column 25)", + " (in 'mother.stan', line 713, column 2 to column 31)", + " (in 'mother.stan', line 714, column 2 to column 31)", + " (in 'mother.stan', line 716, column 2 to column 35)", + " (in 'mother.stan', line 717, column 2 to column 31)", + " (in 'mother.stan', line 718, column 2 to column 31)", + " (in 'mother.stan', line 720, column 2 to column 27)", + " (in 'mother.stan', line 721, column 2 to column 27)", + " (in 'mother.stan', line 722, column 2 to column 33)", + " (in 'mother.stan', line 728, column 10 to column 38)", + " (in 'mother.stan', line 727, column 23 to line 728, column 39)", + " (in 'mother.stan', line 727, column 8 to line 728, column 39)", + " (in 'mother.stan', line 726, column 21 to line 728, column 40)", + " (in 'mother.stan', line 726, column 6 to line 728, column 40)", + " (in 'mother.stan', line 725, column 19 to line 728, column 41)", + " (in 'mother.stan', line 725, column 4 to line 728, column 41)", + " (in 'mother.stan', line 724, column 17 to line 728, column 42)", + " (in 'mother.stan', line 724, column 2 to line 728, column 42)", + " (in 'mother.stan', line 730, column 17 to column 45)", + " (in 'mother.stan', line 730, column 2 to column 45)", + " (in 'mother.stan', line 736, column 8 to column 49)", + " (in 'mother.stan', line 735, column 6 to line 736, column 49)", + " (in 'mother.stan', line 734, column 4 to line 736, column 49)", + " (in 'mother.stan', line 733, column 2 to line 736, column 49)", + " (in 'mother.stan', line 741, column 6 to column 60)", + " (in 'mother.stan', line 740, column 4 to line 741, column 60)", + " (in 'mother.stan', line 739, column 2 to line 741, column 60)", + " (in 'mother.stan', line 743, column 2 to column 45)", + " (in 'mother.stan', line 744, column 64 to column 97)", + " (in 'mother.stan', line 744, column 2 to column 97)", + " (in 'mother.stan', line 749, column 6 to column 51)", + " (in 'mother.stan', line 748, column 4 to line 749, column 51)", + " (in 'mother.stan', line 747, column 2 to line 749, column 51)", + " (in 'mother.stan', line 750, column 2 to column 39)", + " (in 'mother.stan', line 752, column 58 to column 91)", + " (in 'mother.stan', line 752, column 2 to column 91)", + " (in 'mother.stan', line 758, column 8 to column 68)", + " (in 'mother.stan', line 757, column 6 to line 758, column 68)", + " (in 'mother.stan', line 756, column 4 to line 758, column 68)", + " (in 'mother.stan', line 755, column 2 to line 758, column 68)", + " (in 'mother.stan', line 759, column 2 to column 48)", + " (in 'mother.stan', line 760, column 67 to column 100)", + " (in 'mother.stan', line 760, column 2 to column 100)", + " (in 'mother.stan', line 762, column 2 to column 36)", + " (in 'mother.stan', line 763, column 2 to column 38)", + " (in 'mother.stan', line 639, column 2 to column 16)", + " (in 'mother.stan', line 640, column 2 to column 20)", + " (in 'mother.stan', line 641, column 2 to column 29)", + " (in 'mother.stan', line 642, column 2 to column 24)", + " (in 'mother.stan', line 643, column 2 to column 23)", + " (in 'mother.stan', line 644, column 2 to column 35)", + " (in 'mother.stan', line 646, column 2 to column 38)", + " (in 'mother.stan', line 647, column 2 to column 38)", + " (in 'mother.stan', line 649, column 2 to column 41)", + " (in 'mother.stan', line 651, column 4 to column 42)", + " (in 'mother.stan', line 652, column 4 to column 46)", + " (in 'mother.stan', line 653, column 4 to column 46)", + " (in 'mother.stan', line 656, column 8 to column 68)", + " (in 'mother.stan', line 657, column 8 to column 76)", + " (in 'mother.stan', line 658, column 8 to column 76)", + " (in 'mother.stan', line 659, column 8 to column 65)", + " (in 'mother.stan', line 655, column 21 to line 660, column 7)", + " (in 'mother.stan', line 655, column 6 to line 660, column 7)", + " (in 'mother.stan', line 654, column 19 to line 661, column 5)", + " (in 'mother.stan', line 654, column 4 to line 661, column 5)", + " (in 'mother.stan', line 650, column 17 to line 662, column 3)", + " (in 'mother.stan', line 650, column 2 to line 662, column 3)", + " (in 'mother.stan', line 665, column 6 to column 47)", + " (in 'mother.stan', line 664, column 19 to line 666, column 5)", + " (in 'mother.stan', line 664, column 4 to line 666, column 5)", + " (in 'mother.stan', line 663, column 17 to line 667, column 3)", + " (in 'mother.stan', line 663, column 2 to line 667, column 3)", + " (in 'mother.stan', line 669, column 4 to column 47)", + " (in 'mother.stan', line 668, column 17 to line 670, column 3)", + " (in 'mother.stan', line 668, column 2 to line 670, column 3)", + " (in 'mother.stan', line 671, column 2 to column 38)", + " (in 'mother.stan', line 672, column 2 to column 38)", + " (in 'mother.stan', line 673, column 2 to column 38)", + " (in 'mother.stan', line 674, column 2 to column 39)", + " (in 'mother.stan', line 675, column 2 to column 39)", + " (in 'mother.stan', line 677, column 2 to column 53)", + " (in 'mother.stan', line 316, column 2 to column 17)", + " (in 'mother.stan', line 317, column 2 to column 17)", + " (in 'mother.stan', line 318, column 2 to column 28)", + " (in 'mother.stan', line 319, column 27 to column 28)", + " (in 'mother.stan', line 319, column 2 to column 30)", + " (in 'mother.stan', line 320, column 27 to column 28)", + " (in 'mother.stan', line 320, column 29 to column 30)", + " (in 'mother.stan', line 320, column 31 to column 32)", + " (in 'mother.stan', line 320, column 2 to column 34)", + " (in 'mother.stan', line 321, column 2 to column 32)", + " (in 'mother.stan', line 322, column 20 to column 21)", + " (in 'mother.stan', line 322, column 2 to column 23)", + " (in 'mother.stan', line 323, column 20 to column 21)", + " (in 'mother.stan', line 323, column 22 to column 23)", + " (in 'mother.stan', line 323, column 24 to column 25)", + " (in 'mother.stan', line 323, column 2 to column 27)", + " (in 'mother.stan', line 324, column 9 to column 10)", + " (in 'mother.stan', line 324, column 2 to column 18)", + " (in 'mother.stan', line 325, column 21 to column 22)", + " (in 'mother.stan', line 325, column 9 to column 10)", + " (in 'mother.stan', line 325, column 2 to column 24)", + " (in 'mother.stan', line 326, column 21 to column 22)", + " (in 'mother.stan', line 326, column 23 to column 24)", + " (in 'mother.stan', line 326, column 25 to column 26)", + " (in 'mother.stan', line 326, column 9 to column 10)", + " (in 'mother.stan', line 326, column 2 to column 28)", + " (in 'mother.stan', line 327, column 13 to column 14)", + " (in 'mother.stan', line 327, column 2 to column 26)", + " (in 'mother.stan', line 328, column 29 to column 30)", + " (in 'mother.stan', line 328, column 13 to column 14)", + " (in 'mother.stan', line 328, column 2 to column 32)", + " (in 'mother.stan', line 329, column 29 to column 30)", + " (in 'mother.stan', line 329, column 31 to column 32)", + " (in 'mother.stan', line 329, column 33 to column 34)", + " (in 'mother.stan', line 329, column 13 to column 14)", + " (in 'mother.stan', line 329, column 2 to column 36)", + " (in 'mother.stan', line 330, column 2 to column 45)", + " (in 'mother.stan', line 331, column 10 to column 11)", + " (in 'mother.stan', line 331, column 2 to column 23)", + " (in 'mother.stan', line 332, column 26 to column 27)", + " (in 'mother.stan', line 332, column 10 to column 11)", + " (in 'mother.stan', line 332, column 2 to column 29)", + " (in 'mother.stan', line 333, column 26 to column 27)", + " (in 'mother.stan', line 333, column 28 to column 29)", + " (in 'mother.stan', line 333, column 30 to column 31)", + " (in 'mother.stan', line 333, column 10 to column 11)", + " (in 'mother.stan', line 333, column 2 to column 33)", + " (in 'mother.stan', line 334, column 2 to column 38)", + " (in 'mother.stan', line 335, column 2 to column 36)", + " (in 'mother.stan', line 336, column 39 to column 40)", + " (in 'mother.stan', line 336, column 2 to column 42)", + " (in 'mother.stan', line 337, column 2 to column 12)", + " (in 'mother.stan', line 338, column 18 to column 23)", + " (in 'mother.stan', line 338, column 2 to column 25)", + " (in 'mother.stan', line 339, column 21 to column 26)", + " (in 'mother.stan', line 339, column 2 to column 30)", + " (in 'mother.stan', line 340, column 21 to column 26)", + " (in 'mother.stan', line 340, column 2 to column 32)", + " (in 'mother.stan', line 341, column 2 to column 14)", + " (in 'mother.stan', line 342, column 20 to column 25)", + " (in 'mother.stan', line 342, column 2 to column 27)", + " (in 'mother.stan', line 343, column 23 to column 28)", + " (in 'mother.stan', line 343, column 2 to column 32)", + " (in 'mother.stan', line 344, column 23 to column 28)", + " (in 'mother.stan', line 344, column 2 to column 34)", + " (in 'mother.stan', line 345, column 9 to column 14)", + " (in 'mother.stan', line 345, column 15 to column 20)", + " (in 'mother.stan', line 345, column 2 to column 31)", + " (in 'mother.stan', line 346, column 37 to column 42)", + " (in 'mother.stan', line 346, column 9 to column 14)", + " (in 'mother.stan', line 346, column 15 to column 20)", + " (in 'mother.stan', line 346, column 2 to column 44)", + " (in 'mother.stan', line 347, column 40 to column 45)", + " (in 'mother.stan', line 347, column 9 to column 14)", + " (in 'mother.stan', line 347, column 15 to column 20)", + " (in 'mother.stan', line 347, column 2 to column 49)", + " (in 'mother.stan', line 348, column 40 to column 45)", + " (in 'mother.stan', line 348, column 9 to column 14)", + " (in 'mother.stan', line 348, column 15 to column 20)", + " (in 'mother.stan', line 348, column 2 to column 51)", + " (in 'mother.stan', line 349, column 9 to column 14)", + " (in 'mother.stan', line 349, column 2 to column 25)", + " (in 'mother.stan', line 350, column 31 to column 36)", + " (in 'mother.stan', line 350, column 9 to column 14)", + " (in 'mother.stan', line 350, column 2 to column 38)", + " (in 'mother.stan', line 351, column 34 to column 39)", + " (in 'mother.stan', line 351, column 9 to column 14)", + " (in 'mother.stan', line 351, column 2 to column 43)", + " (in 'mother.stan', line 352, column 34 to column 39)", + " (in 'mother.stan', line 352, column 9 to column 14)", + " (in 'mother.stan', line 352, column 2 to column 45)", + " (in 'mother.stan', line 353, column 13 to column 18)", + " (in 'mother.stan', line 353, column 2 to column 33)", + " (in 'mother.stan', line 354, column 39 to column 44)", + " (in 'mother.stan', line 354, column 13 to column 18)", + " (in 'mother.stan', line 354, column 2 to column 46)", + " (in 'mother.stan', line 355, column 42 to column 47)", + " (in 'mother.stan', line 355, column 13 to column 18)", + " (in 'mother.stan', line 355, column 2 to column 51)", + " (in 'mother.stan', line 356, column 42 to column 47)", + " (in 'mother.stan', line 356, column 13 to column 18)", + " (in 'mother.stan', line 356, column 2 to column 53)", + " (in 'mother.stan', line 359, column 2 to column 13)", + " (in 'mother.stan', line 360, column 12 to column 13)", + " (in 'mother.stan', line 360, column 2 to column 15)", + " (in 'mother.stan', line 361, column 13 to column 14)", + " (in 'mother.stan', line 361, column 2 to column 34)", + " (in 'mother.stan', line 362, column 2 to column 15)", + " (in 'mother.stan', line 363, column 2 to column 20)", + " (in 'mother.stan', line 364, column 2 to column 29)", + " (in 'mother.stan', line 365, column 2 to column 46)", + " (in 'mother.stan', line 366, column 10 to column 11)", + " (in 'mother.stan', line 366, column 2 to column 24)", + " (in 'mother.stan', line 367, column 27 to column 28)", + " (in 'mother.stan', line 367, column 10 to column 11)", + " (in 'mother.stan', line 367, column 2 to column 30)", + " (in 'mother.stan', line 368, column 27 to column 28)", + " (in 'mother.stan', line 368, column 29 to column 30)", + " (in 'mother.stan', line 368, column 31 to column 32)", + " (in 'mother.stan', line 368, column 10 to column 11)", + " (in 'mother.stan', line 368, column 2 to column 34)", + " (in 'mother.stan', line 369, column 2 to column 39)", + " (in 'mother.stan', line 370, column 2 to column 37)", + " (in 'mother.stan', line 371, column 2 to column 14)", + " (in 'mother.stan', line 372, column 2 to column 14)", + " (in 'mother.stan', line 373, column 2 to column 14)", + " (in 'mother.stan', line 374, column 2 to column 17)", + " (in 'mother.stan', line 375, column 2 to column 17)", + " (in 'mother.stan', line 376, column 2 to column 16)", + " (in 'mother.stan', line 377, column 2 to column 18)", + " (in 'mother.stan', line 378, column 2 to column 18)", + " (in 'mother.stan', line 383, column 10 to column 38)", + " (in 'mother.stan', line 382, column 23 to line 383, column 39)", + " (in 'mother.stan', line 382, column 8 to line 383, column 39)", + " (in 'mother.stan', line 381, column 21 to line 383, column 40)", + " (in 'mother.stan', line 381, column 6 to line 383, column 40)", + " (in 'mother.stan', line 380, column 19 to line 383, column 41)", + " (in 'mother.stan', line 380, column 4 to line 383, column 41)", + " (in 'mother.stan', line 379, column 17 to line 383, column 42)", + " (in 'mother.stan', line 379, column 2 to line 383, column 42)", + " (in 'mother.stan', line 385, column 4 to column 28)", + " (in 'mother.stan', line 387, column 6 to column 36)", + " (in 'mother.stan', line 390, column 10 to column 46)", + " (in 'mother.stan', line 389, column 23 to line 390, column 47)", + " (in 'mother.stan', line 389, column 8 to line 390, column 47)", + " (in 'mother.stan', line 388, column 21 to line 390, column 48)", + " (in 'mother.stan', line 388, column 6 to line 390, column 48)", + " (in 'mother.stan', line 386, column 19 to line 390, column 49)", + " (in 'mother.stan', line 386, column 4 to line 390, column 49)", + " (in 'mother.stan', line 384, column 17 to line 390, column 50)", + " (in 'mother.stan', line 384, column 2 to line 390, column 50)", + " (in 'mother.stan', line 393, column 6 to column 40)", + " (in 'mother.stan', line 394, column 6 to column 63)", + " (in 'mother.stan', line 392, column 19 to line 395, column 5)", + " (in 'mother.stan', line 392, column 4 to line 395, column 5)", + " (in 'mother.stan', line 391, column 17 to line 395, column 6)", + " (in 'mother.stan', line 391, column 2 to line 395, column 6)", + " (in 'mother.stan', line 396, column 2 to column 62)", + " (in 'mother.stan', line 397, column 2 to column 62)", + " (in 'mother.stan', line 399, column 4 to column 11)", + " (in 'mother.stan', line 400, column 4 to column 35)", + " (in 'mother.stan', line 401, column 4 to line 403, column 5)", + " (in 'mother.stan', line 402, column 6 to column 12)", + " (in 'mother.stan', line 404, column 4 to column 31)", + " (in 'mother.stan', line 405, column 4 to line 407, column 5)", + " (in 'mother.stan', line 406, column 6 to column 12)", + " (in 'mother.stan', line 398, column 2 to line 408, column 3)", + " (in 'mother.stan', line 410, column 2 to column 25)", + " (in 'mother.stan', line 411, column 2 to column 34)", + " (in 'mother.stan', line 412, column 2 to column 33)", + " (in 'mother.stan', line 413, column 2 to column 36)", + " (in 'mother.stan', line 415, column 2 to column 23)", + " (in 'mother.stan', line 416, column 2 to column 30)", + " (in 'mother.stan', line 418, column 2 to column 28)", + " (in 'mother.stan', line 420, column 2 to column 29)", + " (in 'mother.stan', line 421, column 35 to column 40)", + " (in 'mother.stan', line 421, column 2 to column 42)", + " (in 'mother.stan', line 422, column 38 to column 43)", + " (in 'mother.stan', line 422, column 2 to column 47)", + " (in 'mother.stan', line 423, column 38 to column 43)", + " (in 'mother.stan', line 423, column 2 to column 49)", + " (in 'mother.stan', line 424, column 9 to column 14)", + " (in 'mother.stan', line 424, column 15 to column 20)", + " (in 'mother.stan', line 424, column 2 to column 46)", + " (in 'mother.stan', line 425, column 52 to column 57)", + " (in 'mother.stan', line 425, column 9 to column 14)", + " (in 'mother.stan', line 425, column 15 to column 20)", + " (in 'mother.stan', line 425, column 2 to column 59)", + " (in 'mother.stan', line 426, column 55 to column 60)", + " (in 'mother.stan', line 426, column 9 to column 14)", + " (in 'mother.stan', line 426, column 15 to column 20)", + " (in 'mother.stan', line 426, column 2 to column 64)", + " (in 'mother.stan', line 427, column 55 to column 60)", + " (in 'mother.stan', line 427, column 9 to column 14)", + " (in 'mother.stan', line 427, column 15 to column 20)", + " (in 'mother.stan', line 427, column 2 to column 66)", + " (in 'mother.stan', line 428, column 9 to column 14)", + " (in 'mother.stan', line 428, column 2 to column 40)", + " (in 'mother.stan', line 429, column 46 to column 51)", + " (in 'mother.stan', line 429, column 9 to column 14)", + " (in 'mother.stan', line 429, column 2 to column 53)", + " (in 'mother.stan', line 430, column 49 to column 54)", + " (in 'mother.stan', line 430, column 9 to column 14)", + " (in 'mother.stan', line 430, column 2 to column 58)", + " (in 'mother.stan', line 431, column 49 to column 54)", + " (in 'mother.stan', line 431, column 9 to column 14)", + " (in 'mother.stan', line 431, column 2 to column 60)", + " (in 'mother.stan', line 432, column 13 to column 18)", + " (in 'mother.stan', line 432, column 2 to column 48)", + " (in 'mother.stan', line 433, column 54 to column 59)", + " (in 'mother.stan', line 433, column 13 to column 18)", + " (in 'mother.stan', line 433, column 2 to column 61)", + " (in 'mother.stan', line 434, column 57 to column 62)", + " (in 'mother.stan', line 434, column 13 to column 18)", + " (in 'mother.stan', line 434, column 2 to column 66)", + " (in 'mother.stan', line 435, column 57 to column 62)", + " (in 'mother.stan', line 435, column 13 to column 18)", + " (in 'mother.stan', line 435, column 2 to column 68)", + " (in 'mother.stan', line 437, column 2 to column 41)", + " (in 'mother.stan', line 438, column 2 to column 42)", + " (in 'mother.stan', line 439, column 2 to column 42)", + " (in 'mother.stan', line 440, column 2 to column 43)", + " (in 'mother.stan', line 441, column 2 to column 53)", + " (in 'mother.stan', line 442, column 2 to column 54)", + " (in 'mother.stan', line 443, column 2 to column 59)", + " (in 'mother.stan', line 444, column 2 to column 60)", + " (in 'mother.stan', line 445, column 2 to column 59)", + " (in 'mother.stan', line 446, column 2 to column 60)", + " (in 'mother.stan', line 447, column 2 to column 53)", + " (in 'mother.stan', line 448, column 2 to column 54)", + " (in 'mother.stan', line 449, column 2 to column 59)", + " (in 'mother.stan', line 450, column 2 to column 60)", + " (in 'mother.stan', line 451, column 2 to column 59)", + " (in 'mother.stan', line 452, column 2 to column 60)", + " (in 'mother.stan', line 454, column 2 to column 54)", + " (in 'mother.stan', line 455, column 2 to column 55)", + " (in 'mother.stan', line 456, column 2 to column 60)", + " (in 'mother.stan', line 457, column 2 to column 61)", + " (in 'mother.stan', line 458, column 2 to column 60)", + " (in 'mother.stan', line 459, column 2 to column 61)", + " (in 'mother.stan', line 461, column 2 to column 54)", + " (in 'mother.stan', line 462, column 2 to column 55)", + " (in 'mother.stan', line 463, column 2 to column 60)", + " (in 'mother.stan', line 464, column 2 to column 61)", + " (in 'mother.stan', line 465, column 2 to column 60)", + " (in 'mother.stan', line 466, column 2 to column 61)", + " (in 'mother.stan', line 468, column 2 to column 59)", + " (in 'mother.stan', line 469, column 2 to column 61)", + " (in 'mother.stan', line 470, column 2 to column 68)", + " (in 'mother.stan', line 471, column 2 to column 70)", + " (in 'mother.stan', line 472, column 2 to column 68)", + " (in 'mother.stan', line 473, column 2 to column 70)", + " (in 'mother.stan', line 475, column 2 to column 46)", + " (in 'mother.stan', line 476, column 2 to column 47)", + " (in 'mother.stan', line 477, column 2 to column 62)", + " (in 'mother.stan', line 478, column 2 to column 60)", + " (in 'mother.stan', line 479, column 2 to column 58)", + " (in 'mother.stan', line 480, column 2 to column 58)", + " (in 'mother.stan', line 481, column 2 to column 59)", + " (in 'mother.stan', line 482, column 2 to column 64)", + " (in 'mother.stan', line 483, column 2 to column 65)", + " (in 'mother.stan', line 484, column 2 to column 64)", + " (in 'mother.stan', line 485, column 2 to column 65)", + " (in 'mother.stan', line 487, column 2 to column 46)", + " (in 'mother.stan', line 488, column 2 to column 47)", + " (in 'mother.stan', line 489, column 2 to column 58)", + " (in 'mother.stan', line 490, column 2 to column 59)", + " (in 'mother.stan', line 491, column 2 to column 64)", + " (in 'mother.stan', line 492, column 2 to column 65)", + " (in 'mother.stan', line 493, column 2 to column 64)", + " (in 'mother.stan', line 494, column 2 to column 65)", + " (in 'mother.stan', line 496, column 2 to column 49)", + " (in 'mother.stan', line 497, column 2 to column 62)", + " (in 'mother.stan', line 498, column 2 to column 60)", + " (in 'mother.stan', line 499, column 2 to column 67)", + " (in 'mother.stan', line 500, column 2 to column 76)", + " (in 'mother.stan', line 501, column 2 to column 76)", + " (in 'mother.stan', line 503, column 2 to column 54)", + " (in 'mother.stan', line 504, column 2 to column 55)", + " (in 'mother.stan', line 505, column 2 to column 66)", + " (in 'mother.stan', line 506, column 2 to column 67)", + " (in 'mother.stan', line 507, column 2 to column 72)", + " (in 'mother.stan', line 508, column 2 to column 73)", + " (in 'mother.stan', line 509, column 2 to column 72)", + " (in 'mother.stan', line 510, column 2 to column 73)", + " (in 'mother.stan', line 512, column 2 to column 54)", + " (in 'mother.stan', line 513, column 2 to column 55)", + " (in 'mother.stan', line 514, column 2 to column 66)", + " (in 'mother.stan', line 515, column 2 to column 67)", + " (in 'mother.stan', line 516, column 2 to column 72)", + " (in 'mother.stan', line 517, column 2 to column 73)", + " (in 'mother.stan', line 518, column 2 to column 72)", + " (in 'mother.stan', line 519, column 2 to column 73)", + " (in 'mother.stan', line 521, column 2 to column 61)", + " (in 'mother.stan', line 522, column 2 to column 79)", + " (in 'mother.stan', line 523, column 2 to column 88)", + " (in 'mother.stan', line 524, column 2 to column 88)", + " (in 'mother.stan', line 526, column 2 to column 46)", + " (in 'mother.stan', line 527, column 2 to column 47)", + " (in 'mother.stan', line 528, column 2 to column 62)", + " (in 'mother.stan', line 529, column 2 to column 60)", + " (in 'mother.stan', line 530, column 2 to column 58)", + " (in 'mother.stan', line 531, column 2 to column 59)", + " (in 'mother.stan', line 532, column 2 to column 64)", + " (in 'mother.stan', line 533, column 2 to column 65)", + " (in 'mother.stan', line 534, column 2 to column 64)", + " (in 'mother.stan', line 535, column 2 to column 65)", + " (in 'mother.stan', line 537, column 2 to column 46)", + " (in 'mother.stan', line 538, column 2 to column 47)", + " (in 'mother.stan', line 539, column 2 to column 58)", + " (in 'mother.stan', line 540, column 2 to column 59)", + " (in 'mother.stan', line 541, column 2 to column 64)", + " (in 'mother.stan', line 542, column 2 to column 65)", + " (in 'mother.stan', line 543, column 2 to column 64)", + " (in 'mother.stan', line 544, column 2 to column 65)", + " (in 'mother.stan', line 546, column 2 to column 49)", + " (in 'mother.stan', line 547, column 2 to column 67)", + " (in 'mother.stan', line 548, column 2 to column 76)", + " (in 'mother.stan', line 549, column 2 to column 76)", + " (in 'mother.stan', line 551, column 2 to column 26)", + " (in 'mother.stan', line 552, column 2 to column 43)", + " (in 'mother.stan', line 561, column 29 to column 30)", + " (in 'mother.stan', line 562, column 29 to column 30)", + " (in 'mother.stan', line 562, column 31 to column 32)", + " (in 'mother.stan', line 562, column 33 to column 34)", + " (in 'mother.stan', line 563, column 18 to column 19)", + " (in 'mother.stan', line 564, column 21 to column 22)", + " (in 'mother.stan', line 564, column 9 to column 10)", + " (in 'mother.stan', line 565, column 21 to column 22)", + " (in 'mother.stan', line 565, column 23 to column 24)", + " (in 'mother.stan', line 565, column 25 to column 26)", + " (in 'mother.stan', line 565, column 9 to column 10)", + " (in 'mother.stan', line 566, column 13 to column 14)", + " (in 'mother.stan', line 567, column 29 to column 30)", + " (in 'mother.stan', line 567, column 13 to column 14)", + " (in 'mother.stan', line 568, column 29 to column 30)", + " (in 'mother.stan', line 568, column 31 to column 32)", + " (in 'mother.stan', line 568, column 33 to column 34)", + " (in 'mother.stan', line 568, column 13 to column 14)", + " (in 'mother.stan', line 571, column 10 to column 11)", + " (in 'mother.stan', line 572, column 26 to column 27)", + " (in 'mother.stan', line 572, column 10 to column 11)", + " (in 'mother.stan', line 573, column 26 to column 27)", + " (in 'mother.stan', line 573, column 28 to column 29)", + " (in 'mother.stan', line 573, column 30 to column 31)", + " (in 'mother.stan', line 573, column 10 to column 11)", + " (in 'mother.stan', line 574, column 22 to column 23)", + " (in 'mother.stan', line 575, column 22 to column 23)", + " (in 'mother.stan', line 576, column 39 to column 40)", + " (in 'mother.stan', line 576, column 22 to column 23)", + " (in 'mother.stan', line 581, column 30 to column 31)", + " (in 'mother.stan', line 582, column 30 to column 31)", + " (in 'mother.stan', line 582, column 32 to column 33)", + " (in 'mother.stan', line 582, column 34 to column 35)", + " (in 'mother.stan', line 583, column 18 to column 19)", + " (in 'mother.stan', line 584, column 22 to column 23)", + " (in 'mother.stan', line 584, column 9 to column 10)", + " (in 'mother.stan', line 585, column 22 to column 23)", + " (in 'mother.stan', line 585, column 24 to column 25)", + " (in 'mother.stan', line 585, column 26 to column 27)", + " (in 'mother.stan', line 585, column 9 to column 10)", + " (in 'mother.stan', line 586, column 13 to column 14)", + " (in 'mother.stan', line 587, column 30 to column 31)", + " (in 'mother.stan', line 587, column 13 to column 14)", + " (in 'mother.stan', line 588, column 30 to column 31)", + " (in 'mother.stan', line 588, column 32 to column 33)", + " (in 'mother.stan', line 588, column 34 to column 35)", + " (in 'mother.stan', line 588, column 13 to column 14)", + " (in 'mother.stan', line 591, column 10 to column 11)", + " (in 'mother.stan', line 592, column 27 to column 28)", + " (in 'mother.stan', line 592, column 10 to column 11)", + " (in 'mother.stan', line 593, column 27 to column 28)", + " (in 'mother.stan', line 593, column 29 to column 30)", + " (in 'mother.stan', line 593, column 31 to column 32)", + " (in 'mother.stan', line 593, column 10 to column 11)", + " (in 'mother.stan', line 596, column 40 to column 41)", + " (in 'mother.stan', line 682, column 32 to column 33)", + " (in 'mother.stan', line 683, column 32 to column 33)", + " (in 'mother.stan', line 683, column 34 to column 35)", + " (in 'mother.stan', line 683, column 36 to column 37)", + " (in 'mother.stan', line 684, column 18 to column 19)", + " (in 'mother.stan', line 685, column 22 to column 23)", + " (in 'mother.stan', line 685, column 9 to column 10)", + " (in 'mother.stan', line 686, column 22 to column 23)", + " (in 'mother.stan', line 686, column 24 to column 25)", + " (in 'mother.stan', line 686, column 26 to column 27)", + " (in 'mother.stan', line 686, column 9 to column 10)", + " (in 'mother.stan', line 687, column 13 to column 14)", + " (in 'mother.stan', line 688, column 30 to column 31)", + " (in 'mother.stan', line 688, column 13 to column 14)", + " (in 'mother.stan', line 689, column 30 to column 31)", + " (in 'mother.stan', line 689, column 32 to column 33)", + " (in 'mother.stan', line 689, column 34 to column 35)", + " (in 'mother.stan', line 689, column 13 to column 14)", + " (in 'mother.stan', line 691, column 10 to column 11)", + " (in 'mother.stan', line 692, column 27 to column 28)", + " (in 'mother.stan', line 692, column 10 to column 11)", + " (in 'mother.stan', line 693, column 27 to column 28)", + " (in 'mother.stan', line 693, column 29 to column 30)", + " (in 'mother.stan', line 693, column 31 to column 32)", + " (in 'mother.stan', line 693, column 10 to column 11)", + " (in 'mother.stan', line 696, column 40 to column 41)", + " (in 'mother.stan', line 13, column 16 to column 25)", + " (in 'mother.stan', line 13, column 4 to column 25)", + " (in 'mother.stan', line 14, column 4 to column 26)", + " (in 'mother.stan', line 12, column 17 to line 15, column 3)", + " (in 'mother.stan', line 29, column 4 to column 17)", + " (in 'mother.stan', line 30, column 4 to column 19)", + " (in 'mother.stan', line 31, column 4 to column 38)", + " (in 'mother.stan', line 32, column 4 to column 16)", + " (in 'mother.stan', line 28, column 31 to line 33, column 3)", + " (in 'mother.stan', line 36, column 4 to column 15)", + " (in 'mother.stan', line 35, column 18 to line 37, column 3)", + " (in 'mother.stan', line 40, column 4 to column 15)", + " (in 'mother.stan', line 39, column 24 to line 41, column 3)", + " (in 'mother.stan', line 44, column 4 to column 15)", + " (in 'mother.stan', line 43, column 32 to line 45, column 3)", + " (in 'mother.stan', line 48, column 4 to column 15)", + " (in 'mother.stan', line 47, column 36 to line 49, column 3)", + " (in 'mother.stan', line 52, column 4 to column 15)", + " (in 'mother.stan', line 51, column 36 to line 53, column 3)", + " (in 'mother.stan', line 56, column 4 to column 15)", + " (in 'mother.stan', line 55, column 37 to line 57, column 3)", + " (in 'mother.stan', line 59, column 4 to column 33)", + " (in 'mother.stan', line 58, column 36 to line 60, column 3)", + " (in 'mother.stan', line 63, column 4 to column 42)", + " (in 'mother.stan', line 64, column 4 to column 26)", + " (in 'mother.stan', line 62, column 30 to line 65, column 3)", + " (in 'mother.stan', line 69, column 14 to column 20)", + " (in 'mother.stan', line 69, column 4 to column 20)", + " (in 'mother.stan', line 70, column 14 to column 23)", + " (in 'mother.stan', line 70, column 4 to column 23)", + " (in 'mother.stan', line 73, column 20 to column 26)", + " (in 'mother.stan', line 73, column 4 to column 26)", + " (in 'mother.stan', line 74, column 20 to column 29)", + " (in 'mother.stan', line 74, column 4 to column 29)", + " (in 'mother.stan', line 78, column 6 to column 12)", + " (in 'mother.stan', line 79, column 6 to column 12)", + " (in 'mother.stan', line 80, column 6 to column 12)", + " (in 'mother.stan', line 77, column 14 to line 81, column 5)", + " (in 'mother.stan', line 77, column 4 to line 81, column 5)", + " (in 'mother.stan', line 87, column 11 to column 17)", + " (in 'mother.stan', line 86, column 18 to column 24)", + " (in 'mother.stan', line 86, column 11 to line 87, column 17)", + " (in 'mother.stan', line 85, column 13 to column 19)", + " (in 'mother.stan', line 85, column 6 to line 87, column 17)", + " (in 'mother.stan', line 84, column 14 to line 88, column 5)", + " (in 'mother.stan', line 84, column 4 to line 88, column 5)", + " (in 'mother.stan', line 91, column 24 to column 30)", + " (in 'mother.stan', line 91, column 14 to column 30)", + " (in 'mother.stan', line 91, column 4 to column 30)", + " (in 'mother.stan', line 95, column 22 to column 28)", + " (in 'mother.stan', line 95, column 6 to column 28)", + " (in 'mother.stan', line 94, column 14 to line 96, column 5)", + " (in 'mother.stan', line 94, column 4 to line 96, column 5)", + " (in 'mother.stan', line 100, column 6 to column 19)", + " (in 'mother.stan', line 101, column 6 to column 12)", + " (in 'mother.stan', line 102, column 6 to line 105, column 7)", + " (in 'mother.stan', line 103, column 8 to column 14)", + " (in 'mother.stan', line 104, column 8 to column 14)", + " (in 'mother.stan', line 106, column 6 to line 109, column 7)", + " (in 'mother.stan', line 107, column 8 to column 14)", + " (in 'mother.stan', line 108, column 8 to column 17)", + " (in 'mother.stan', line 110, column 6 to line 116, column 7)", + " (in 'mother.stan', line 111, column 8 to line 114, column 9)", + " (in 'mother.stan', line 112, column 10 to column 16)", + " (in 'mother.stan', line 113, column 10 to column 16)", + " (in 'mother.stan', line 115, column 8 to column 14)", + " (in 'mother.stan', line 99, column 14 to line 117, column 5)", + " (in 'mother.stan', line 99, column 4 to line 117, column 5)", + " (in 'mother.stan', line 121, column 6 to column 13)", + " (in 'mother.stan', line 122, column 6 to column 21)", + " (in 'mother.stan', line 123, column 6 to line 126, column 7)", + " (in 'mother.stan', line 124, column 8 to column 14)", + " (in 'mother.stan', line 125, column 8 to column 14)", + " (in 'mother.stan', line 127, column 6 to line 130, column 7)", + " (in 'mother.stan', line 128, column 8 to column 16)", + " (in 'mother.stan', line 129, column 8 to column 17)", + " (in 'mother.stan', line 120, column 14 to line 131, column 5)", + " (in 'mother.stan', line 120, column 4 to line 131, column 5)", + " (in 'mother.stan', line 135, column 6 to column 13)", + " (in 'mother.stan', line 136, column 6 to column 19)", + " (in 'mother.stan', line 137, column 6 to line 140, column 7)", + " (in 'mother.stan', line 138, column 8 to column 14)", + " (in 'mother.stan', line 139, column 8 to column 14)", + " (in 'mother.stan', line 141, column 6 to line 144, column 7)", + " (in 'mother.stan', line 142, column 8 to column 16)", + " (in 'mother.stan', line 143, column 8 to column 17)", + " (in 'mother.stan', line 134, column 14 to line 145, column 5)", + " (in 'mother.stan', line 134, column 4 to line 145, column 5)", + " (in 'mother.stan', line 149, column 6 to column 13)", + " (in 'mother.stan', line 150, column 6 to column 23)", + " (in 'mother.stan', line 151, column 6 to line 154, column 7)", + " (in 'mother.stan', line 152, column 8 to column 14)", + " (in 'mother.stan', line 153, column 8 to column 14)", + " (in 'mother.stan', line 155, column 6 to line 158, column 7)", + " (in 'mother.stan', line 156, column 8 to column 16)", + " (in 'mother.stan', line 157, column 8 to column 17)", + " (in 'mother.stan', line 148, column 14 to line 159, column 5)", + " (in 'mother.stan', line 148, column 4 to line 159, column 5)", + " (in 'mother.stan', line 163, column 6 to column 12)", + " (in 'mother.stan', line 164, column 6 to column 12)", + " (in 'mother.stan', line 166, column 8 to column 14)", + " (in 'mother.stan', line 167, column 8 to column 14)", + " (in 'mother.stan', line 168, column 8 to column 14)", + " (in 'mother.stan', line 165, column 6 to line 169, column 7)", + " (in 'mother.stan', line 162, column 14 to line 170, column 5)", + " (in 'mother.stan', line 162, column 4 to line 170, column 5)", + " (in 'mother.stan', line 172, column 4 to column 13)", + " (in 'mother.stan', line 67, column 19 to line 173, column 3)", + " (in 'mother.stan', line 176, column 4 to column 14)", + " (in 'mother.stan', line 177, column 4 to column 10)", + " (in 'mother.stan', line 178, column 4 to column 24)", + " (in 'mother.stan', line 178, column 18 to column 24)", + " (in 'mother.stan', line 179, column 4 to column 13)", + " (in 'mother.stan', line 175, column 19 to line 180, column 3)", + " (in 'mother.stan', line 183, column 4 to column 26)", + " (in 'mother.stan', line 182, column 30 to line 184, column 3)", + " (in 'mother.stan', line 187, column 4 to column 24)", + " (in 'mother.stan', line 186, column 22 to line 188, column 3)", + " (in 'mother.stan', line 191, column 4 to column 42)", + " (in 'mother.stan', line 190, column 21 to line 192, column 3)", + " (in 'mother.stan', line 195, column 4 to column 18)", + " (in 'mother.stan', line 196, column 4 to column 19)", + " (in 'mother.stan', line 197, column 4 to column 27)", + " (in 'mother.stan', line 198, column 4 to column 40)", + " (in 'mother.stan', line 200, column 6 to column 81)", + " (in 'mother.stan', line 199, column 4 to line 200, column 81)", + " (in 'mother.stan', line 202, column 6 to column 81)", + " (in 'mother.stan', line 201, column 4 to line 202, column 81)", + " (in 'mother.stan', line 203, column 4 to column 32)", + " (in 'mother.stan', line 194, column 59 to line 204, column 3)", + " (in 'mother.stan', line 208, column 4 to column 22)", + " (in 'mother.stan', line 207, column 52 to line 209, column 3)", + " (in 'mother.stan', line 212, column 4 to column 14)", + " (in 'mother.stan', line 211, column 66 to line 213, column 3)", + " (in 'mother.stan', line 215, column 4 to column 14)", + " (in 'mother.stan', line 214, column 78 to line 216, column 3)", + " (in 'mother.stan', line 219, column 11 to column 20)", + " (in 'mother.stan', line 219, column 22 to column 31)", + " (in 'mother.stan', line 219, column 4 to column 35)", + " (in 'mother.stan', line 220, column 4 to column 12)", + " (in 'mother.stan', line 221, column 4 to column 16)", + " (in 'mother.stan', line 222, column 4 to column 20)", + " (in 'mother.stan', line 223, column 4 to column 13)", + " (in 'mother.stan', line 218, column 49 to line 224, column 3)", + " (in 'mother.stan', line 226, column 4 to column 16)", + " (in 'mother.stan', line 225, column 150 to line 227, column 3)", + " (in 'mother.stan', line 230, column 4 to column 14)", + " (in 'mother.stan', line 229, column 149 to line 231, column 3)", + " (in 'mother.stan', line 234, column 4 to column 14)", + " (in 'mother.stan', line 233, column 151 to line 235, column 3)", + " (in 'mother.stan', line 238, column 4 to column 14)", + " (in 'mother.stan', line 237, column 152 to line 239, column 3)", + " (in 'mother.stan', line 242, column 4 to column 14)", + " (in 'mother.stan', line 241, column 150 to line 243, column 3)", + " (in 'mother.stan', line 246, column 4 to column 14)", + " (in 'mother.stan', line 245, column 152 to line 247, column 3)", + " (in 'mother.stan', line 250, column 4 to column 14)", + " (in 'mother.stan', line 249, column 153 to line 251, column 3)", + " (in 'mother.stan', line 254, column 4 to column 14)", + " (in 'mother.stan', line 253, column 152 to line 255, column 3)", + " (in 'mother.stan', line 258, column 4 to column 14)", + " (in 'mother.stan', line 257, column 154 to line 259, column 3)", + " (in 'mother.stan', line 262, column 4 to column 14)", + " (in 'mother.stan', line 261, column 155 to line 263, column 3)", + " (in 'mother.stan', line 266, column 4 to column 15)", + " (in 'mother.stan', line 265, column 153 to line 267, column 3)", + " (in 'mother.stan', line 270, column 4 to column 15)", + " (in 'mother.stan', line 269, column 155 to line 271, column 3)", + " (in 'mother.stan', line 274, column 4 to column 15)", + " (in 'mother.stan', line 273, column 156 to line 275, column 3)", + " (in 'mother.stan', line 277, column 4 to column 10)", + " (in 'mother.stan', line 278, column 4 to column 11)", + " (in 'mother.stan', line 279, column 4 to column 18)", + " (in 'mother.stan', line 280, column 4 to column 32)", + " (in 'mother.stan', line 281, column 4 to column 24)", + " (in 'mother.stan', line 276, column 14 to line 282, column 3)", + " (in 'mother.stan', line 284, column 4 to line 286, column 40)", + " (in 'mother.stan', line 283, column 18 to line 287, column 3)", + " (in 'mother.stan', line 289, column 4 to column 35)", + " (in 'mother.stan', line 288, column 18 to line 290, column 3)", + " (in 'mother.stan', line 292, column 4 to column 33)", + " (in 'mother.stan', line 293, column 4 to column 13)", + " (in 'mother.stan', line 291, column 27 to line 294, column 3)", + " (in 'mother.stan', line 296, column 4 to column 48)", + " (in 'mother.stan', line 297, column 4 to column 26)", + " (in 'mother.stan', line 295, column 27 to line 298, column 3)", + " (in 'mother.stan', line 303, column 4 to column 18)", + " (in 'mother.stan', line 304, column 4 to column 25)", + " (in 'mother.stan', line 305, column 4 to column 25)", + " (in 'mother.stan', line 306, column 4 to column 15)", + " (in 'mother.stan', line 302, column 39 to line 307, column 3)", + " (in 'mother.stan', line 310, column 4 to column 19)", + " (in 'mother.stan', line 311, column 4 to column 18)", + " (in 'mother.stan', line 312, column 4 to column 16)", + " (in 'mother.stan', line 309, column 78 to line 313, column 3)"}; + +int +foo(const int& n, std::ostream* pstream__) ; +int +foo(const int& n, std::ostream* pstream__) ; + +struct foo_functor__ { +int +operator()(const int& n, std::ostream* pstream__) const +{ +return foo(n, pstream__); +} +}; + +template +std::vector> +sho(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) ; +template +std::vector> +sho(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) ; + +struct sho_functor__ { +template +std::vector> +operator()(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) const +{ +return sho(t, y, theta, x, x_int, pstream__); +} +}; + +double +foo_bar0(std::ostream* pstream__) ; + +struct foo_bar0_functor__ { +double +operator()(std::ostream* pstream__) const +{ +return foo_bar0(pstream__); +} +}; + +template +stan::promote_args_t +foo_bar1(const T0__& x, std::ostream* pstream__) ; + +struct foo_bar1_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return foo_bar1(x, pstream__); +} +}; + +template +stan::promote_args_t +foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) ; + +struct foo_bar2_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const +{ +return foo_bar2(x, y, pstream__); +} +}; + +template +stan::promote_args_t +foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) ; + +struct foo_lpmf_functor__ { +template +stan::promote_args_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +{ +return foo_lpmf(y, lambda, pstream__); +} +}; + +template +stan::promote_args_t +foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) ; + +struct foo_lcdf_functor__ { +template +stan::promote_args_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +{ +return foo_lcdf(y, lambda, pstream__); +} +}; + +template +stan::promote_args_t +foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) ; + +struct foo_lccdf_functor__ { +template +stan::promote_args_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +{ +return foo_lccdf(y, lambda, pstream__); +} +}; + +template +stan::promote_args_t +foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) ; + +struct foo_rng_functor__ { +template +stan::promote_args_t +operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) const +{ +return foo_rng(mu, sigma, pstream__); +} +}; + +template +void +unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +struct unit_normal_lp_functor__ { +template +void +operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return unit_normal_lp(u, pstream__); +} +}; + +int +foo_1(const int& a, std::ostream* pstream__) ; + +struct foo_1_functor__ { +int +operator()(const int& a, std::ostream* pstream__) const +{ +return foo_1(a, pstream__); +} +}; + +int +foo_2(const int& a, std::ostream* pstream__) ; + +struct foo_2_functor__ { +int +operator()(const int& a, std::ostream* pstream__) const +{ +return foo_2(a, pstream__); +} +}; + +template +std::vector> +foo_3(const T0__& t, const int& n, std::ostream* pstream__) ; + +struct foo_3_functor__ { +template +std::vector> +operator()(const T0__& t, const int& n, std::ostream* pstream__) const +{ +return foo_3(t, n, pstream__); +} +}; + +template +stan::promote_args_t +foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +struct foo_lp_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const +{ +return foo_lp(x, pstream__); +} +}; + +template +void +foo_4(const T0__& x, std::ostream* pstream__) ; + +struct foo_4_functor__ { +template +void +operator()(const T0__& x, std::ostream* pstream__) const +{ +return foo_4(x, pstream__); +} +}; + +template +stan::promote_args_t +relative_diff(const T0__& x, const T1__& y, const T2__& max_, + const T3__& min_, std::ostream* pstream__) ; + +struct relative_diff_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, const T1__& y, const T2__& max_, const T3__& min_, + std::ostream* pstream__) const +{ +return relative_diff(x, y, max_, min_, pstream__); +} +}; + +template +Eigen::Matrix, +stan::value_type_t>, -1, 1> +foo_5(const T0__& shared_params, const T1__& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) ; + +struct foo_5_functor__ { +template +Eigen::Matrix, +stan::value_type_t>, -1, 1> +operator()(const T0__& shared_params, const T1__& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) const +{ +return foo_5(shared_params, job_params, data_r, data_i, pstream__); +} +}; + +template +stan::promote_args_t +foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, + const T4__& x5, std::ostream* pstream__) ; + +struct foo_five_args_functor__ { +template +stan::promote_args_t +operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, + const T4__& x5, std::ostream* pstream__) const +{ +return foo_five_args(x1, x2, x3, x4, x5, pstream__); +} +}; + +template +stan::promote_args_t> +foo_five_args_lp(const T0__& x1, const T1__& x2, const T2__& x3, + const T3__& x4, const T4__& x5, const T5__& x6, + T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +struct foo_five_args_lp_functor__ { +template +stan::promote_args_t> +operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, + const T4__& x5, const T5__& x6, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) const +{ +return foo_five_args_lp(x1, x2, x3, x4, x5, x6, pstream__); +} +}; + +template +Eigen::Matrix>, -1, -1> +covsqrt2corsqrt(const T0__& mat, const int& invert, std::ostream* pstream__) ; + +struct covsqrt2corsqrt_functor__ { +template +Eigen::Matrix>, -1, -1> +operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const +{ +return covsqrt2corsqrt(mat, invert, pstream__); +} +}; + +template +void +f0(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f0_functor__ { +template +void +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f0(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; + +template +int +f1(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f1_functor__ { +template +int +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f1(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; + +template +std::vector +f2(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } +struct f2_functor__ { +template +std::vector +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f2(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } +template +std::vector> +f3(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } +struct f3_functor__ { +template +std::vector> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f3(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; +template +stan::promote_args_t, +T7__, stan::promote_args_t, T10__, +T11__>> +f4(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } +struct f4_functor__ { +template +stan::promote_args_t, +T7__, stan::promote_args_t, T10__, +T11__>> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f4(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; + +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>> +f5(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f5_functor__ { +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f5(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; + +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>>> +f6(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f6_functor__ { +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>>> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f6(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; + +template +Eigen::Matrix, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1> +f7(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f7_functor__ { +template +Eigen::Matrix, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f7(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1>> +f8(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f8_functor__ { +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1>> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f8(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} }; + +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1>>> +f9(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f9_functor__ { +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1>>> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f9(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); } -using stan_model = param_constraint_model_namespace::param_constraint_model; +}; -#ifndef USING_R +template +Eigen::Matrix, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1> +f10(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; +struct f10_functor__ { +template +Eigen::Matrix, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); } +}; -stan::math::profile_map& get_stan_profile_data() { - return param_constraint_model_namespace::profiles__; +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1>> +f11(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f11_functor__ { +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1>> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f11(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); } +}; -#endif +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1>>> +f12(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) ; + +struct f12_functor__ { +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1>>> +operator()(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, + const std::vector>& a6, const T6__& a7, + const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) const +{ +return f12(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); +} +}; +void +foo_6(std::ostream* pstream__) ; +struct foo_6_functor__ { +void +operator()(std::ostream* pstream__) const +{ +return foo_6(pstream__); +} +}; - $ ../../../../../install/default/bin/stanc --print-cpp reduce_sum_m1.stan +Eigen::Matrix +matfoo(std::ostream* pstream__) ; -// Code generated by %%NAME%% %%VERSION%% -#include -namespace reduce_sum_m1_model_namespace { +struct matfoo_functor__ { +Eigen::Matrix +operator()(std::ostream* pstream__) const +{ +return matfoo(pstream__); +} +}; -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; +Eigen::Matrix +vecfoo(std::ostream* pstream__) ; +struct vecfoo_functor__ { +Eigen::Matrix +operator()(std::ostream* pstream__) const +{ +return vecfoo(pstream__); +} +}; -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'reduce_sum_m1.stan', line 26, column 2 to column 13)", - " (in 'reduce_sum_m1.stan', line 27, column 2 to column 13)", - " (in 'reduce_sum_m1.stan', line 28, column 2 to column 13)", - " (in 'reduce_sum_m1.stan', line 32, column 2 to column 33)", - " (in 'reduce_sum_m1.stan', line 33, column 2 to column 37)", - " (in 'reduce_sum_m1.stan', line 34, column 2 to column 40)", - " (in 'reduce_sum_m1.stan', line 35, column 2 to column 41)", - " (in 'reduce_sum_m1.stan', line 22, column 2 to column 14)", - " (in 'reduce_sum_m1.stan', line 26, column 10 to column 11)", - " (in 'reduce_sum_m1.stan', line 27, column 10 to column 11)", - " (in 'reduce_sum_m1.stan', line 28, column 10 to column 11)", - " (in 'reduce_sum_m1.stan', line 6, column 6 to column 41)", - " (in 'reduce_sum_m1.stan', line 5, column 11 to line 7, column 5)", - " (in 'reduce_sum_m1.stan', line 4, column 6 to column 39)", - " (in 'reduce_sum_m1.stan', line 3, column 26 to line 5, column 5)", - " (in 'reduce_sum_m1.stan', line 3, column 4 to line 7, column 5)", - " (in 'reduce_sum_m1.stan', line 2, column 45 to line 8, column 3)", - " (in 'reduce_sum_m1.stan', line 13, column 6 to column 35)", - " (in 'reduce_sum_m1.stan', line 12, column 11 to line 14, column 5)", - " (in 'reduce_sum_m1.stan', line 11, column 6 to column 53)", - " (in 'reduce_sum_m1.stan', line 10, column 20 to line 12, column 5)", - " (in 'reduce_sum_m1.stan', line 10, column 4 to line 14, column 5)", - " (in 'reduce_sum_m1.stan', line 9, column 55 to line 15, column 3)", - " (in 'reduce_sum_m1.stan', line 17, column 4 to column 38)", - " (in 'reduce_sum_m1.stan', line 16, column 52 to line 18, column 3)"}; -struct g_rsfunctor__; -struct h_rsfunctor__; -template -struct foo_lpdf_rsfunctor__; template -stan::promote_args_t -g(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) ; +Eigen::Matrix, -1, 1> +vecmufoo(const T0__& mu, std::ostream* pstream__) ; -struct g_rsfunctor__ { +struct vecmufoo_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +Eigen::Matrix, -1, 1> +operator()(const T0__& mu, std::ostream* pstream__) const { -return g(y_slice, start + 1, end + 1, pstream__); +return vecmufoo(mu, pstream__); } }; +template +Eigen::Matrix, -1, 1> +vecmubar(const T0__& mu, std::ostream* pstream__) ; -struct g_functor__ { +struct vecmubar_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +Eigen::Matrix, -1, 1> +operator()(const T0__& mu, std::ostream* pstream__) const { -return g(y_slice, start, end, pstream__); +return vecmubar(mu, pstream__); } }; -template -stan::promote_args_t -h(const std::vector& y_slice, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) ; +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +algebra_system(const T0__& x, const T1__& y, const std::vector& dat, + const std::vector& dat_int, std::ostream* pstream__) ; -struct h_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +struct algebra_system_functor__ { +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +operator()(const T0__& x, const T1__& y, const std::vector& dat, + const std::vector& dat_int, std::ostream* pstream__) const { -return h(y_slice, start + 1, end + 1, a, pstream__); +return algebra_system(x, y, dat, dat_int, pstream__); } }; +template +Eigen::Matrix, +stan::value_type_t>, -1, 1> +binomialf(const T0__& phi, const T1__& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) ; -struct h_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, +struct binomialf_functor__ { +template +Eigen::Matrix, +stan::value_type_t>, -1, 1> +operator()(const T0__& phi, const T1__& theta, + const std::vector& x_r, const std::vector& x_i, std::ostream* pstream__) const { -return h(y_slice, start, end, a, pstream__); +return binomialf(phi, theta, x_r, x_i, pstream__); +} +}; + +int +foo(const int& n, std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 593; + if (logical_eq(n, 0)) { + current_statement__ = 592; + return 1; + } + current_statement__ = 594; + return (n * foo((n - 1), pstream__)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -foo_lpdf(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) ; - -template -struct foo_lpdf_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return foo_lpdf(y_slice, start + 1, end + 1, pstream__); +template +std::vector> +sho(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + std::vector dydt; + dydt = std::vector(2, DUMMY_VAR__); + + current_statement__ = 597; + assign(dydt, rvalue(y, "y", index_uni(2)), + "assigning variable dydt", index_uni(1)); + current_statement__ = 598; + assign(dydt, + (-rvalue(y, "y", index_uni(1)) - + (rvalue(theta, "theta", index_uni(1)) * rvalue(y, "y", index_uni(2)))), + "assigning variable dydt", index_uni(2)); + current_statement__ = 599; + return dydt; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct foo_lpdf_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return foo_lpdf(y_slice, start, end, pstream__); +double +foo_bar0(std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 601; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - template stan::promote_args_t -g(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { +foo_bar1(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -25814,14 +3499,8 @@ g(const std::vector& y_slice, const int& start, const int& end, local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 16; - if (logical_gt(size(y_slice), 1)) { - current_statement__ = 14; - return reduce_sum(y_slice, 1, pstream__); - } else { - current_statement__ = 12; - return normal_lpdf(y_slice, 0, 1); - } + current_statement__ = 603; + return 1.0; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -25829,27 +3508,19 @@ g(const std::vector& y_slice, const int& start, const int& end, } } -template +template stan::promote_args_t -h(const std::vector& y_slice, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +T1__> +foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 22; - if (logical_gt(size(a), 1)) { - current_statement__ = 20; - return reduce_sum(y_slice, 1, pstream__, - rvalue(a, "a", index_min_max(start, end))); - } else { - current_statement__ = 18; - return normal_lpdf(a, 0, 1); - } + current_statement__ = 605; + return 2.0; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -25857,17 +3528,16 @@ h(const std::vector& y_slice, const int& start, const int& end, } } -template -stan::promote_args_t -foo_lpdf(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +stan::promote_args_t +foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 24; - return normal_lpdf(y_slice, 0, 1); + current_statement__ = 607; + return 1.0; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -25875,2862 +3545,7047 @@ foo_lpdf(const std::vector& y_slice, const int& start, const int& end, } } -class reduce_sum_m1_model final : public model_base_crtp { - - private: - int N; - - - public: - ~reduce_sum_m1_model() { } +template +stan::promote_args_t +foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 609; + return 1.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } - inline std::string model_name() const final { return "reduce_sum_m1_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; +} +template +stan::promote_args_t +foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 611; + return 1.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } +} +template +stan::promote_args_t +foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 613; + return normal_rng(mu, sigma, base_rng__); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } - reduce_sum_m1_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m1_model_namespace::reduce_sum_m1_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 8; - N = std::numeric_limits::min(); - - current_statement__ = 8; - N = 100; - current_statement__ = 9; - validate_non_negative_index("y1", "N", N); - current_statement__ = 10; - validate_non_negative_index("y2", "N", N); - current_statement__ = 11; - validate_non_negative_index("y3", "N", N); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); +} +template +void +unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 615; + lp_accum__.add(normal_log(u, 0, 1)); + current_statement__ = 616; + lp_accum__.add(uniform_lpdf(u, -100, 100)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = N + N + N; - } - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m1_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - std::vector y1; - y1 = std::vector(N, DUMMY_VAR__); - - current_statement__ = 1; - y1 = in__.template read>(N); - std::vector y2; - y2 = std::vector(N, DUMMY_VAR__); - - current_statement__ = 2; - y2 = in__.template read>(N); - std::vector y3; - y3 = std::vector(N, DUMMY_VAR__); +} +int +foo_1(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 619; + while (1) { + break; + } + current_statement__ = 621; + while (0) { + continue; + } + current_statement__ = 623; + for (int i = 1; i <= 10; ++i) { break;} + current_statement__ = 625; + for (int i = 1; i <= 10; ++i) { continue;} + current_statement__ = 630; + while (1) { + int b; + b = std::numeric_limits::min(); - current_statement__ = 3; - y3 = in__.template read>(N); - { - current_statement__ = 4; - lp_accum__.add(reduce_sum(y1, 1, pstream__)); - current_statement__ = 5; - lp_accum__.add(reduce_sum(y2, 1, pstream__, y2)); - current_statement__ = 6; - lp_accum__.add( - reduce_sum>(y3, 1, pstream__)); - current_statement__ = 7; - lp_accum__.add( - reduce_sum>(y3, 1, pstream__)); + current_statement__ = 627; + b = 5; + break; + } + current_statement__ = 637; + while (1) { + current_statement__ = 635; + if (0) { + break; + } else { + current_statement__ = 633; + if (1) { + break; + } else { + break; + } } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m1_model_namespace::write_array"; - (void) function__; // suppress unused var warning - - try { - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + current_statement__ = 640; + while (1) { + current_statement__ = 639; + while (0) { + break; + } + } + current_statement__ = 644; + while (1) { + current_statement__ = 642; + for (int i = 1; i <= 10; ++i) { break;} + } + current_statement__ = 659; + while (1) { + std::vector> vs; + vs = std::vector>(2, std::vector(3, std::numeric_limits::min())); - current_statement__ = 1; - y1 = in__.template read>(N); - std::vector y2; - y2 = std::vector(N, std::numeric_limits::quiet_NaN()); - current_statement__ = 2; - y2 = in__.template read>(N); - std::vector y3; - y3 = std::vector(N, std::numeric_limits::quiet_NaN()); + int z; + z = std::numeric_limits::min(); - current_statement__ = 3; - y3 = in__.template read>(N); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]); + current_statement__ = 647; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + std::vector v; + current_statement__ = 647; + assign(v, vs[(sym1__ - 1)], "assigning variable v"); + current_statement__ = 648; + z = 0; + break; + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y2[(sym1__ - 1)]); + current_statement__ = 650; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + std::vector v; + current_statement__ = 650; + assign(v, vs[(sym1__ - 1)], "assigning variable v"); + current_statement__ = 651; + z = 0; + continue; + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y3[(sym1__ - 1)]); + current_statement__ = 653; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + std::vector v; + current_statement__ = 653; + assign(v, vs[(sym1__ - 1)], "assigning variable v"); + current_statement__ = 654; + for (int sym1__ = 1; sym1__ <= stan::math::size(v); ++sym1__) { + { + int vv; + current_statement__ = 654; + vv = v[(sym1__ - 1)]; + current_statement__ = 655; + z = 0; + break; + } + } + current_statement__ = 657; + z = 1; + } } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - y1 = context__.vals_r("y1"); - std::vector y2; - y2 = std::vector(N, std::numeric_limits::quiet_NaN()); + current_statement__ = 669; + while (1) { + local_scalar_t__ z; + z = DUMMY_VAR__; - current_statement__ = 2; - y2 = context__.vals_r("y2"); - std::vector y3; - y3 = std::vector(N, std::numeric_limits::quiet_NaN()); + Eigen::Matrix vs; + vs = Eigen::Matrix(2, 3); + stan::math::fill(vs, DUMMY_VAR__); - current_statement__ = 3; - y3 = context__.vals_r("y3"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y2[(sym1__ - 1)]); + current_statement__ = 662; + for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { + current_statement__ = 662; + for (int sym2__ = 1; + sym2__ <= stan::math::size(rvalue(vs, "vs", index_uni(sym1__))); + ++sym2__) { + { + local_scalar_t__ v; + current_statement__ = 662; + v = rvalue(vs, "vs", index_uni(sym1__), index_uni(sym2__)); + current_statement__ = 663; + z = 0; + break; + } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y3[(sym1__ - 1)]); + current_statement__ = 665; + for (int sym1__ = 1; sym1__ <= rows(vs); ++sym1__) { + current_statement__ = 665; + for (int sym2__ = 1; + sym2__ <= stan::math::size(rvalue(vs, "vs", index_uni(sym1__))); + ++sym2__) { + { + local_scalar_t__ v; + current_statement__ = 665; + v = rvalue(vs, "vs", index_uni(sym1__), index_uni(sym2__)); + current_statement__ = 666; + z = 3.1; + continue; + } + } } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"y1", "y2", "y3"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{ - static_cast(N) - }, - std::vector{static_cast(N)}, - std::vector{static_cast(N)}}; - - } // get_dims() - - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); - } } - if (emit_transformed_parameters__) { + current_statement__ = 679; + while (1) { + local_scalar_t__ z; + z = DUMMY_VAR__; - } - - if (emit_generated_quantities__) { + Eigen::Matrix vs; + vs = Eigen::Matrix(2); + stan::math::fill(vs, DUMMY_VAR__); + current_statement__ = 672; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 672; + v = vs[(sym1__ - 1)]; + current_statement__ = 673; + z = 0; + break; + } + } + current_statement__ = 675; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 675; + v = vs[(sym1__ - 1)]; + current_statement__ = 676; + z = 3.2; + continue; + } + } } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { + current_statement__ = 689; + while (1) { + local_scalar_t__ z; + z = DUMMY_VAR__; + + Eigen::Matrix vs; + vs = Eigen::Matrix(2); + stan::math::fill(vs, DUMMY_VAR__); + current_statement__ = 682; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 682; + v = vs[(sym1__ - 1)]; + current_statement__ = 683; + z = 0; + break; + } + } + current_statement__ = 685; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + local_scalar_t__ v; + current_statement__ = 685; + v = vs[(sym1__ - 1)]; + current_statement__ = 686; + z = 3.3; + continue; + } + } } - - if (emit_generated_quantities__) { + current_statement__ = 697; + while (1) { + int b; + b = std::numeric_limits::min(); + current_statement__ = 691; + b = 5; + { + int c; + c = std::numeric_limits::min(); + + current_statement__ = 693; + c = 6; + break; + } } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); - - } // get_unconstrained_sizedtypes() - + current_statement__ = 698; + return 0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = reduce_sum_m1_model_namespace::reduce_sum_m1_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return reduce_sum_m1_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp reduce_sum_m2.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace reduce_sum_m2_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'reduce_sum_m2.stan', line 130, column 2 to column 24)", - " (in 'reduce_sum_m2.stan', line 131, column 2 to column 25)", - " (in 'reduce_sum_m2.stan', line 132, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 133, column 2 to column 16)", - " (in 'reduce_sum_m2.stan', line 134, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 135, column 2 to column 22)", - " (in 'reduce_sum_m2.stan', line 136, column 2 to column 18)", - " (in 'reduce_sum_m2.stan', line 137, column 2 to column 13)", - " (in 'reduce_sum_m2.stan', line 139, column 2 to column 24)", - " (in 'reduce_sum_m2.stan', line 140, column 2 to column 25)", - " (in 'reduce_sum_m2.stan', line 141, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 142, column 2 to column 16)", - " (in 'reduce_sum_m2.stan', line 143, column 2 to column 21)", - " (in 'reduce_sum_m2.stan', line 144, column 2 to column 22)", - " (in 'reduce_sum_m2.stan', line 145, column 2 to column 18)", - " (in 'reduce_sum_m2.stan', line 146, column 2 to column 13)", - " (in 'reduce_sum_m2.stan', line 150, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 151, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 152, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 153, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 154, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 155, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 156, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 157, column 2 to column 37)", - " (in 'reduce_sum_m2.stan', line 159, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 160, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 161, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 162, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 163, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 164, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 165, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 166, column 2 to column 34)", - " (in 'reduce_sum_m2.stan', line 125, column 2 to column 12)", - " (in 'reduce_sum_m2.stan', line 126, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 126, column 2 to column 12)", - " (in 'reduce_sum_m2.stan', line 130, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 130, column 21 to column 22)", - " (in 'reduce_sum_m2.stan', line 130, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 130, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 131, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 131, column 22 to column 23)", - " (in 'reduce_sum_m2.stan', line 131, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 132, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 132, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 132, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 133, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 133, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 134, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 134, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 134, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 135, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 135, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 136, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 136, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 137, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 139, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 139, column 21 to column 22)", - " (in 'reduce_sum_m2.stan', line 139, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 139, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 140, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 140, column 22 to column 23)", - " (in 'reduce_sum_m2.stan', line 140, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 141, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 141, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 141, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 142, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 142, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 143, column 18 to column 19)", - " (in 'reduce_sum_m2.stan', line 143, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 143, column 12 to column 13)", - " (in 'reduce_sum_m2.stan', line 144, column 19 to column 20)", - " (in 'reduce_sum_m2.stan', line 144, column 13 to column 14)", - " (in 'reduce_sum_m2.stan', line 145, column 15 to column 16)", - " (in 'reduce_sum_m2.stan', line 145, column 9 to column 10)", - " (in 'reduce_sum_m2.stan', line 146, column 10 to column 11)", - " (in 'reduce_sum_m2.stan', line 3, column 4 to column 39)", - " (in 'reduce_sum_m2.stan', line 2, column 46 to line 4, column 3)", - " (in 'reduce_sum_m2.stan', line 6, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 8, column 6 to column 49)", - " (in 'reduce_sum_m2.stan', line 7, column 30 to line 9, column 5)", - " (in 'reduce_sum_m2.stan', line 7, column 4 to line 9, column 5)", - " (in 'reduce_sum_m2.stan', line 10, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 5, column 48 to line 11, column 3)", - " (in 'reduce_sum_m2.stan', line 13, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 15, column 6 to column 49)", - " (in 'reduce_sum_m2.stan', line 14, column 30 to line 16, column 5)", - " (in 'reduce_sum_m2.stan', line 14, column 4 to line 16, column 5)", - " (in 'reduce_sum_m2.stan', line 17, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 12, column 52 to line 18, column 3)", - " (in 'reduce_sum_m2.stan', line 20, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 22, column 6 to column 60)", - " (in 'reduce_sum_m2.stan', line 21, column 30 to line 23, column 5)", - " (in 'reduce_sum_m2.stan', line 21, column 4 to line 23, column 5)", - " (in 'reduce_sum_m2.stan', line 24, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 19, column 48 to line 25, column 3)", - " (in 'reduce_sum_m2.stan', line 27, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 30, column 8 to column 54)", - " (in 'reduce_sum_m2.stan', line 29, column 35 to line 31, column 7)", - " (in 'reduce_sum_m2.stan', line 29, column 6 to line 31, column 7)", - " (in 'reduce_sum_m2.stan', line 28, column 30 to line 32, column 5)", - " (in 'reduce_sum_m2.stan', line 28, column 4 to line 32, column 5)", - " (in 'reduce_sum_m2.stan', line 33, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 26, column 47 to line 34, column 3)", - " (in 'reduce_sum_m2.stan', line 36, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 39, column 8 to column 65)", - " (in 'reduce_sum_m2.stan', line 38, column 35 to line 40, column 7)", - " (in 'reduce_sum_m2.stan', line 38, column 6 to line 40, column 7)", - " (in 'reduce_sum_m2.stan', line 37, column 30 to line 41, column 5)", - " (in 'reduce_sum_m2.stan', line 37, column 4 to line 41, column 5)", - " (in 'reduce_sum_m2.stan', line 42, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 35, column 49 to line 43, column 3)", - " (in 'reduce_sum_m2.stan', line 45, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 48, column 8 to column 65)", - " (in 'reduce_sum_m2.stan', line 47, column 35 to line 49, column 7)", - " (in 'reduce_sum_m2.stan', line 47, column 6 to line 49, column 7)", - " (in 'reduce_sum_m2.stan', line 46, column 30 to line 50, column 5)", - " (in 'reduce_sum_m2.stan', line 46, column 4 to line 50, column 5)", - " (in 'reduce_sum_m2.stan', line 51, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 44, column 53 to line 52, column 3)", - " (in 'reduce_sum_m2.stan', line 54, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 57, column 8 to column 65)", - " (in 'reduce_sum_m2.stan', line 56, column 35 to line 58, column 7)", - " (in 'reduce_sum_m2.stan', line 56, column 6 to line 58, column 7)", - " (in 'reduce_sum_m2.stan', line 55, column 30 to line 59, column 5)", - " (in 'reduce_sum_m2.stan', line 55, column 4 to line 59, column 5)", - " (in 'reduce_sum_m2.stan', line 60, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 53, column 49 to line 61, column 3)", - " (in 'reduce_sum_m2.stan', line 63, column 4 to column 44)", - " (in 'reduce_sum_m2.stan', line 62, column 50 to line 64, column 3)", - " (in 'reduce_sum_m2.stan', line 66, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 68, column 6 to column 43)", - " (in 'reduce_sum_m2.stan', line 67, column 24 to line 69, column 5)", - " (in 'reduce_sum_m2.stan', line 67, column 4 to line 69, column 5)", - " (in 'reduce_sum_m2.stan', line 70, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 65, column 52 to line 71, column 3)", - " (in 'reduce_sum_m2.stan', line 73, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 75, column 6 to column 43)", - " (in 'reduce_sum_m2.stan', line 74, column 24 to line 76, column 5)", - " (in 'reduce_sum_m2.stan', line 74, column 4 to line 76, column 5)", - " (in 'reduce_sum_m2.stan', line 77, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 72, column 56 to line 78, column 3)", - " (in 'reduce_sum_m2.stan', line 80, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 82, column 6 to column 54)", - " (in 'reduce_sum_m2.stan', line 81, column 24 to line 83, column 5)", - " (in 'reduce_sum_m2.stan', line 81, column 4 to line 83, column 5)", - " (in 'reduce_sum_m2.stan', line 84, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 79, column 52 to line 85, column 3)", - " (in 'reduce_sum_m2.stan', line 87, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 90, column 8 to column 48)", - " (in 'reduce_sum_m2.stan', line 89, column 29 to line 91, column 7)", - " (in 'reduce_sum_m2.stan', line 89, column 6 to line 91, column 7)", - " (in 'reduce_sum_m2.stan', line 88, column 24 to line 92, column 5)", - " (in 'reduce_sum_m2.stan', line 88, column 4 to line 92, column 5)", - " (in 'reduce_sum_m2.stan', line 93, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 86, column 51 to line 94, column 3)", - " (in 'reduce_sum_m2.stan', line 96, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 99, column 8 to column 59)", - " (in 'reduce_sum_m2.stan', line 98, column 29 to line 100, column 7)", - " (in 'reduce_sum_m2.stan', line 98, column 6 to line 100, column 7)", - " (in 'reduce_sum_m2.stan', line 97, column 24 to line 101, column 5)", - " (in 'reduce_sum_m2.stan', line 97, column 4 to line 101, column 5)", - " (in 'reduce_sum_m2.stan', line 102, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 95, column 53 to line 103, column 3)", - " (in 'reduce_sum_m2.stan', line 105, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 108, column 8 to column 59)", - " (in 'reduce_sum_m2.stan', line 107, column 29 to line 109, column 7)", - " (in 'reduce_sum_m2.stan', line 107, column 6 to line 109, column 7)", - " (in 'reduce_sum_m2.stan', line 106, column 24 to line 110, column 5)", - " (in 'reduce_sum_m2.stan', line 106, column 4 to line 110, column 5)", - " (in 'reduce_sum_m2.stan', line 111, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 104, column 57 to line 112, column 3)", - " (in 'reduce_sum_m2.stan', line 114, column 4 to column 24)", - " (in 'reduce_sum_m2.stan', line 117, column 8 to column 59)", - " (in 'reduce_sum_m2.stan', line 116, column 29 to line 118, column 7)", - " (in 'reduce_sum_m2.stan', line 116, column 6 to line 118, column 7)", - " (in 'reduce_sum_m2.stan', line 115, column 24 to line 119, column 5)", - " (in 'reduce_sum_m2.stan', line 115, column 4 to line 119, column 5)", - " (in 'reduce_sum_m2.stan', line 120, column 4 to column 20)", - " (in 'reduce_sum_m2.stan', line 113, column 53 to line 121, column 3)"}; -struct g1_rsfunctor__; -struct g2_rsfunctor__; -struct g3_rsfunctor__; -struct g4_rsfunctor__; -struct g5_rsfunctor__; -struct g6_rsfunctor__; -struct g7_rsfunctor__; -struct g8_rsfunctor__; -struct h1_rsfunctor__; -struct h2_rsfunctor__; -struct h3_rsfunctor__; -struct h4_rsfunctor__; -struct h5_rsfunctor__; -struct h6_rsfunctor__; -struct h7_rsfunctor__; -struct h8_rsfunctor__; -template -stan::promote_args_t -g1(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) ; - -struct g1_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g1(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct g1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g1(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -g2(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct g2_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g2(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct g2_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g2(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -g3(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct g3_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g3(y_slice, start + 1, end + 1, pstream__); } -}; - - -struct g3_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g3(y_slice, start, end, pstream__); +int +foo_2(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + std::vector vs; + vs = std::vector(2, std::numeric_limits::min()); + + int y; + y = std::numeric_limits::min(); + + current_statement__ = 702; + for (int sym1__ = 1; sym1__ <= stan::math::size(vs); ++sym1__) { + { + int v; + current_statement__ = 702; + v = vs[(sym1__ - 1)]; + current_statement__ = 703; + y = v; + } + } + current_statement__ = 704; + return 0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -g4(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct g4_rsfunctor__ { template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g4(y_slice, start + 1, end + 1, pstream__); +std::vector> +foo_3(const T0__& t, const int& n, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 706; + return rep_array(t, n); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct g4_functor__ { -template +template stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g4(y_slice, start, end, pstream__); +foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 708; + return (x + get_lp(lp__, lp_accum__)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -g5(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct g5_rsfunctor__ { template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g5(y_slice, start + 1, end + 1, pstream__); +void +foo_4(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 710; + std::stringstream errmsg_stream__; + errmsg_stream__ << "user-specified rejection"; + errmsg_stream__ << x; + throw std::domain_error(errmsg_stream__.str()); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct g5_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return g5(y_slice, start, end, pstream__); +template +stan::promote_args_t +relative_diff(const T0__& x, const T1__& y, const T2__& max_, + const T3__& min_, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ abs_diff; + abs_diff = DUMMY_VAR__; + + local_scalar_t__ avg_scale; + avg_scale = DUMMY_VAR__; + + current_statement__ = 714; + abs_diff = stan::math::fabs((x - y)); + current_statement__ = 715; + avg_scale = ((stan::math::fabs(x) + stan::math::fabs(y)) / 2); + current_statement__ = 717; + if (logical_gt((abs_diff / avg_scale), max_)) { + current_statement__ = 716; + std::stringstream errmsg_stream__; + errmsg_stream__ << "user-specified rejection, difference above "; + errmsg_stream__ << max_; + errmsg_stream__ << " x:"; + errmsg_stream__ << x; + errmsg_stream__ << " y:"; + errmsg_stream__ << y; + throw std::domain_error(errmsg_stream__.str()); + } + current_statement__ = 719; + if (logical_lt((abs_diff / avg_scale), min_)) { + current_statement__ = 718; + std::stringstream errmsg_stream__; + errmsg_stream__ << "user-specified rejection, difference below "; + errmsg_stream__ << min_; + errmsg_stream__ << " x:"; + errmsg_stream__ << x; + errmsg_stream__ << " y:"; + errmsg_stream__ << y; + throw std::domain_error(errmsg_stream__.str()); + } + current_statement__ = 720; + return (abs_diff / avg_scale); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -g6(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; - -struct g6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g6(y_slice, start + 1, end + 1, pstream__); +template +Eigen::Matrix, +stan::value_type_t>, -1, 1> +foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t>; + int current_statement__ = 0; + const auto& shared_params = to_ref(shared_params_arg__); + const auto& job_params = to_ref(job_params_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 722; + return (Eigen::Matrix(3) << 1, 2, 3).finished(); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct g6_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g6(y_slice, start, end, pstream__); +template +stan::promote_args_t +foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, + const T4__& x5, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 724; + return x1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -g7(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; - -struct g7_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g7(y_slice, start + 1, end + 1, pstream__); +template +stan::promote_args_t> +foo_five_args_lp(const T0__& x1, const T1__& x2, const T2__& x3, + const T3__& x4, const T4__& x5, const T5__& x6, + T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 726; + return x1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct g7_functor__ { template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g7(y_slice, start, end, pstream__); +Eigen::Matrix>, -1, -1> +covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + int current_statement__ = 0; + const auto& mat = to_ref(mat_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 728; + validate_non_negative_index("o", "rows(mat)", rows(mat)); + current_statement__ = 729; + validate_non_negative_index("o", "cols(mat)", cols(mat)); + Eigen::Matrix o; + o = Eigen::Matrix(rows(mat), cols(mat)); + stan::math::fill(o, DUMMY_VAR__); + + current_statement__ = 731; + assign(o, mat, "assigning variable o"); + current_statement__ = 732; + assign(o, stan::model::deep_copy(rvalue(o, "o", index_uni(2))), + "assigning variable o", index_uni(1)); + current_statement__ = 733; + assign(o, stan::model::deep_copy(rvalue(o, "o", index_min_max(1, 2))), + "assigning variable o", index_min_max(3, 4)); + current_statement__ = 734; + return o; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -g8(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; - -struct g8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g8(y_slice, start + 1, end + 1, pstream__); +template +void +f0(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 736; + if (pstream__) { + stan_print(pstream__, "hi"); + stan_print(pstream__, "\n"); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct g8_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return g8(y_slice, start, end, pstream__); +template +int +f1(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 738; + return a1; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h1(const std::vector& y, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) ; - -struct h1_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, const std::vector& a) const -{ -return h1(y, start + 1, end + 1, a, pstream__); +template +std::vector +f2(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 740; + return a2; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) const -{ -return h1(y, start, end, a, pstream__); +template +std::vector> +f3(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 742; + return a3; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h2(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; - -struct h2_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>& a) const -{ -return h2(y, start + 1, end + 1, a, pstream__); +template +stan::promote_args_t, +T7__, stan::promote_args_t, T10__, +T11__>> +f4(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 744; + return a4; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h2_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, - std::ostream* pstream__) const -{ -return h2(y, start, end, a, pstream__); +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>> +f5(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 746; + return a5; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h3(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; - -struct h3_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>& a) const -{ -return h3(y, start + 1, end + 1, a, pstream__); +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>>> +f6(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 748; + return a6; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h3_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, - std::ostream* pstream__) const -{ -return h3(y, start, end, a, pstream__); +template +Eigen::Matrix, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1> +f7(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 750; + return a7; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h4(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; - -struct h4_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>& a) const -{ -return h4(y, start + 1, end + 1, a, pstream__); +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1>> +f8(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 752; + return a8; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h4_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, - std::ostream* pstream__) const -{ -return h4(y, start, end, a, pstream__); +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, 1>>> +f9(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 754; + return a9; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h5(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; - -struct h5_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, const std::vector>& a) const -{ -return h5(y, start + 1, end + 1, a, pstream__); +template +Eigen::Matrix, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1> +f10(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 756; + return a10; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h5_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) const -{ -return h5(y, start, end, a, pstream__); +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1>> +f11(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 758; + return a11; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h6(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) ; - -struct h6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>>& a) const -{ -return h6(y, start + 1, end + 1, a, pstream__); +template +std::vector, +T7__, stan::promote_args_t, T10__, +T11__>>, -1, -1>>> +f12(const int& a1, const std::vector& a2, + const std::vector>& a3, const T3__& a4, + const std::vector& a5, const std::vector>& a6, + const T6__& a7_arg__, const std::vector>& a8, + const std::vector>>& a9, + const T9__& a10_arg__, + const std::vector>& a11, + const std::vector>>& a12, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T7__, stan::promote_args_t, + T10__, + T11__>>; + int current_statement__ = 0; + const auto& a7 = to_ref(a7_arg__); + const auto& a10 = to_ref(a10_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 760; + return a12; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h6_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return h6(y, start, end, a, pstream__); +void +foo_6(std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int a; + a = std::numeric_limits::min(); + + local_scalar_t__ b; + b = DUMMY_VAR__; + + std::vector> c; + c = std::vector>(20, std::vector(30, DUMMY_VAR__)); + + + std::vector>> ar_mat; + ar_mat = std::vector>>(60, std::vector>(70, Eigen::Matrix(40, 50))); + stan::math::fill(ar_mat, DUMMY_VAR__); + + current_statement__ = 766; + assign(ar_mat, b, + "assigning variable ar_mat", index_uni(1), index_uni(1), index_uni(1), + index_uni(1)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h7(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) ; - -struct h7_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>>& a) const -{ -return h7(y, start + 1, end + 1, a, pstream__); +Eigen::Matrix +matfoo(std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 768; + return stan::math::to_matrix(std::vector>{ + (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10).finished(), (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10).finished(), (Eigen::Matrix(10) << 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10).finished()}); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h7_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return h7(y, start, end, a, pstream__); +Eigen::Matrix +vecfoo(std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 770; + return (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10).finished(); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -h8(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) ; - -struct h8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - std::ostream* pstream__, - const std::vector>>& a) const -{ -return h8(y, start + 1, end + 1, a, pstream__); +template +Eigen::Matrix, -1, 1> +vecmufoo(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + Eigen::Matrix l; + l = Eigen::Matrix(10); + stan::math::fill(l, DUMMY_VAR__); + + current_statement__ = 772; + assign(l, multiply(mu, vecfoo(pstream__)), "assigning variable l"); + current_statement__ = 773; + return l; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - - -struct h8_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return h8(y, start, end, a, pstream__); +template +Eigen::Matrix, -1, 1> +vecmubar(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + Eigen::Matrix l; + l = Eigen::Matrix(10); + stan::math::fill(l, DUMMY_VAR__); + + current_statement__ = 775; + assign(l, + multiply(mu, (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10).finished()), "assigning variable l"); + current_statement__ = 776; + return rvalue(l, "l", index_multi(std::vector{1, 2, 3, 4, 5})); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; - -template -stan::promote_args_t -g1(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +algebra_system(const T0__& x_arg__, const T1__& y_arg__, + const std::vector& dat, const std::vector& dat_int, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t, + T2__>; + int current_statement__ = 0; + const auto& x = to_ref(x_arg__); + const auto& y = to_ref(y_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + Eigen::Matrix f_x; + f_x = Eigen::Matrix(2); + stan::math::fill(f_x, DUMMY_VAR__); + + current_statement__ = 779; + assign(f_x, + (rvalue(x, "x", index_uni(1)) - rvalue(y, "y", index_uni(1))), + "assigning variable f_x", index_uni(1)); + current_statement__ = 780; + assign(f_x, + (rvalue(x, "x", index_uni(2)) - rvalue(y, "y", index_uni(2))), + "assigning variable f_x", index_uni(2)); + current_statement__ = 781; + return f_x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, +stan::value_type_t>, -1, 1> +binomialf(const T0__& phi_arg__, const T1__& theta_arg__, + const std::vector& x_r, const std::vector& x_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t>; int current_statement__ = 0; + const auto& phi = to_ref(phi_arg__); + const auto& theta = to_ref(theta_arg__); static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 76; - return normal_lpdf(y_slice, 0, 1); + Eigen::Matrix lpmf; + lpmf = Eigen::Matrix(1); + stan::math::fill(lpmf, DUMMY_VAR__); + + current_statement__ = 784; + assign(lpmf, 0.0, "assigning variable lpmf", index_uni(1)); + current_statement__ = 785; + return lpmf; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g2(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; + } + +} +class mother_model final : public model_base_crtp { + + private: + int N; + int M; + int K; + std::vector d_int_1d_ar; + std::vector>> d_int_3d_ar; + double J; + std::vector d_real_1d_ar; + std::vector>> d_real_3d_ar; + Eigen::Matrix d_vec__; + std::vector> d_1d_vec; + std::vector>>> d_3d_vec; + Eigen::Matrix d_row_vec__; + std::vector> d_1d_row_vec; + std::vector>>> d_3d_row_vec; + std::vector>> d_ar_mat; + Eigen::Matrix d_simplex__; + std::vector> d_1d_simplex; + std::vector>>> d_3d_simplex; + Eigen::Matrix d_cfcov_54__; + Eigen::Matrix d_cfcov_33__; + std::vector> d_cfcov_33_ar; + int d_int; + std::vector d_int_array; + std::vector> d_int_array_2d; + std::vector>> d_int_array_3d; + double d_real; + std::vector d_real_array; + std::vector> d_real_array_2d; + std::vector>> d_real_array_3d; + Eigen::Matrix d_matrix__; + std::vector> d_matrix_array; + std::vector>> d_matrix_array_2d; + std::vector>>> d_matrix_array_3d; + Eigen::Matrix d_vector__; + std::vector> d_vector_array; + std::vector>> d_vector_array_2d; + std::vector>>> d_vector_array_3d; + Eigen::Matrix d_row_vector__; + std::vector> d_row_vector_array; + std::vector>> d_row_vector_array_2d; + std::vector>>> d_row_vector_array_3d; + int td_int; + std::vector td_1d; + std::vector td_1dk; + int td_a; + double td_b; + double td_c; + std::vector>> td_ar_mat; + Eigen::Matrix td_simplex__; + std::vector> td_1d_simplex; + std::vector>>> td_3d_simplex; + Eigen::Matrix td_cfcov_54__; + Eigen::Matrix td_cfcov_33__; + Eigen::Matrix x__; + Eigen::Matrix y__; + std::vector dat; + std::vector dat_int; + std::vector> x_r; + std::vector> x_i; + std::vector> arr_mul_ind; + std::vector x_mul_ind; + double transformed_data_real; + std::vector transformed_data_real_array; + std::vector> transformed_data_real_array_2d; + std::vector>> transformed_data_real_array_3d; + Eigen::Matrix transformed_data_matrix__; + std::vector> transformed_data_matrix_array; + std::vector>> transformed_data_matrix_array_2d; + std::vector>>> transformed_data_matrix_array_3d; + Eigen::Matrix transformed_data_vector__; + std::vector> transformed_data_vector_array; + std::vector>> transformed_data_vector_array_2d; + std::vector>>> transformed_data_vector_array_3d; + Eigen::Matrix transformed_data_row_vector__; + std::vector> transformed_data_row_vector_array; + std::vector>> transformed_data_row_vector_array_2d; + std::vector>>> transformed_data_row_vector_array_3d; + Eigen::Map> d_vec{nullptr, 0}; + Eigen::Map> d_row_vec{nullptr, 0}; + Eigen::Map> d_simplex{nullptr, 0}; + Eigen::Map> d_cfcov_54{nullptr, 0, 0}; + Eigen::Map> d_cfcov_33{nullptr, 0, 0}; + Eigen::Map> d_matrix{nullptr, 0, 0}; + Eigen::Map> d_vector{nullptr, 0}; + Eigen::Map> d_row_vector{nullptr, 0}; + Eigen::Map> td_simplex{nullptr, 0}; + Eigen::Map> td_cfcov_54{nullptr, 0, 0}; + Eigen::Map> td_cfcov_33{nullptr, 0, 0}; + Eigen::Map> x{nullptr, 0}; + Eigen::Map> y{nullptr, 0}; + Eigen::Map> transformed_data_matrix{nullptr, 0, 0}; + Eigen::Map> transformed_data_vector{nullptr, 0}; + Eigen::Map> transformed_data_row_vector{nullptr, 0}; + + public: + ~mother_model() { } + + inline std::string model_name() const final { return "mother_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + mother_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "mother_model_namespace::mother_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 190; + context__.validate_dims("data initialization","N","int", + std::vector{}); + N = std::numeric_limits::min(); + + current_statement__ = 190; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 190; + check_greater_or_equal(function__, "N", N, 0); + current_statement__ = 191; + context__.validate_dims("data initialization","M","int", + std::vector{}); + M = std::numeric_limits::min(); + + current_statement__ = 191; + M = context__.vals_i("M")[(1 - 1)]; + current_statement__ = 191; + check_greater_or_equal(function__, "M", M, 0); + current_statement__ = 192; + context__.validate_dims("data initialization","K","int", + std::vector{}); + K = std::numeric_limits::min(); + + current_statement__ = 192; + K = context__.vals_i("K")[(1 - 1)]; + current_statement__ = 192; + check_greater_or_equal(function__, "K", K, 0); + current_statement__ = 192; + check_less_or_equal(function__, "K", K, (N * M)); + current_statement__ = 193; + validate_non_negative_index("d_int_1d_ar", "N", N); + current_statement__ = 194; + context__.validate_dims("data initialization","d_int_1d_ar","int", + std::vector{static_cast(N)}); + d_int_1d_ar = std::vector(N, std::numeric_limits::min()); + + current_statement__ = 194; + d_int_1d_ar = context__.vals_i("d_int_1d_ar"); + current_statement__ = 194; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 194; + check_less_or_equal(function__, "d_int_1d_ar[sym1__]", + d_int_1d_ar[(sym1__ - 1)], N); + } + current_statement__ = 195; + validate_non_negative_index("d_int_3d_ar", "N", N); + current_statement__ = 196; + validate_non_negative_index("d_int_3d_ar", "M", M); + current_statement__ = 197; + validate_non_negative_index("d_int_3d_ar", "K", K); + current_statement__ = 198; + context__.validate_dims("data initialization","d_int_3d_ar","int", + std::vector{static_cast(N), + static_cast(M), static_cast(K)}); + d_int_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::min()))); + + + { + std::vector d_int_3d_ar_flat__; + current_statement__ = 198; + d_int_3d_ar_flat__ = context__.vals_i("d_int_3d_ar"); + current_statement__ = 198; + pos__ = 1; + current_statement__ = 198; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 198; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 198; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 198; + assign(d_int_3d_ar, d_int_3d_ar_flat__[(pos__ - 1)], + "assigning variable d_int_3d_ar", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 198; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 198; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 198; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 198; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 198; + check_less_or_equal(function__, + "d_int_3d_ar[sym1__, sym2__, sym3__]", + d_int_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ + (sym3__ - 1)], N); + } + } + } + current_statement__ = 199; + context__.validate_dims("data initialization","J","double", + std::vector{}); + J = std::numeric_limits::quiet_NaN(); + + current_statement__ = 199; + J = context__.vals_r("J")[(1 - 1)]; + current_statement__ = 199; + check_greater_or_equal(function__, "J", J, -2.0); + current_statement__ = 199; + check_less_or_equal(function__, "J", J, 2.0); + current_statement__ = 200; + validate_non_negative_index("d_real_1d_ar", "N", N); + current_statement__ = 201; + context__.validate_dims("data initialization","d_real_1d_ar","double", + std::vector{static_cast(N)}); + d_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 201; + d_real_1d_ar = context__.vals_r("d_real_1d_ar"); + current_statement__ = 202; + validate_non_negative_index("d_real_3d_ar", "N", N); + current_statement__ = 203; + validate_non_negative_index("d_real_3d_ar", "M", M); + current_statement__ = 204; + validate_non_negative_index("d_real_3d_ar", "K", K); + current_statement__ = 205; + context__.validate_dims("data initialization","d_real_3d_ar","double", + std::vector{static_cast(N), + static_cast(M), static_cast(K)}); + d_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); + + + { + std::vector d_real_3d_ar_flat__; + current_statement__ = 205; + d_real_3d_ar_flat__ = context__.vals_r("d_real_3d_ar"); + current_statement__ = 205; + pos__ = 1; + current_statement__ = 205; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 205; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 205; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 205; + assign(d_real_3d_ar, d_real_3d_ar_flat__[(pos__ - 1)], + "assigning variable d_real_3d_ar", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 205; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 206; + validate_non_negative_index("d_vec", "N", N); + current_statement__ = 207; + context__.validate_dims("data initialization","d_vec","double", + std::vector{static_cast(N)}); + d_vec__ = Eigen::Matrix(N); + new (&d_vec) Eigen::Map>(d_vec__.data(), N); + + + { + std::vector d_vec_flat__; + current_statement__ = 207; + d_vec_flat__ = context__.vals_r("d_vec"); + current_statement__ = 207; + pos__ = 1; + current_statement__ = 207; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 207; + assign(d_vec, d_vec_flat__[(pos__ - 1)], + "assigning variable d_vec", index_uni(sym1__)); + current_statement__ = 207; + pos__ = (pos__ + 1); + } + } + current_statement__ = 208; + validate_non_negative_index("d_1d_vec", "N", N); + current_statement__ = 209; + validate_non_negative_index("d_1d_vec", "N", N); + current_statement__ = 210; + context__.validate_dims("data initialization","d_1d_vec","double", + std::vector{static_cast(N), + static_cast(N)}); + d_1d_vec = std::vector>(N, Eigen::Matrix(N)); + + + { + std::vector d_1d_vec_flat__; + current_statement__ = 210; + d_1d_vec_flat__ = context__.vals_r("d_1d_vec"); + current_statement__ = 210; + pos__ = 1; + current_statement__ = 210; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 210; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 210; + assign(d_1d_vec, d_1d_vec_flat__[(pos__ - 1)], + "assigning variable d_1d_vec", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 210; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 211; + validate_non_negative_index("d_3d_vec", "N", N); + current_statement__ = 212; + validate_non_negative_index("d_3d_vec", "M", M); + current_statement__ = 213; + validate_non_negative_index("d_3d_vec", "K", K); + current_statement__ = 214; + validate_non_negative_index("d_3d_vec", "N", N); + current_statement__ = 215; + context__.validate_dims("data initialization","d_3d_vec","double", + std::vector{static_cast(N), + static_cast(M), static_cast(K), + static_cast(N)}); + d_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + + + { + std::vector d_3d_vec_flat__; + current_statement__ = 215; + d_3d_vec_flat__ = context__.vals_r("d_3d_vec"); + current_statement__ = 215; + pos__ = 1; + current_statement__ = 215; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 215; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 215; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 215; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 215; + assign(d_3d_vec, d_3d_vec_flat__[(pos__ - 1)], + "assigning variable d_3d_vec", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 215; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 216; + validate_non_negative_index("d_row_vec", "N", N); + current_statement__ = 217; + context__.validate_dims("data initialization","d_row_vec","double", + std::vector{static_cast(N)}); + d_row_vec__ = Eigen::Matrix(N); + new (&d_row_vec) Eigen::Map>(d_row_vec__.data(), N); + + + { + std::vector d_row_vec_flat__; + current_statement__ = 217; + d_row_vec_flat__ = context__.vals_r("d_row_vec"); + current_statement__ = 217; + pos__ = 1; + current_statement__ = 217; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 217; + assign(d_row_vec, d_row_vec_flat__[(pos__ - 1)], + "assigning variable d_row_vec", index_uni(sym1__)); + current_statement__ = 217; + pos__ = (pos__ + 1); + } + } + current_statement__ = 218; + validate_non_negative_index("d_1d_row_vec", "N", N); + current_statement__ = 219; + validate_non_negative_index("d_1d_row_vec", "N", N); + current_statement__ = 220; + context__.validate_dims("data initialization","d_1d_row_vec","double", + std::vector{static_cast(N), + static_cast(N)}); + d_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + + + { + std::vector d_1d_row_vec_flat__; + current_statement__ = 220; + d_1d_row_vec_flat__ = context__.vals_r("d_1d_row_vec"); + current_statement__ = 220; + pos__ = 1; + current_statement__ = 220; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 220; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 220; + assign(d_1d_row_vec, d_1d_row_vec_flat__[(pos__ - 1)], + "assigning variable d_1d_row_vec", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 220; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 221; + validate_non_negative_index("d_3d_row_vec", "N", N); + current_statement__ = 222; + validate_non_negative_index("d_3d_row_vec", "M", M); + current_statement__ = 223; + validate_non_negative_index("d_3d_row_vec", "K", K); + current_statement__ = 224; + validate_non_negative_index("d_3d_row_vec", "N", N); + current_statement__ = 225; + context__.validate_dims("data initialization","d_3d_row_vec","double", + std::vector{static_cast(N), + static_cast(M), static_cast(K), + static_cast(N)}); + d_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + + + { + std::vector d_3d_row_vec_flat__; + current_statement__ = 225; + d_3d_row_vec_flat__ = context__.vals_r("d_3d_row_vec"); + current_statement__ = 225; + pos__ = 1; + current_statement__ = 225; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 225; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 225; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 225; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 225; + assign(d_3d_row_vec, d_3d_row_vec_flat__[(pos__ - 1)], + "assigning variable d_3d_row_vec", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 225; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 226; + context__.validate_dims("data initialization","d_ar_mat","double", + std::vector{static_cast(4), + static_cast(5), static_cast(2), + static_cast(3)}); + d_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + + + { + std::vector d_ar_mat_flat__; + current_statement__ = 226; + d_ar_mat_flat__ = context__.vals_r("d_ar_mat"); + current_statement__ = 226; + pos__ = 1; + current_statement__ = 226; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 226; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 226; + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + current_statement__ = 226; + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + current_statement__ = 226; + assign(d_ar_mat, d_ar_mat_flat__[(pos__ - 1)], + "assigning variable d_ar_mat", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 226; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 226; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 226; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 226; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 226; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 226; + check_greater_or_equal(function__, + "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(d_ar_mat, "d_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 0); + } + } + } + } + current_statement__ = 226; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 226; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 226; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 226; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 226; + check_less_or_equal(function__, + "d_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(d_ar_mat, "d_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 1); + } + } + } + } + current_statement__ = 227; + validate_non_negative_index("d_simplex", "N", N); + current_statement__ = 228; + context__.validate_dims("data initialization","d_simplex","double", + std::vector{static_cast(N)}); + d_simplex__ = Eigen::Matrix(N); + new (&d_simplex) Eigen::Map>(d_simplex__.data(), N); + + + { + std::vector d_simplex_flat__; + current_statement__ = 228; + d_simplex_flat__ = context__.vals_r("d_simplex"); + current_statement__ = 228; + pos__ = 1; + current_statement__ = 228; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 228; + assign(d_simplex, d_simplex_flat__[(pos__ - 1)], + "assigning variable d_simplex", index_uni(sym1__)); + current_statement__ = 228; + pos__ = (pos__ + 1); + } + } + current_statement__ = 228; + check_simplex(function__, "d_simplex", d_simplex); + current_statement__ = 229; + validate_non_negative_index("d_1d_simplex", "N", N); + current_statement__ = 230; + validate_non_negative_index("d_1d_simplex", "N", N); + current_statement__ = 231; + context__.validate_dims("data initialization","d_1d_simplex","double", + std::vector{static_cast(N), + static_cast(N)}); + d_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + + + { + std::vector d_1d_simplex_flat__; + current_statement__ = 231; + d_1d_simplex_flat__ = context__.vals_r("d_1d_simplex"); + current_statement__ = 231; + pos__ = 1; + current_statement__ = 231; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 231; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 231; + assign(d_1d_simplex, d_1d_simplex_flat__[(pos__ - 1)], + "assigning variable d_1d_simplex", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 231; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 231; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 231; + check_simplex(function__, "d_1d_simplex[sym1__]", + d_1d_simplex[(sym1__ - 1)]); + } + current_statement__ = 232; + validate_non_negative_index("d_3d_simplex", "N", N); + current_statement__ = 233; + validate_non_negative_index("d_3d_simplex", "M", M); + current_statement__ = 234; + validate_non_negative_index("d_3d_simplex", "K", K); + current_statement__ = 235; + validate_non_negative_index("d_3d_simplex", "N", N); + current_statement__ = 236; + context__.validate_dims("data initialization","d_3d_simplex","double", + std::vector{static_cast(N), + static_cast(M), static_cast(K), + static_cast(N)}); + d_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + + + { + std::vector d_3d_simplex_flat__; + current_statement__ = 236; + d_3d_simplex_flat__ = context__.vals_r("d_3d_simplex"); + current_statement__ = 236; + pos__ = 1; + current_statement__ = 236; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 236; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 236; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 236; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 236; + assign(d_3d_simplex, d_3d_simplex_flat__[(pos__ - 1)], + "assigning variable d_3d_simplex", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 236; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 236; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 236; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 236; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 236; + check_simplex(function__, "d_3d_simplex[sym1__, sym2__, sym3__]", + d_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - + 1)]); + } + } + } + current_statement__ = 237; + context__.validate_dims("data initialization","d_cfcov_54","double", + std::vector{static_cast(5), + static_cast(4)}); + d_cfcov_54__ = Eigen::Matrix(5, 4); + new (&d_cfcov_54) Eigen::Map>(d_cfcov_54__.data(), 5, 4); + + + { + std::vector d_cfcov_54_flat__; + current_statement__ = 237; + d_cfcov_54_flat__ = context__.vals_r("d_cfcov_54"); + current_statement__ = 237; + pos__ = 1; + current_statement__ = 237; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 237; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 237; + assign(d_cfcov_54, d_cfcov_54_flat__[(pos__ - 1)], + "assigning variable d_cfcov_54", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 237; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 237; + check_cholesky_factor(function__, "d_cfcov_54", d_cfcov_54); + current_statement__ = 238; + context__.validate_dims("data initialization","d_cfcov_33","double", + std::vector{static_cast(3), + static_cast(3)}); + d_cfcov_33__ = Eigen::Matrix(3, 3); + new (&d_cfcov_33) Eigen::Map>(d_cfcov_33__.data(), 3, 3); + + + { + std::vector d_cfcov_33_flat__; + current_statement__ = 238; + d_cfcov_33_flat__ = context__.vals_r("d_cfcov_33"); + current_statement__ = 238; + pos__ = 1; + current_statement__ = 238; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 238; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 238; + assign(d_cfcov_33, d_cfcov_33_flat__[(pos__ - 1)], + "assigning variable d_cfcov_33", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 238; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 238; + check_cholesky_factor(function__, "d_cfcov_33", d_cfcov_33); + current_statement__ = 239; + validate_non_negative_index("d_cfcov_33_ar", "K", K); + current_statement__ = 240; + context__.validate_dims("data initialization","d_cfcov_33_ar","double", + std::vector{static_cast(K), + static_cast(3), static_cast(3)}); + d_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + + + { + std::vector d_cfcov_33_ar_flat__; + current_statement__ = 240; + d_cfcov_33_ar_flat__ = context__.vals_r("d_cfcov_33_ar"); + current_statement__ = 240; + pos__ = 1; + current_statement__ = 240; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 240; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 240; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 240; + assign(d_cfcov_33_ar, d_cfcov_33_ar_flat__[(pos__ - 1)], + "assigning variable d_cfcov_33_ar", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 240; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 240; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 240; + check_cholesky_factor(function__, "d_cfcov_33_ar[sym1__]", + d_cfcov_33_ar[(sym1__ - 1)]); + } + current_statement__ = 241; + context__.validate_dims("data initialization","d_int","int", + std::vector{}); + d_int = std::numeric_limits::min(); + + current_statement__ = 241; + d_int = context__.vals_i("d_int")[(1 - 1)]; + current_statement__ = 242; + validate_non_negative_index("d_int_array", "d_int", d_int); + current_statement__ = 243; + context__.validate_dims("data initialization","d_int_array","int", + std::vector{static_cast(d_int)}); + d_int_array = std::vector(d_int, std::numeric_limits::min()); + + current_statement__ = 243; + d_int_array = context__.vals_i("d_int_array"); + current_statement__ = 244; + validate_non_negative_index("d_int_array_2d", "d_int", d_int); + current_statement__ = 245; + context__.validate_dims("data initialization","d_int_array_2d","int", + std::vector{static_cast(d_int), + static_cast(2)}); + d_int_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::min())); + + + { + std::vector d_int_array_2d_flat__; + current_statement__ = 245; + d_int_array_2d_flat__ = context__.vals_i("d_int_array_2d"); + current_statement__ = 245; + pos__ = 1; + current_statement__ = 245; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 245; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 245; + assign(d_int_array_2d, d_int_array_2d_flat__[(pos__ - 1)], + "assigning variable d_int_array_2d", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 245; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 246; + validate_non_negative_index("d_int_array_3d", "d_int", d_int); + current_statement__ = 247; + context__.validate_dims("data initialization","d_int_array_3d","int", + std::vector{static_cast(d_int), + static_cast(2), static_cast(3)}); + d_int_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::min()))); + + + { + std::vector d_int_array_3d_flat__; + current_statement__ = 247; + d_int_array_3d_flat__ = context__.vals_i("d_int_array_3d"); + current_statement__ = 247; + pos__ = 1; + current_statement__ = 247; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 247; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 247; + for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { + current_statement__ = 247; + assign(d_int_array_3d, d_int_array_3d_flat__[(pos__ - 1)], + "assigning variable d_int_array_3d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 247; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 248; + context__.validate_dims("data initialization","d_real","double", + std::vector{}); + d_real = std::numeric_limits::quiet_NaN(); + + current_statement__ = 248; + d_real = context__.vals_r("d_real")[(1 - 1)]; + current_statement__ = 249; + validate_non_negative_index("d_real_array", "d_int", d_int); + current_statement__ = 250; + context__.validate_dims("data initialization","d_real_array","double", + std::vector{static_cast(d_int)}); + d_real_array = std::vector(d_int, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 250; + d_real_array = context__.vals_r("d_real_array"); + current_statement__ = 251; + validate_non_negative_index("d_real_array_2d", "d_int", d_int); + current_statement__ = 252; + context__.validate_dims("data initialization","d_real_array_2d", + "double", + std::vector{static_cast(d_int), + static_cast(2)}); + d_real_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::quiet_NaN())); + + + { + std::vector d_real_array_2d_flat__; + current_statement__ = 252; + d_real_array_2d_flat__ = context__.vals_r("d_real_array_2d"); + current_statement__ = 252; + pos__ = 1; + current_statement__ = 252; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 252; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 252; + assign(d_real_array_2d, d_real_array_2d_flat__[(pos__ - 1)], + "assigning variable d_real_array_2d", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 252; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 253; + validate_non_negative_index("d_real_array_3d", "d_int", d_int); + current_statement__ = 254; + context__.validate_dims("data initialization","d_real_array_3d", + "double", + std::vector{static_cast(d_int), + static_cast(2), static_cast(3)}); + d_real_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::quiet_NaN()))); + + + { + std::vector d_real_array_3d_flat__; + current_statement__ = 254; + d_real_array_3d_flat__ = context__.vals_r("d_real_array_3d"); + current_statement__ = 254; + pos__ = 1; + current_statement__ = 254; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 254; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 254; + for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { + current_statement__ = 254; + assign(d_real_array_3d, d_real_array_3d_flat__[(pos__ - 1)], + "assigning variable d_real_array_3d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 254; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 255; + validate_non_negative_index("d_matrix", "d_int", d_int); + current_statement__ = 256; + validate_non_negative_index("d_matrix", "d_int", d_int); + current_statement__ = 257; + context__.validate_dims("data initialization","d_matrix","double", + std::vector{static_cast(d_int), + static_cast(d_int)}); + d_matrix__ = Eigen::Matrix(d_int, d_int); + new (&d_matrix) Eigen::Map>(d_matrix__.data(), d_int, d_int); + + + { + std::vector d_matrix_flat__; + current_statement__ = 257; + d_matrix_flat__ = context__.vals_r("d_matrix"); + current_statement__ = 257; + pos__ = 1; + current_statement__ = 257; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 257; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 257; + assign(d_matrix, d_matrix_flat__[(pos__ - 1)], + "assigning variable d_matrix", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 257; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 258; + validate_non_negative_index("d_matrix_array", "d_int", d_int); + current_statement__ = 259; + validate_non_negative_index("d_matrix_array", "d_int", d_int); + current_statement__ = 260; + validate_non_negative_index("d_matrix_array", "d_int", d_int); + current_statement__ = 261; + context__.validate_dims("data initialization","d_matrix_array", + "double", + std::vector{static_cast(d_int), + static_cast(d_int), static_cast(d_int)}); + d_matrix_array = std::vector>(d_int, Eigen::Matrix(d_int, d_int)); + + + { + std::vector d_matrix_array_flat__; + current_statement__ = 261; + d_matrix_array_flat__ = context__.vals_r("d_matrix_array"); + current_statement__ = 261; + pos__ = 1; + current_statement__ = 261; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 261; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 261; + for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { + current_statement__ = 261; + assign(d_matrix_array, d_matrix_array_flat__[(pos__ - 1)], + "assigning variable d_matrix_array", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 261; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 262; + validate_non_negative_index("d_matrix_array_2d", "d_int", d_int); + current_statement__ = 263; + validate_non_negative_index("d_matrix_array_2d", "d_int", d_int); + current_statement__ = 264; + validate_non_negative_index("d_matrix_array_2d", "d_int", d_int); + current_statement__ = 265; + context__.validate_dims("data initialization","d_matrix_array_2d", + "double", + std::vector{static_cast(d_int), + static_cast(2), static_cast(d_int), + static_cast(d_int)}); + d_matrix_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int, d_int))); + + + { + std::vector d_matrix_array_2d_flat__; + current_statement__ = 265; + d_matrix_array_2d_flat__ = context__.vals_r("d_matrix_array_2d"); + current_statement__ = 265; + pos__ = 1; + current_statement__ = 265; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 265; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 265; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 265; + for (int sym4__ = 1; sym4__ <= d_int; ++sym4__) { + current_statement__ = 265; + assign(d_matrix_array_2d, + d_matrix_array_2d_flat__[(pos__ - 1)], + "assigning variable d_matrix_array_2d", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 265; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 266; + validate_non_negative_index("d_matrix_array_3d", "d_int", d_int); + current_statement__ = 267; + validate_non_negative_index("d_matrix_array_3d", "d_int", d_int); + current_statement__ = 268; + validate_non_negative_index("d_matrix_array_3d", "d_int", d_int); + current_statement__ = 269; + context__.validate_dims("data initialization","d_matrix_array_3d", + "double", + std::vector{static_cast(d_int), + static_cast(2), static_cast(3), + static_cast(d_int), static_cast(d_int)}); + d_matrix_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int, d_int)))); + + + { + std::vector d_matrix_array_3d_flat__; + current_statement__ = 269; + d_matrix_array_3d_flat__ = context__.vals_r("d_matrix_array_3d"); + current_statement__ = 269; + pos__ = 1; + current_statement__ = 269; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 269; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 269; + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + current_statement__ = 269; + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + current_statement__ = 269; + for (int sym5__ = 1; sym5__ <= d_int; ++sym5__) { + current_statement__ = 269; + assign(d_matrix_array_3d, + d_matrix_array_3d_flat__[(pos__ - 1)], + "assigning variable d_matrix_array_3d", index_uni(sym5__), + index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 269; + pos__ = (pos__ + 1); + } + } + } + } + } + } + current_statement__ = 270; + validate_non_negative_index("d_vector", "d_int", d_int); + current_statement__ = 271; + context__.validate_dims("data initialization","d_vector","double", + std::vector{static_cast(d_int)}); + d_vector__ = Eigen::Matrix(d_int); + new (&d_vector) Eigen::Map>(d_vector__.data(), d_int); + + + { + std::vector d_vector_flat__; + current_statement__ = 271; + d_vector_flat__ = context__.vals_r("d_vector"); + current_statement__ = 271; + pos__ = 1; + current_statement__ = 271; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 271; + assign(d_vector, d_vector_flat__[(pos__ - 1)], + "assigning variable d_vector", index_uni(sym1__)); + current_statement__ = 271; + pos__ = (pos__ + 1); + } + } + current_statement__ = 272; + validate_non_negative_index("d_vector_array", "d_int", d_int); + current_statement__ = 273; + validate_non_negative_index("d_vector_array", "d_int", d_int); + current_statement__ = 274; + context__.validate_dims("data initialization","d_vector_array", + "double", + std::vector{static_cast(d_int), + static_cast(d_int)}); + d_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); + + + { + std::vector d_vector_array_flat__; + current_statement__ = 274; + d_vector_array_flat__ = context__.vals_r("d_vector_array"); + current_statement__ = 274; + pos__ = 1; + current_statement__ = 274; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 274; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 274; + assign(d_vector_array, d_vector_array_flat__[(pos__ - 1)], + "assigning variable d_vector_array", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 274; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 275; + validate_non_negative_index("d_vector_array_2d", "d_int", d_int); + current_statement__ = 276; + validate_non_negative_index("d_vector_array_2d", "d_int", d_int); + current_statement__ = 277; + context__.validate_dims("data initialization","d_vector_array_2d", + "double", + std::vector{static_cast(d_int), + static_cast(2), static_cast(d_int)}); + d_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); + + + { + std::vector d_vector_array_2d_flat__; + current_statement__ = 277; + d_vector_array_2d_flat__ = context__.vals_r("d_vector_array_2d"); + current_statement__ = 277; + pos__ = 1; + current_statement__ = 277; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 277; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 277; + for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { + current_statement__ = 277; + assign(d_vector_array_2d, + d_vector_array_2d_flat__[(pos__ - 1)], + "assigning variable d_vector_array_2d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 277; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 278; + validate_non_negative_index("d_vector_array_3d", "d_int", d_int); + current_statement__ = 279; + validate_non_negative_index("d_vector_array_3d", "d_int", d_int); + current_statement__ = 280; + context__.validate_dims("data initialization","d_vector_array_3d", + "double", + std::vector{static_cast(d_int), + static_cast(2), static_cast(3), + static_cast(d_int)}); + d_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); + + + { + std::vector d_vector_array_3d_flat__; + current_statement__ = 280; + d_vector_array_3d_flat__ = context__.vals_r("d_vector_array_3d"); + current_statement__ = 280; + pos__ = 1; + current_statement__ = 280; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 280; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 280; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 280; + for (int sym4__ = 1; sym4__ <= d_int; ++sym4__) { + current_statement__ = 280; + assign(d_vector_array_3d, + d_vector_array_3d_flat__[(pos__ - 1)], + "assigning variable d_vector_array_3d", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 280; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 281; + validate_non_negative_index("d_row_vector", "d_int", d_int); + current_statement__ = 282; + context__.validate_dims("data initialization","d_row_vector","double", + std::vector{static_cast(d_int)}); + d_row_vector__ = Eigen::Matrix(d_int); + new (&d_row_vector) Eigen::Map>(d_row_vector__.data(), d_int); + + + { + std::vector d_row_vector_flat__; + current_statement__ = 282; + d_row_vector_flat__ = context__.vals_r("d_row_vector"); + current_statement__ = 282; + pos__ = 1; + current_statement__ = 282; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 282; + assign(d_row_vector, d_row_vector_flat__[(pos__ - 1)], + "assigning variable d_row_vector", index_uni(sym1__)); + current_statement__ = 282; + pos__ = (pos__ + 1); + } + } + current_statement__ = 283; + validate_non_negative_index("d_row_vector_array", "d_int", d_int); + current_statement__ = 284; + validate_non_negative_index("d_row_vector_array", "d_int", d_int); + current_statement__ = 285; + context__.validate_dims("data initialization","d_row_vector_array", + "double", + std::vector{static_cast(d_int), + static_cast(d_int)}); + d_row_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); + + + { + std::vector d_row_vector_array_flat__; + current_statement__ = 285; + d_row_vector_array_flat__ = context__.vals_r("d_row_vector_array"); + current_statement__ = 285; + pos__ = 1; + current_statement__ = 285; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 285; + for (int sym2__ = 1; sym2__ <= d_int; ++sym2__) { + current_statement__ = 285; + assign(d_row_vector_array, + d_row_vector_array_flat__[(pos__ - 1)], + "assigning variable d_row_vector_array", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 285; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 286; + validate_non_negative_index("d_row_vector_array_2d", "d_int", d_int); + current_statement__ = 287; + validate_non_negative_index("d_row_vector_array_2d", "d_int", d_int); + current_statement__ = 288; + context__.validate_dims("data initialization","d_row_vector_array_2d", + "double", + std::vector{static_cast(d_int), + static_cast(2), static_cast(d_int)}); + d_row_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); + + + { + std::vector d_row_vector_array_2d_flat__; + current_statement__ = 288; + d_row_vector_array_2d_flat__ = context__.vals_r("d_row_vector_array_2d"); + current_statement__ = 288; + pos__ = 1; + current_statement__ = 288; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 288; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 288; + for (int sym3__ = 1; sym3__ <= d_int; ++sym3__) { + current_statement__ = 288; + assign(d_row_vector_array_2d, + d_row_vector_array_2d_flat__[(pos__ - 1)], + "assigning variable d_row_vector_array_2d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 288; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 289; + validate_non_negative_index("d_row_vector_array_3d", "d_int", d_int); + current_statement__ = 290; + validate_non_negative_index("d_row_vector_array_3d", "d_int", d_int); + current_statement__ = 291; + context__.validate_dims("data initialization","d_row_vector_array_3d", + "double", + std::vector{static_cast(d_int), + static_cast(2), static_cast(3), + static_cast(d_int)}); + d_row_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); + + + { + std::vector d_row_vector_array_3d_flat__; + current_statement__ = 291; + d_row_vector_array_3d_flat__ = context__.vals_r("d_row_vector_array_3d"); + current_statement__ = 291; + pos__ = 1; + current_statement__ = 291; + for (int sym1__ = 1; sym1__ <= d_int; ++sym1__) { + current_statement__ = 291; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 291; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 291; + for (int sym4__ = 1; sym4__ <= d_int; ++sym4__) { + current_statement__ = 291; + assign(d_row_vector_array_3d, + d_row_vector_array_3d_flat__[(pos__ - 1)], + "assigning variable d_row_vector_array_3d", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 291; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 292; + td_int = std::numeric_limits::min(); + + current_statement__ = 293; + validate_non_negative_index("td_1d", "N", N); + current_statement__ = 294; + td_1d = std::vector(N, std::numeric_limits::min()); + + current_statement__ = 295; + validate_non_negative_index("td_1dk", "M", M); + current_statement__ = 296; + td_1dk = std::vector(M, std::numeric_limits::min()); + + current_statement__ = 296; + assign(td_1dk, rep_array(1, M), "assigning variable td_1dk"); + current_statement__ = 297; + td_a = std::numeric_limits::min(); + + current_statement__ = 297; + td_a = N; + current_statement__ = 298; + td_b = std::numeric_limits::quiet_NaN(); + + current_statement__ = 298; + td_b = (N * J); + current_statement__ = 299; + td_c = std::numeric_limits::quiet_NaN(); + + current_statement__ = 299; + td_c = foo_bar1(td_b, pstream__); + current_statement__ = 300; + td_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(td_ar_mat, std::numeric_limits::quiet_NaN()); + + current_statement__ = 301; + validate_non_negative_index("td_simplex", "N", N); + current_statement__ = 302; + td_simplex__ = Eigen::Matrix(N); + new (&td_simplex) Eigen::Map>(td_simplex__.data(), N); + stan::math::fill(td_simplex, std::numeric_limits::quiet_NaN()); + + current_statement__ = 303; + validate_non_negative_index("td_1d_simplex", "N", N); + current_statement__ = 304; + validate_non_negative_index("td_1d_simplex", "N", N); + current_statement__ = 305; + td_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(td_1d_simplex, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 306; + validate_non_negative_index("td_3d_simplex", "N", N); + current_statement__ = 307; + validate_non_negative_index("td_3d_simplex", "M", M); + current_statement__ = 308; + validate_non_negative_index("td_3d_simplex", "K", K); + current_statement__ = 309; + validate_non_negative_index("td_3d_simplex", "N", N); + current_statement__ = 310; + td_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(td_3d_simplex, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 311; + td_cfcov_54__ = Eigen::Matrix(5, 5); + new (&td_cfcov_54) Eigen::Map>(td_cfcov_54__.data(), 5, 5); + stan::math::fill(td_cfcov_54, std::numeric_limits::quiet_NaN()); + + current_statement__ = 312; + td_cfcov_33__ = Eigen::Matrix(3, 3); + new (&td_cfcov_33) Eigen::Map>(td_cfcov_33__.data(), 3, 3); + stan::math::fill(td_cfcov_33, std::numeric_limits::quiet_NaN()); + + current_statement__ = 313; + x__ = Eigen::Matrix(2); + new (&x) Eigen::Map>(x__.data(), 2); + stan::math::fill(x, std::numeric_limits::quiet_NaN()); + + current_statement__ = 314; + y__ = Eigen::Matrix(2); + new (&y) Eigen::Map>(y__.data(), 2); + stan::math::fill(y, std::numeric_limits::quiet_NaN()); + + current_statement__ = 315; + dat = std::vector(0, std::numeric_limits::quiet_NaN()); + + current_statement__ = 316; + dat_int = std::vector(0, std::numeric_limits::min()); + + current_statement__ = 317; + x_r = std::vector>(0, std::vector(0, std::numeric_limits::quiet_NaN())); + + + current_statement__ = 318; + x_i = std::vector>(0, std::vector(0, std::numeric_limits::min())); + + + current_statement__ = 319; + td_int = (primitive_value(1) || primitive_value(2)); + current_statement__ = 320; + td_int = (primitive_value(1) && primitive_value(2)); + current_statement__ = 329; + for (int i = 1; i <= 2; ++i) { + current_statement__ = 327; + for (int j = 1; j <= 3; ++j) { + current_statement__ = 325; + for (int m = 1; m <= 4; ++m) { + current_statement__ = 323; + for (int n = 1; n <= 5; ++n) { + current_statement__ = 321; + assign(td_ar_mat, 0.4, + "assigning variable td_ar_mat", index_uni(m), index_uni(n), + index_uni(i), index_uni(j)); + } + } + } + } + current_statement__ = 340; + for (int i = 1; i <= N; ++i) { + current_statement__ = 330; + assign(td_simplex, (1.0 / N), + "assigning variable td_simplex", index_uni(i)); + current_statement__ = 338; + for (int n = 1; n <= N; ++n) { + current_statement__ = 331; + assign(td_1d_simplex, (1.0 / N), + "assigning variable td_1d_simplex", index_uni(n), index_uni(i)); + current_statement__ = 336; + for (int m = 1; m <= M; ++m) { + current_statement__ = 334; + for (int k = 1; k <= K; ++k) { + current_statement__ = 332; + assign(td_3d_simplex, (1.0 / N), + "assigning variable td_3d_simplex", index_uni(n), + index_uni(m), + index_uni(k), + index_uni(i)); + } + } + } + } + current_statement__ = 346; + for (int i = 1; i <= 4; ++i) { + current_statement__ = 344; + for (int j = 1; j <= 5; ++j) { + Eigen::Matrix l_mat; + l_mat = Eigen::Matrix(2, 3); + stan::math::fill(l_mat, std::numeric_limits::quiet_NaN()); + + current_statement__ = 341; + assign(l_mat, + rvalue(d_ar_mat, "d_ar_mat", index_uni(i), index_uni(j)), + "assigning variable l_mat"); + current_statement__ = 342; + if (pstream__) { + stan_print(pstream__, "ar dim1: "); + stan_print(pstream__, i); + stan_print(pstream__, " ar dim2: "); + stan_print(pstream__, j); + stan_print(pstream__, " matrix: "); + stan_print(pstream__, l_mat); + stan_print(pstream__, "\n"); + } + } + } + current_statement__ = 347; + assign(td_cfcov_54, diag_matrix(rep_vector(1, rows(td_cfcov_54))), + "assigning variable td_cfcov_54"); + current_statement__ = 348; + assign(td_cfcov_33, diag_matrix(rep_vector(1, rows(td_cfcov_33))), + "assigning variable td_cfcov_33"); + { + double z; + z = std::numeric_limits::quiet_NaN(); + + Eigen::Matrix blocked_tdata_vs; + blocked_tdata_vs = Eigen::Matrix(2); + stan::math::fill(blocked_tdata_vs, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 351; + for (int sym1__ = 1; sym1__ <= stan::math::size(blocked_tdata_vs); + ++sym1__) { + { + double v; + current_statement__ = 351; + v = blocked_tdata_vs[(sym1__ - 1)]; + current_statement__ = 352; + z = 0; + } + } + std::vector indices; + indices = std::vector(4, std::numeric_limits::min()); + + current_statement__ = 353; + assign(indices, std::vector{1, 2, 3, 4}, + "assigning variable indices"); + { + std::vector sym1__; + current_statement__ = 354; + assign(sym1__, rvalue(indices, "indices", index_min_max(1, 3)), + "assigning variable sym1__"); + current_statement__ = 354; + for (int sym2__ = 1; sym2__ <= stan::math::size(sym1__); ++sym2__) { + { + int i; + current_statement__ = 354; + i = sym1__[(sym2__ - 1)]; + current_statement__ = 355; + z = i; + } + } + } + } + current_statement__ = 357; + assign(td_1dk, + rvalue(td_1d, "td_1d", index_multi(stan::model::deep_copy(td_1dk))), + "assigning variable td_1dk"); + current_statement__ = 358; + assign(td_simplex, + rvalue(td_1d_simplex, "td_1d_simplex", index_uni(1), index_omni()), + "assigning variable td_simplex"); + current_statement__ = 359; + assign(td_simplex, + rvalue(td_1d_simplex, "td_1d_simplex", index_uni(1), index_omni()), + "assigning variable td_simplex"); + current_statement__ = 360; + assign(td_simplex, + rvalue(td_1d_simplex, "td_1d_simplex", + index_uni(1), index_min_max(1, N)), "assigning variable td_simplex"); + current_statement__ = 361; + arr_mul_ind = std::vector>(2, std::vector(2, std::numeric_limits::min())); + + + current_statement__ = 362; + assign(arr_mul_ind, std::vector{1, 1}, + "assigning variable arr_mul_ind", index_uni(1), index_min_max(1, 2)); + current_statement__ = 363; + x_mul_ind = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 363; + assign(x_mul_ind, std::vector{1, 2}, + "assigning variable x_mul_ind"); + current_statement__ = 364; + transformed_data_real = std::numeric_limits::quiet_NaN(); + + current_statement__ = 365; + validate_non_negative_index("transformed_data_real_array", "d_int", + d_int); + current_statement__ = 366; + transformed_data_real_array = std::vector(d_int, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 367; + validate_non_negative_index("transformed_data_real_array_2d", "d_int", + d_int); + current_statement__ = 368; + transformed_data_real_array_2d = std::vector>(d_int, std::vector(2, std::numeric_limits::quiet_NaN())); + + + current_statement__ = 369; + validate_non_negative_index("transformed_data_real_array_3d", "d_int", + d_int); + current_statement__ = 370; + transformed_data_real_array_3d = std::vector>>(d_int, std::vector>(2, std::vector(3, std::numeric_limits::quiet_NaN()))); + + + current_statement__ = 371; + validate_non_negative_index("transformed_data_matrix", "d_int", d_int); + current_statement__ = 372; + validate_non_negative_index("transformed_data_matrix", "d_int", d_int); + current_statement__ = 373; + transformed_data_matrix__ = Eigen::Matrix(d_int, d_int); + new (&transformed_data_matrix) Eigen::Map>(transformed_data_matrix__.data(), d_int, d_int); + stan::math::fill(transformed_data_matrix, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 374; + validate_non_negative_index("transformed_data_matrix_array", "d_int", + d_int); + current_statement__ = 375; + validate_non_negative_index("transformed_data_matrix_array", "d_int", + d_int); + current_statement__ = 376; + validate_non_negative_index("transformed_data_matrix_array", "d_int", + d_int); + current_statement__ = 377; + transformed_data_matrix_array = std::vector>(d_int, Eigen::Matrix(d_int, d_int)); + stan::math::fill(transformed_data_matrix_array, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 378; + validate_non_negative_index("transformed_data_matrix_array_2d", + "d_int", d_int); + current_statement__ = 379; + validate_non_negative_index("transformed_data_matrix_array_2d", + "d_int", d_int); + current_statement__ = 380; + validate_non_negative_index("transformed_data_matrix_array_2d", + "d_int", d_int); + current_statement__ = 381; + transformed_data_matrix_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int, d_int))); + stan::math::fill(transformed_data_matrix_array_2d, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 382; + validate_non_negative_index("transformed_data_matrix_array_3d", + "d_int", d_int); + current_statement__ = 383; + validate_non_negative_index("transformed_data_matrix_array_3d", + "d_int", d_int); + current_statement__ = 384; + validate_non_negative_index("transformed_data_matrix_array_3d", + "d_int", d_int); + current_statement__ = 385; + transformed_data_matrix_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int, d_int)))); + stan::math::fill(transformed_data_matrix_array_3d, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 386; + validate_non_negative_index("transformed_data_vector", "d_int", d_int); + current_statement__ = 387; + transformed_data_vector__ = Eigen::Matrix(d_int); + new (&transformed_data_vector) Eigen::Map>(transformed_data_vector__.data(), d_int); + stan::math::fill(transformed_data_vector, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 388; + validate_non_negative_index("transformed_data_vector_array", "d_int", + d_int); + current_statement__ = 389; + validate_non_negative_index("transformed_data_vector_array", "d_int", + d_int); + current_statement__ = 390; + transformed_data_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); + stan::math::fill(transformed_data_vector_array, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 391; + validate_non_negative_index("transformed_data_vector_array_2d", + "d_int", d_int); + current_statement__ = 392; + validate_non_negative_index("transformed_data_vector_array_2d", + "d_int", d_int); + current_statement__ = 393; + transformed_data_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); + stan::math::fill(transformed_data_vector_array_2d, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 394; + validate_non_negative_index("transformed_data_vector_array_3d", + "d_int", d_int); + current_statement__ = 395; + validate_non_negative_index("transformed_data_vector_array_3d", + "d_int", d_int); + current_statement__ = 396; + transformed_data_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); + stan::math::fill(transformed_data_vector_array_3d, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 397; + validate_non_negative_index("transformed_data_row_vector", "d_int", + d_int); + current_statement__ = 398; + transformed_data_row_vector__ = Eigen::Matrix(d_int); + new (&transformed_data_row_vector) Eigen::Map>(transformed_data_row_vector__.data(), d_int); + stan::math::fill(transformed_data_row_vector, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 399; + validate_non_negative_index("transformed_data_row_vector_array", + "d_int", d_int); + current_statement__ = 400; + validate_non_negative_index("transformed_data_row_vector_array", + "d_int", d_int); + current_statement__ = 401; + transformed_data_row_vector_array = std::vector>(d_int, Eigen::Matrix(d_int)); + stan::math::fill(transformed_data_row_vector_array, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 402; + validate_non_negative_index("transformed_data_row_vector_array_2d", + "d_int", d_int); + current_statement__ = 403; + validate_non_negative_index("transformed_data_row_vector_array_2d", + "d_int", d_int); + current_statement__ = 404; + transformed_data_row_vector_array_2d = std::vector>>(d_int, std::vector>(2, Eigen::Matrix(d_int))); + stan::math::fill(transformed_data_row_vector_array_2d, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 405; + validate_non_negative_index("transformed_data_row_vector_array_3d", + "d_int", d_int); + current_statement__ = 406; + validate_non_negative_index("transformed_data_row_vector_array_3d", + "d_int", d_int); + current_statement__ = 407; + transformed_data_row_vector_array_3d = std::vector>>>(d_int, std::vector>>(2, std::vector>(3, Eigen::Matrix(d_int)))); + stan::math::fill(transformed_data_row_vector_array_3d, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 408; + transformed_data_real = pow(d_int, d_int); + current_statement__ = 409; + transformed_data_real = pow(d_real, d_int); + current_statement__ = 410; + transformed_data_real = pow(d_int, d_real); + current_statement__ = 411; + transformed_data_real = pow(d_real, d_real); + current_statement__ = 412; + assign(transformed_data_real_array, pow(d_int_array, d_int), + "assigning variable transformed_data_real_array"); + current_statement__ = 413; + assign(transformed_data_real_array, pow(d_int_array, d_real), + "assigning variable transformed_data_real_array"); + current_statement__ = 414; + assign(transformed_data_real_array_2d, pow(d_int_array_2d, d_int), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 415; + assign(transformed_data_real_array_2d, pow(d_int_array_2d, d_real), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 416; + assign(transformed_data_real_array_3d, pow(d_int_array_3d, d_int), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 417; + assign(transformed_data_real_array_3d, pow(d_int_array_3d, d_real), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 418; + assign(transformed_data_real_array, pow(d_int, d_int_array), + "assigning variable transformed_data_real_array"); + current_statement__ = 419; + assign(transformed_data_real_array, pow(d_real, d_int_array), + "assigning variable transformed_data_real_array"); + current_statement__ = 420; + assign(transformed_data_real_array_2d, pow(d_int, d_int_array_2d), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 421; + assign(transformed_data_real_array_2d, pow(d_real, d_int_array_2d), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 422; + assign(transformed_data_real_array_3d, pow(d_int, d_int_array_3d), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 423; + assign(transformed_data_real_array_3d, pow(d_real, d_int_array_3d), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 424; + assign(transformed_data_real_array, pow(d_int, d_real_array), + "assigning variable transformed_data_real_array"); + current_statement__ = 425; + assign(transformed_data_real_array, pow(d_real, d_real_array), + "assigning variable transformed_data_real_array"); + current_statement__ = 426; + assign(transformed_data_real_array_2d, pow(d_int, d_real_array_2d), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 427; + assign(transformed_data_real_array_2d, pow(d_real, d_real_array_2d), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 428; + assign(transformed_data_real_array_3d, pow(d_int, d_real_array_3d), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 429; + assign(transformed_data_real_array_3d, pow(d_real, d_real_array_3d), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 430; + assign(transformed_data_real_array, pow(d_real_array, d_int), + "assigning variable transformed_data_real_array"); + current_statement__ = 431; + assign(transformed_data_real_array, pow(d_real_array, d_real), + "assigning variable transformed_data_real_array"); + current_statement__ = 432; + assign(transformed_data_real_array_2d, pow(d_real_array_2d, d_int), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 433; + assign(transformed_data_real_array_2d, pow(d_real_array_2d, d_real), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 434; + assign(transformed_data_real_array_3d, pow(d_real_array_3d, d_int), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 435; + assign(transformed_data_real_array_3d, pow(d_real_array_3d, d_real), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 436; + assign(transformed_data_real_array, pow(d_int_array, d_int_array), + "assigning variable transformed_data_real_array"); + current_statement__ = 437; + assign(transformed_data_real_array, pow(d_real_array, d_real_array), + "assigning variable transformed_data_real_array"); + current_statement__ = 438; + assign(transformed_data_real_array_2d, + pow(d_int_array_2d, d_int_array_2d), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 439; + assign(transformed_data_real_array_2d, + pow(d_real_array_2d, d_real_array_2d), + "assigning variable transformed_data_real_array_2d"); + current_statement__ = 440; + assign(transformed_data_real_array_3d, + pow(d_int_array_3d, d_int_array_3d), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 441; + assign(transformed_data_real_array_3d, + pow(d_real_array_3d, d_real_array_3d), + "assigning variable transformed_data_real_array_3d"); + current_statement__ = 442; + assign(transformed_data_vector, pow(d_vector, d_int), + "assigning variable transformed_data_vector"); + current_statement__ = 443; + assign(transformed_data_vector, pow(d_vector, d_real), + "assigning variable transformed_data_vector"); + current_statement__ = 444; + assign(transformed_data_vector, + stan::math::fma(d_vector, d_vector, d_vector), + "assigning variable transformed_data_vector"); + current_statement__ = 445; + assign(transformed_data_vector, + stan::math::fma(d_vector, d_vector, d_real), + "assigning variable transformed_data_vector"); + current_statement__ = 446; + assign(transformed_data_vector, + stan::math::fma(d_real, d_vector, d_real), + "assigning variable transformed_data_vector"); + current_statement__ = 447; + assign(transformed_data_vector_array, pow(d_vector_array, d_int), + "assigning variable transformed_data_vector_array"); + current_statement__ = 448; + assign(transformed_data_vector_array, pow(d_vector_array, d_real), + "assigning variable transformed_data_vector_array"); + current_statement__ = 449; + assign(transformed_data_vector_array_2d, pow(d_vector_array_2d, d_int), + "assigning variable transformed_data_vector_array_2d"); + current_statement__ = 450; + assign(transformed_data_vector_array_2d, + pow(d_vector_array_2d, d_real), + "assigning variable transformed_data_vector_array_2d"); + current_statement__ = 451; + assign(transformed_data_vector_array_3d, pow(d_vector_array_3d, d_int), + "assigning variable transformed_data_vector_array_3d"); + current_statement__ = 452; + assign(transformed_data_vector_array_3d, + pow(d_vector_array_3d, d_real), + "assigning variable transformed_data_vector_array_3d"); + current_statement__ = 453; + assign(transformed_data_vector, pow(d_int, d_vector), + "assigning variable transformed_data_vector"); + current_statement__ = 454; + assign(transformed_data_vector, pow(d_real, d_vector), + "assigning variable transformed_data_vector"); + current_statement__ = 455; + assign(transformed_data_vector_array, pow(d_int, d_vector_array), + "assigning variable transformed_data_vector_array"); + current_statement__ = 456; + assign(transformed_data_vector_array, pow(d_real, d_vector_array), + "assigning variable transformed_data_vector_array"); + current_statement__ = 457; + assign(transformed_data_vector_array_2d, pow(d_int, d_vector_array_2d), + "assigning variable transformed_data_vector_array_2d"); + current_statement__ = 458; + assign(transformed_data_vector_array_2d, + pow(d_real, d_vector_array_2d), + "assigning variable transformed_data_vector_array_2d"); + current_statement__ = 459; + assign(transformed_data_vector_array_3d, pow(d_int, d_vector_array_3d), + "assigning variable transformed_data_vector_array_3d"); + current_statement__ = 460; + assign(transformed_data_vector_array_3d, + pow(d_real, d_vector_array_3d), + "assigning variable transformed_data_vector_array_3d"); + current_statement__ = 461; + assign(transformed_data_vector, pow(d_vector, d_vector), + "assigning variable transformed_data_vector"); + current_statement__ = 462; + assign(transformed_data_vector, + stan::math::fma(d_vector, d_vector, d_vector), + "assigning variable transformed_data_vector"); + current_statement__ = 463; + assign(transformed_data_vector, + stan::math::fma(d_vector, d_vector, d_real), + "assigning variable transformed_data_vector"); + current_statement__ = 464; + assign(transformed_data_vector_array, + pow(d_vector_array, d_vector_array), + "assigning variable transformed_data_vector_array"); + current_statement__ = 465; + assign(transformed_data_vector_array_2d, + pow(d_vector_array_2d, d_vector_array_2d), + "assigning variable transformed_data_vector_array_2d"); + current_statement__ = 466; + assign(transformed_data_vector_array_3d, + pow(d_vector_array_3d, d_vector_array_3d), + "assigning variable transformed_data_vector_array_3d"); + current_statement__ = 467; + assign(transformed_data_row_vector, pow(d_row_vector, d_int), + "assigning variable transformed_data_row_vector"); + current_statement__ = 468; + assign(transformed_data_row_vector, pow(d_row_vector, d_real), + "assigning variable transformed_data_row_vector"); + current_statement__ = 469; + assign(transformed_data_row_vector_array, + pow(d_row_vector_array, d_int), + "assigning variable transformed_data_row_vector_array"); + current_statement__ = 470; + assign(transformed_data_row_vector_array, + pow(d_row_vector_array, d_real), + "assigning variable transformed_data_row_vector_array"); + current_statement__ = 471; + assign(transformed_data_row_vector_array_2d, + pow(d_row_vector_array_2d, d_int), + "assigning variable transformed_data_row_vector_array_2d"); + current_statement__ = 472; + assign(transformed_data_row_vector_array_2d, + pow(d_row_vector_array_2d, d_real), + "assigning variable transformed_data_row_vector_array_2d"); + current_statement__ = 473; + assign(transformed_data_row_vector_array_3d, + pow(d_row_vector_array_3d, d_int), + "assigning variable transformed_data_row_vector_array_3d"); + current_statement__ = 474; + assign(transformed_data_row_vector_array_3d, + pow(d_row_vector_array_3d, d_real), + "assigning variable transformed_data_row_vector_array_3d"); + current_statement__ = 475; + assign(transformed_data_row_vector, pow(d_int, d_row_vector), + "assigning variable transformed_data_row_vector"); + current_statement__ = 476; + assign(transformed_data_row_vector, pow(d_real, d_row_vector), + "assigning variable transformed_data_row_vector"); + current_statement__ = 477; + assign(transformed_data_row_vector_array, + pow(d_int, d_row_vector_array), + "assigning variable transformed_data_row_vector_array"); + current_statement__ = 478; + assign(transformed_data_row_vector_array, + pow(d_real, d_row_vector_array), + "assigning variable transformed_data_row_vector_array"); + current_statement__ = 479; + assign(transformed_data_row_vector_array_2d, + pow(d_int, d_row_vector_array_2d), + "assigning variable transformed_data_row_vector_array_2d"); + current_statement__ = 480; + assign(transformed_data_row_vector_array_2d, + pow(d_real, d_row_vector_array_2d), + "assigning variable transformed_data_row_vector_array_2d"); + current_statement__ = 481; + assign(transformed_data_row_vector_array_3d, + pow(d_int, d_row_vector_array_3d), + "assigning variable transformed_data_row_vector_array_3d"); + current_statement__ = 482; + assign(transformed_data_row_vector_array_3d, + pow(d_real, d_row_vector_array_3d), + "assigning variable transformed_data_row_vector_array_3d"); + current_statement__ = 483; + assign(transformed_data_row_vector, pow(d_row_vector, d_row_vector), + "assigning variable transformed_data_row_vector"); + current_statement__ = 484; + assign(transformed_data_row_vector_array, + pow(d_row_vector_array, d_row_vector_array), + "assigning variable transformed_data_row_vector_array"); + current_statement__ = 485; + assign(transformed_data_row_vector_array_2d, + pow(d_row_vector_array_2d, d_row_vector_array_2d), + "assigning variable transformed_data_row_vector_array_2d"); + current_statement__ = 486; + assign(transformed_data_row_vector_array_3d, + pow(d_row_vector_array_3d, d_row_vector_array_3d), + "assigning variable transformed_data_row_vector_array_3d"); + current_statement__ = 487; + assign(transformed_data_matrix, pow(d_matrix, d_int), + "assigning variable transformed_data_matrix"); + current_statement__ = 488; + assign(transformed_data_matrix, pow(d_matrix, d_real), + "assigning variable transformed_data_matrix"); + current_statement__ = 489; + assign(transformed_data_matrix, + stan::math::fma(d_matrix, d_matrix, d_matrix), + "assigning variable transformed_data_matrix"); + current_statement__ = 490; + assign(transformed_data_matrix, + stan::math::fma(d_matrix, d_matrix, d_real), + "assigning variable transformed_data_matrix"); + current_statement__ = 491; + assign(transformed_data_matrix_array, pow(d_matrix_array, d_int), + "assigning variable transformed_data_matrix_array"); + current_statement__ = 492; + assign(transformed_data_matrix_array, pow(d_matrix_array, d_real), + "assigning variable transformed_data_matrix_array"); + current_statement__ = 493; + assign(transformed_data_matrix_array_2d, pow(d_matrix_array_2d, d_int), + "assigning variable transformed_data_matrix_array_2d"); + current_statement__ = 494; + assign(transformed_data_matrix_array_2d, + pow(d_matrix_array_2d, d_real), + "assigning variable transformed_data_matrix_array_2d"); + current_statement__ = 495; + assign(transformed_data_matrix_array_3d, pow(d_matrix_array_3d, d_int), + "assigning variable transformed_data_matrix_array_3d"); + current_statement__ = 496; + assign(transformed_data_matrix_array_3d, + pow(d_matrix_array_3d, d_real), + "assigning variable transformed_data_matrix_array_3d"); + current_statement__ = 497; + assign(transformed_data_matrix, pow(d_int, d_matrix), + "assigning variable transformed_data_matrix"); + current_statement__ = 498; + assign(transformed_data_matrix, pow(d_real, d_matrix), + "assigning variable transformed_data_matrix"); + current_statement__ = 499; + assign(transformed_data_matrix_array, pow(d_int, d_matrix_array), + "assigning variable transformed_data_matrix_array"); + current_statement__ = 500; + assign(transformed_data_matrix_array, pow(d_real, d_matrix_array), + "assigning variable transformed_data_matrix_array"); + current_statement__ = 501; + assign(transformed_data_matrix_array_2d, pow(d_int, d_matrix_array_2d), + "assigning variable transformed_data_matrix_array_2d"); + current_statement__ = 502; + assign(transformed_data_matrix_array_2d, + pow(d_real, d_matrix_array_2d), + "assigning variable transformed_data_matrix_array_2d"); + current_statement__ = 503; + assign(transformed_data_matrix_array_3d, pow(d_int, d_matrix_array_3d), + "assigning variable transformed_data_matrix_array_3d"); + current_statement__ = 504; + assign(transformed_data_matrix_array_3d, + pow(d_real, d_matrix_array_3d), + "assigning variable transformed_data_matrix_array_3d"); + current_statement__ = 505; + assign(transformed_data_matrix, pow(d_matrix, d_matrix), + "assigning variable transformed_data_matrix"); + current_statement__ = 506; + assign(transformed_data_matrix_array, + pow(d_matrix_array, d_matrix_array), + "assigning variable transformed_data_matrix_array"); + current_statement__ = 507; + assign(transformed_data_matrix_array_2d, + pow(d_matrix_array_2d, d_matrix_array_2d), + "assigning variable transformed_data_matrix_array_2d"); + current_statement__ = 508; + assign(transformed_data_matrix_array_3d, + pow(d_matrix_array_3d, d_matrix_array_3d), + "assigning variable transformed_data_matrix_array_3d"); + current_statement__ = 509; + td_int = (d_int * d_int); + current_statement__ = 510; + transformed_data_real = (d_real * d_real); + current_statement__ = 300; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 300; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 300; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 300; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 300; + check_greater_or_equal(function__, + "td_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(td_ar_mat, "td_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 0); + } + } + } + } + current_statement__ = 300; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 300; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 300; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 300; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 300; + check_less_or_equal(function__, + "td_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(td_ar_mat, "td_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 1); + } + } + } + } + current_statement__ = 302; + check_simplex(function__, "td_simplex", td_simplex); + current_statement__ = 305; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 305; + check_simplex(function__, "td_1d_simplex[sym1__]", + td_1d_simplex[(sym1__ - 1)]); + } + current_statement__ = 310; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 310; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 310; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 310; + check_simplex(function__, + "td_3d_simplex[sym1__, sym2__, sym3__]", + td_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - + 1)]); + } + } + } + current_statement__ = 311; + check_cholesky_factor(function__, "td_cfcov_54", td_cfcov_54); + current_statement__ = 312; + check_cholesky_factor(function__, "td_cfcov_33", td_cfcov_33); + current_statement__ = 511; + validate_non_negative_index("p_real_1d_ar", "N", N); + current_statement__ = 512; + validate_non_negative_index("p_real_3d_ar", "N", N); + current_statement__ = 513; + validate_non_negative_index("p_real_3d_ar", "M", M); + current_statement__ = 514; + validate_non_negative_index("p_real_3d_ar", "K", K); + current_statement__ = 515; + validate_non_negative_index("p_vec", "N", N); + current_statement__ = 516; + validate_non_negative_index("p_1d_vec", "N", N); + current_statement__ = 517; + validate_non_negative_index("p_1d_vec", "N", N); + current_statement__ = 518; + validate_non_negative_index("p_3d_vec", "N", N); + current_statement__ = 519; + validate_non_negative_index("p_3d_vec", "M", M); + current_statement__ = 520; + validate_non_negative_index("p_3d_vec", "K", K); + current_statement__ = 521; + validate_non_negative_index("p_3d_vec", "N", N); + current_statement__ = 522; + validate_non_negative_index("p_row_vec", "N", N); + current_statement__ = 523; + validate_non_negative_index("p_1d_row_vec", "N", N); + current_statement__ = 524; + validate_non_negative_index("p_1d_row_vec", "N", N); + current_statement__ = 525; + validate_non_negative_index("p_3d_row_vec", "N", N); + current_statement__ = 526; + validate_non_negative_index("p_3d_row_vec", "M", M); + current_statement__ = 527; + validate_non_negative_index("p_3d_row_vec", "K", K); + current_statement__ = 528; + validate_non_negative_index("p_3d_row_vec", "N", N); + current_statement__ = 529; + validate_positive_index("p_simplex", "N", N); + current_statement__ = 530; + validate_non_negative_index("p_1d_simplex", "N", N); + current_statement__ = 531; + validate_positive_index("p_1d_simplex", "N", N); + current_statement__ = 532; + validate_non_negative_index("p_3d_simplex", "N", N); + current_statement__ = 533; + validate_non_negative_index("p_3d_simplex", "M", M); + current_statement__ = 534; + validate_non_negative_index("p_3d_simplex", "K", K); + current_statement__ = 535; + validate_positive_index("p_3d_simplex", "N", N); + current_statement__ = 536; + check_greater_or_equal("cholesky_factor_cov p_cfcov_54", + "num rows (must be greater or equal to num cols)", + 5, 4); + current_statement__ = 537; + check_greater_or_equal("cholesky_factor_cov p_cfcov_33", + "num rows (must be greater or equal to num cols)", + 3, 3); + current_statement__ = 538; + validate_non_negative_index("p_cfcov_33_ar", "K", K); + current_statement__ = 539; + check_greater_or_equal("cholesky_factor_cov p_cfcov_33_ar", + "num rows (must be greater or equal to num cols)", + 3, 3); + current_statement__ = 540; + validate_non_negative_index("tp_real_1d_ar", "N", N); + current_statement__ = 541; + validate_non_negative_index("tp_real_3d_ar", "N", N); + current_statement__ = 542; + validate_non_negative_index("tp_real_3d_ar", "M", M); + current_statement__ = 543; + validate_non_negative_index("tp_real_3d_ar", "K", K); + current_statement__ = 544; + validate_non_negative_index("tp_vec", "N", N); + current_statement__ = 545; + validate_non_negative_index("tp_1d_vec", "N", N); + current_statement__ = 546; + validate_non_negative_index("tp_1d_vec", "N", N); + current_statement__ = 547; + validate_non_negative_index("tp_3d_vec", "N", N); + current_statement__ = 548; + validate_non_negative_index("tp_3d_vec", "M", M); + current_statement__ = 549; + validate_non_negative_index("tp_3d_vec", "K", K); + current_statement__ = 550; + validate_non_negative_index("tp_3d_vec", "N", N); + current_statement__ = 551; + validate_non_negative_index("tp_row_vec", "N", N); + current_statement__ = 552; + validate_non_negative_index("tp_1d_row_vec", "N", N); + current_statement__ = 553; + validate_non_negative_index("tp_1d_row_vec", "N", N); + current_statement__ = 554; + validate_non_negative_index("tp_3d_row_vec", "N", N); + current_statement__ = 555; + validate_non_negative_index("tp_3d_row_vec", "M", M); + current_statement__ = 556; + validate_non_negative_index("tp_3d_row_vec", "K", K); + current_statement__ = 557; + validate_non_negative_index("tp_3d_row_vec", "N", N); + current_statement__ = 558; + validate_non_negative_index("tp_simplex", "N", N); + current_statement__ = 559; + validate_non_negative_index("tp_1d_simplex", "N", N); + current_statement__ = 560; + validate_non_negative_index("tp_1d_simplex", "N", N); + current_statement__ = 561; + validate_non_negative_index("tp_3d_simplex", "N", N); + current_statement__ = 562; + validate_non_negative_index("tp_3d_simplex", "M", M); + current_statement__ = 563; + validate_non_negative_index("tp_3d_simplex", "K", K); + current_statement__ = 564; + validate_non_negative_index("tp_3d_simplex", "N", N); + current_statement__ = 565; + validate_non_negative_index("tp_cfcov_33_ar", "K", K); + current_statement__ = 566; + validate_non_negative_index("gq_real_1d_ar", "N", N); + current_statement__ = 567; + validate_non_negative_index("gq_real_3d_ar", "N", N); + current_statement__ = 568; + validate_non_negative_index("gq_real_3d_ar", "M", M); + current_statement__ = 569; + validate_non_negative_index("gq_real_3d_ar", "K", K); + current_statement__ = 570; + validate_non_negative_index("gq_vec", "N", N); + current_statement__ = 571; + validate_non_negative_index("gq_1d_vec", "N", N); + current_statement__ = 572; + validate_non_negative_index("gq_1d_vec", "N", N); + current_statement__ = 573; + validate_non_negative_index("gq_3d_vec", "N", N); + current_statement__ = 574; + validate_non_negative_index("gq_3d_vec", "M", M); + current_statement__ = 575; + validate_non_negative_index("gq_3d_vec", "K", K); + current_statement__ = 576; + validate_non_negative_index("gq_3d_vec", "N", N); + current_statement__ = 577; + validate_non_negative_index("gq_row_vec", "N", N); + current_statement__ = 578; + validate_non_negative_index("gq_1d_row_vec", "N", N); + current_statement__ = 579; + validate_non_negative_index("gq_1d_row_vec", "N", N); + current_statement__ = 580; + validate_non_negative_index("gq_3d_row_vec", "N", N); + current_statement__ = 581; + validate_non_negative_index("gq_3d_row_vec", "M", M); + current_statement__ = 582; + validate_non_negative_index("gq_3d_row_vec", "K", K); + current_statement__ = 583; + validate_non_negative_index("gq_3d_row_vec", "N", N); + current_statement__ = 584; + validate_non_negative_index("gq_simplex", "N", N); + current_statement__ = 585; + validate_non_negative_index("gq_1d_simplex", "N", N); + current_statement__ = 586; + validate_non_negative_index("gq_1d_simplex", "N", N); + current_statement__ = 587; + validate_non_negative_index("gq_3d_simplex", "N", N); + current_statement__ = 588; + validate_non_negative_index("gq_3d_simplex", "M", M); + current_statement__ = 589; + validate_non_negative_index("gq_3d_simplex", "K", K); + current_statement__ = 590; + validate_non_negative_index("gq_3d_simplex", "N", N); + current_statement__ = 591; + validate_non_negative_index("gq_cfcov_33_ar", "K", K); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1 + 1 + 1 + 5 + 5 + 5 + N + (N * M * K) + N + (N * N) + + (N * M * K * N) + N + (N * N) + (N * M * K * N) + (5 * 4) + + (4 * 5 * 2 * 3) + (N - 1) + (N * (N - 1)) + (N * M * K * (N - 1)) + + ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)) + + ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)) + + (K * ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + 2 + 2; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "mother_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + local_scalar_t__ p_real; + p_real = DUMMY_VAR__; + + current_statement__ = 1; + p_real = in__.template read(); + local_scalar_t__ p_upper; + p_upper = DUMMY_VAR__; + + current_statement__ = 2; + p_upper = in__.template read_constrain_lb( + p_real, lp__); + local_scalar_t__ p_lower; + p_lower = DUMMY_VAR__; + + current_statement__ = 3; + p_lower = in__.template read_constrain_ub( + p_upper, lp__); + std::vector offset_multiplier; + offset_multiplier = std::vector(5, DUMMY_VAR__); + + current_statement__ = 4; + offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( + 1, 2, lp__, 5); + std::vector no_offset_multiplier; + no_offset_multiplier = std::vector(5, DUMMY_VAR__); + + current_statement__ = 5; + no_offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( + 0, 2, lp__, 5); + std::vector offset_no_multiplier; + offset_no_multiplier = std::vector(5, DUMMY_VAR__); + + current_statement__ = 6; + offset_no_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( + 3, 1, lp__, 5); + std::vector p_real_1d_ar; + p_real_1d_ar = std::vector(N, DUMMY_VAR__); + + current_statement__ = 7; + p_real_1d_ar = in__.template read_constrain_lb, jacobian__>( + 0, lp__, N); + std::vector>> p_real_3d_ar; + p_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, DUMMY_VAR__))); + + + current_statement__ = 8; + p_real_3d_ar = in__.template read_constrain_lb>>, jacobian__>( + 0, lp__, N, M, K); + Eigen::Matrix p_vec; + p_vec = Eigen::Matrix(N); + stan::math::fill(p_vec, DUMMY_VAR__); + + current_statement__ = 9; + p_vec = in__.template read_constrain_lb, jacobian__>( + 0, lp__, N); + std::vector> p_1d_vec; + p_1d_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_vec, DUMMY_VAR__); + + current_statement__ = 10; + p_1d_vec = in__.template read>>( + N, N); + std::vector>>> p_3d_vec; + p_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_vec, DUMMY_VAR__); + + current_statement__ = 11; + p_3d_vec = in__.template read>>>>( + N, M, K, N); + Eigen::Matrix p_row_vec; + p_row_vec = Eigen::Matrix(N); + stan::math::fill(p_row_vec, DUMMY_VAR__); + + current_statement__ = 12; + p_row_vec = in__.template read>( + N); + std::vector> p_1d_row_vec; + p_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_row_vec, DUMMY_VAR__); + + current_statement__ = 13; + p_1d_row_vec = in__.template read>>( + N, N); + std::vector>>> p_3d_row_vec; + p_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_row_vec, DUMMY_VAR__); + + current_statement__ = 14; + p_3d_row_vec = in__.template read>>>>( + N, M, K, N); + Eigen::Matrix p_mat; + p_mat = Eigen::Matrix(5, 4); + stan::math::fill(p_mat, DUMMY_VAR__); + + current_statement__ = 15; + p_mat = in__.template read>(5, + 4); + std::vector>> p_ar_mat; + p_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(p_ar_mat, DUMMY_VAR__); + + current_statement__ = 16; + p_ar_mat = in__.template read_constrain_lub>>, jacobian__>( + 0, 1, lp__, 4, 5, 2, 3); + Eigen::Matrix p_simplex; + p_simplex = Eigen::Matrix(N); + stan::math::fill(p_simplex, DUMMY_VAR__); + + current_statement__ = 17; + p_simplex = in__.template read_constrain_simplex, jacobian__>( + lp__, N); + std::vector> p_1d_simplex; + p_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_simplex, DUMMY_VAR__); + + current_statement__ = 18; + p_1d_simplex = in__.template read_constrain_simplex>, jacobian__>( + lp__, N, N); + std::vector>>> p_3d_simplex; + p_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_simplex, DUMMY_VAR__); + + current_statement__ = 19; + p_3d_simplex = in__.template read_constrain_simplex>>>, jacobian__>( + lp__, N, M, K, N); + Eigen::Matrix p_cfcov_54; + p_cfcov_54 = Eigen::Matrix(5, 4); + stan::math::fill(p_cfcov_54, DUMMY_VAR__); + + current_statement__ = 20; + p_cfcov_54 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( + lp__, 5, 4); + Eigen::Matrix p_cfcov_33; + p_cfcov_33 = Eigen::Matrix(3, 3); + stan::math::fill(p_cfcov_33, DUMMY_VAR__); + + current_statement__ = 21; + p_cfcov_33 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( + lp__, 3, 3); + std::vector> p_cfcov_33_ar; + p_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + stan::math::fill(p_cfcov_33_ar, DUMMY_VAR__); + + current_statement__ = 22; + p_cfcov_33_ar = in__.template read_constrain_cholesky_factor_cov>, jacobian__>( + lp__, K, 3, 3); + Eigen::Matrix x_p; + x_p = Eigen::Matrix(2); + stan::math::fill(x_p, DUMMY_VAR__); + + current_statement__ = 23; + x_p = in__.template read>(2); + Eigen::Matrix y_p; + y_p = Eigen::Matrix(2); + stan::math::fill(y_p, DUMMY_VAR__); + + current_statement__ = 24; + y_p = in__.template read>(2); + std::vector tp_real_1d_ar; + tp_real_1d_ar = std::vector(N, DUMMY_VAR__); + + std::vector>> tp_real_3d_ar; + tp_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, DUMMY_VAR__))); + + + Eigen::Matrix tp_vec; + tp_vec = Eigen::Matrix(N); + stan::math::fill(tp_vec, DUMMY_VAR__); + + std::vector> tp_1d_vec; + tp_1d_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(tp_1d_vec, DUMMY_VAR__); + + std::vector>>> tp_3d_vec; + tp_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(tp_3d_vec, DUMMY_VAR__); + + Eigen::Matrix tp_row_vec; + tp_row_vec = Eigen::Matrix(N); + stan::math::fill(tp_row_vec, DUMMY_VAR__); + + std::vector> tp_1d_row_vec; + tp_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(tp_1d_row_vec, DUMMY_VAR__); + + std::vector>>> tp_3d_row_vec; + tp_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(tp_3d_row_vec, DUMMY_VAR__); + + Eigen::Matrix tp_mat; + tp_mat = Eigen::Matrix(5, 4); + stan::math::fill(tp_mat, DUMMY_VAR__); + + std::vector>> tp_ar_mat; + tp_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(tp_ar_mat, DUMMY_VAR__); + + Eigen::Matrix tp_simplex; + tp_simplex = Eigen::Matrix(N); + stan::math::fill(tp_simplex, DUMMY_VAR__); + + std::vector> tp_1d_simplex; + tp_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(tp_1d_simplex, DUMMY_VAR__); + + std::vector>>> tp_3d_simplex; + tp_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(tp_3d_simplex, DUMMY_VAR__); + + Eigen::Matrix tp_cfcov_54; + tp_cfcov_54 = Eigen::Matrix(5, 4); + stan::math::fill(tp_cfcov_54, DUMMY_VAR__); + + Eigen::Matrix tp_cfcov_33; + tp_cfcov_33 = Eigen::Matrix(3, 3); + stan::math::fill(tp_cfcov_33, DUMMY_VAR__); + + std::vector> tp_cfcov_33_ar; + tp_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + stan::math::fill(tp_cfcov_33_ar, DUMMY_VAR__); + + Eigen::Matrix theta_p; + theta_p = Eigen::Matrix(2); + stan::math::fill(theta_p, DUMMY_VAR__); + + local_scalar_t__ tp_real; + tp_real = DUMMY_VAR__; + + current_statement__ = 43; + assign(tp_real_1d_ar, p_real_1d_ar, "assigning variable tp_real_1d_ar"); + current_statement__ = 44; + assign(tp_real_3d_ar, p_real_3d_ar, "assigning variable tp_real_3d_ar"); + current_statement__ = 45; + assign(tp_1d_vec, p_1d_vec, "assigning variable tp_1d_vec"); + current_statement__ = 46; + assign(tp_3d_vec, p_3d_vec, "assigning variable tp_3d_vec"); + current_statement__ = 47; + assign(tp_simplex, p_simplex, "assigning variable tp_simplex"); + current_statement__ = 48; + assign(tp_1d_simplex, p_1d_simplex, "assigning variable tp_1d_simplex"); + current_statement__ = 49; + assign(tp_3d_simplex, p_3d_simplex, "assigning variable tp_3d_simplex"); + current_statement__ = 50; + assign(tp_cfcov_54, p_cfcov_54, "assigning variable tp_cfcov_54"); + current_statement__ = 51; + assign(tp_cfcov_33, p_cfcov_33, "assigning variable tp_cfcov_33"); + current_statement__ = 52; + assign(tp_cfcov_33_ar, p_cfcov_33_ar, + "assigning variable tp_cfcov_33_ar"); + current_statement__ = 53; + assign(tp_mat, stan::math::fma(d_cfcov_54, p_mat, p_mat), + "assigning variable tp_mat"); + current_statement__ = 54; + assign(tp_vec, stan::math::fma(d_vec, p_vec, p_vec), + "assigning variable tp_vec"); + current_statement__ = 63; + for (int i = 1; i <= 2; ++i) { + current_statement__ = 61; + for (int j = 1; j <= 3; ++j) { + current_statement__ = 59; + for (int m = 1; m <= 4; ++m) { + current_statement__ = 57; + for (int n = 1; n <= 5; ++n) { + current_statement__ = 55; + assign(tp_ar_mat, 0.4, + "assigning variable tp_ar_mat", index_uni(m), index_uni(n), + index_uni(i), index_uni(j)); + } + } + } + } + current_statement__ = 65; + for (int i = 1; i <= N; ++i) { + current_statement__ = 64; + assign(tp_vec, (-1.0 * rvalue(p_vec, "p_vec", index_uni(i))), + "assigning variable tp_vec", index_uni(i)); + } + current_statement__ = 66; + assign(tp_row_vec, + transpose(rvalue(tp_1d_vec, "tp_1d_vec", index_uni(1))), + "assigning variable tp_row_vec"); + current_statement__ = 67; + assign(tp_1d_row_vec, p_1d_row_vec, "assigning variable tp_1d_row_vec"); + current_statement__ = 68; + assign(tp_3d_row_vec, p_3d_row_vec, "assigning variable tp_3d_row_vec"); + current_statement__ = 69; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, + pstream__), "assigning variable theta_p"); + current_statement__ = 70; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 71; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x, y_p, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 72; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, + pstream__), "assigning variable theta_p"); + current_statement__ = 73; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 74; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, + pstream__), "assigning variable theta_p"); + current_statement__ = 75; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 76; + tp_real = (p_real * p_real); + current_statement__ = 77; + tp_real = (p_real / p_real); + current_statement__ = 25; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 25; + check_greater_or_equal(function__, "tp_real_1d_ar[sym1__]", + tp_real_1d_ar[(sym1__ - 1)], 0); + } + current_statement__ = 26; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 26; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 26; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 26; + check_greater_or_equal(function__, + "tp_real_3d_ar[sym1__, sym2__, sym3__]", + tp_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ + (sym3__ - 1)], 0); + } + } + } + current_statement__ = 27; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 27; + check_less_or_equal(function__, "tp_vec[sym1__]", + tp_vec[(sym1__ - 1)], 0); + } + current_statement__ = 34; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 34; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 34; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 34; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 34; + check_greater_or_equal(function__, + "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(tp_ar_mat, "tp_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 0); + } + } + } + } + current_statement__ = 34; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 34; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 34; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 34; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 34; + check_less_or_equal(function__, + "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(tp_ar_mat, "tp_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 1); + } + } + } + } + current_statement__ = 35; + check_simplex(function__, "tp_simplex", tp_simplex); + current_statement__ = 36; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 36; + check_simplex(function__, "tp_1d_simplex[sym1__]", + tp_1d_simplex[(sym1__ - 1)]); + } + current_statement__ = 37; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 37; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 37; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 37; + check_simplex(function__, + "tp_3d_simplex[sym1__, sym2__, sym3__]", + tp_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - + 1)]); + } + } + } + current_statement__ = 38; + check_cholesky_factor(function__, "tp_cfcov_54", tp_cfcov_54); + current_statement__ = 39; + check_cholesky_factor(function__, "tp_cfcov_33", tp_cfcov_33); + current_statement__ = 40; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 40; + check_cholesky_factor(function__, "tp_cfcov_33_ar[sym1__]", + tp_cfcov_33_ar[(sym1__ - 1)]); + } + { + Eigen::Matrix tmp; + tmp = Eigen::Matrix(0); + stan::math::fill(tmp, DUMMY_VAR__); + + std::vector> tmp2; + tmp2 = std::vector>(0, Eigen::Matrix(0)); + stan::math::fill(tmp2, DUMMY_VAR__); + + local_scalar_t__ r1; + r1 = DUMMY_VAR__; + + current_statement__ = 156; + r1 = foo_bar1(p_real, pstream__); + local_scalar_t__ r2; + r2 = DUMMY_VAR__; + + current_statement__ = 157; + r2 = foo_bar1(J, pstream__); + current_statement__ = 158; + lp_accum__.add(normal_lpdf(p_real, 0, 1)); + current_statement__ = 159; + lp_accum__.add(normal_lpdf(offset_multiplier, 0, 1)); + current_statement__ = 160; + lp_accum__.add(normal_lpdf(no_offset_multiplier, 0, 1)); + current_statement__ = 161; + lp_accum__.add(normal_lpdf(offset_no_multiplier, 0, 1)); + current_statement__ = 162; + lp_accum__.add(normal_lpdf(to_vector(p_real_1d_ar), 0, 1)); + current_statement__ = 175; + for (int n = 1; n <= N; ++n) { + current_statement__ = 163; + lp_accum__.add( + normal_lpdf( + to_vector(rvalue(p_1d_vec, "p_1d_vec", index_uni(n))), 0, 1)); + current_statement__ = 164; + lp_accum__.add( + normal_lpdf( + to_vector(rvalue(p_1d_row_vec, "p_1d_row_vec", index_uni(n))), + 0, 1)); + current_statement__ = 165; + lp_accum__.add( + normal_lpdf( + to_vector(rvalue(p_1d_simplex, "p_1d_simplex", index_uni(n))), + 0, 1)); + current_statement__ = 173; + for (int m = 1; m <= M; ++m) { + current_statement__ = 171; + for (int k = 1; k <= K; ++k) { + current_statement__ = 166; + lp_accum__.add( + normal_lpdf( + to_vector( + rvalue(p_3d_vec, "p_3d_vec", + index_uni(n), index_uni(m), index_uni(k))), + rvalue(d_3d_vec, "d_3d_vec", + index_uni(n), index_uni(m), index_uni(k)), 1)); + current_statement__ = 167; + lp_accum__.add( + normal_lpdf( + to_vector( + rvalue(p_3d_row_vec, "p_3d_row_vec", + index_uni(n), index_uni(m), index_uni(k))), + rvalue(d_3d_row_vec, "d_3d_row_vec", + index_uni(n), index_uni(m), index_uni(k)), 1)); + current_statement__ = 168; + lp_accum__.add( + normal_lpdf( + to_vector( + rvalue(p_3d_simplex, "p_3d_simplex", + index_uni(n), index_uni(m), index_uni(k))), + rvalue(d_3d_simplex, "d_3d_simplex", + index_uni(n), index_uni(m), index_uni(k)), 1)); + current_statement__ = 169; + lp_accum__.add( + normal_lpdf( + rvalue(p_real_3d_ar, "p_real_3d_ar", + index_uni(n), index_uni(m), index_uni(k)), + rvalue(p_real_3d_ar, "p_real_3d_ar", + index_uni(n), index_uni(m), index_uni(k)), 1)); + } + } + } + current_statement__ = 180; + for (int i = 1; i <= 4; ++i) { + current_statement__ = 178; + for (int j = 1; j <= 5; ++j) { + current_statement__ = 176; + lp_accum__.add( + normal_lpdf( + to_vector( + rvalue(p_ar_mat, "p_ar_mat", index_uni(i), index_uni(j))), + 0, 1)); + } + } + current_statement__ = 183; + for (int k = 1; k <= K; ++k) { + current_statement__ = 181; + lp_accum__.add( + normal_lpdf( + to_vector(rvalue(p_cfcov_33_ar, "p_cfcov_33_ar", index_uni(k))), + 0, 1)); + } + current_statement__ = 184; + lp_accum__.add(normal_lpdf(to_vector(p_vec), d_vec, 1)); + current_statement__ = 185; + lp_accum__.add(normal_lpdf(to_vector(p_row_vec), 0, 1)); + current_statement__ = 186; + lp_accum__.add(normal_lpdf(to_vector(p_simplex), 0, 1)); + current_statement__ = 187; + lp_accum__.add(normal_lpdf(to_vector(p_cfcov_54), 0, 1)); + current_statement__ = 188; + lp_accum__.add(normal_lpdf(to_vector(p_cfcov_33), 0, 1)); + current_statement__ = 189; + lp_accum__.add( + map_rect<1, binomialf_functor__>(tmp, tmp2, x_r, x_i, pstream__)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "mother_model_namespace::write_array"; + (void) function__; // suppress unused var warning - current_statement__ = 78; - sum_lpdf = 0.0; - current_statement__ = 81; - for (int n = 1; n <= size(y_slice); ++n) { + try { + double p_real; + p_real = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + p_real = in__.template read(); + double p_upper; + p_upper = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p_upper = in__.template read_constrain_lb( + p_real, lp__); + double p_lower; + p_lower = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + p_lower = in__.template read_constrain_ub( + p_upper, lp__); + std::vector offset_multiplier; + offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 4; + offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( + 1, 2, lp__, 5); + std::vector no_offset_multiplier; + no_offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 5; + no_offset_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( + 0, 2, lp__, 5); + std::vector offset_no_multiplier; + offset_no_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 6; + offset_no_multiplier = in__.template read_constrain_offset_multiplier, jacobian__>( + 3, 1, lp__, 5); + std::vector p_real_1d_ar; + p_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 7; + p_real_1d_ar = in__.template read_constrain_lb, jacobian__>( + 0, lp__, N); + std::vector>> p_real_3d_ar; + p_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); + + + current_statement__ = 8; + p_real_3d_ar = in__.template read_constrain_lb>>, jacobian__>( + 0, lp__, N, M, K); + Eigen::Matrix p_vec; + p_vec = Eigen::Matrix(N); + stan::math::fill(p_vec, std::numeric_limits::quiet_NaN()); + + current_statement__ = 9; + p_vec = in__.template read_constrain_lb, jacobian__>( + 0, lp__, N); + std::vector> p_1d_vec; + p_1d_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_vec, std::numeric_limits::quiet_NaN()); + + current_statement__ = 10; + p_1d_vec = in__.template read>>( + N, N); + std::vector>>> p_3d_vec; + p_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_vec, std::numeric_limits::quiet_NaN()); + + current_statement__ = 11; + p_3d_vec = in__.template read>>>>( + N, M, K, N); + Eigen::Matrix p_row_vec; + p_row_vec = Eigen::Matrix(N); + stan::math::fill(p_row_vec, std::numeric_limits::quiet_NaN()); + + current_statement__ = 12; + p_row_vec = in__.template read>( + N); + std::vector> p_1d_row_vec; + p_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_row_vec, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 13; + p_1d_row_vec = in__.template read>>( + N, N); + std::vector>>> p_3d_row_vec; + p_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_row_vec, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 14; + p_3d_row_vec = in__.template read>>>>( + N, M, K, N); + Eigen::Matrix p_mat; + p_mat = Eigen::Matrix(5, 4); + stan::math::fill(p_mat, std::numeric_limits::quiet_NaN()); + + current_statement__ = 15; + p_mat = in__.template read>(5, + 4); + std::vector>> p_ar_mat; + p_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(p_ar_mat, std::numeric_limits::quiet_NaN()); + + current_statement__ = 16; + p_ar_mat = in__.template read_constrain_lub>>, jacobian__>( + 0, 1, lp__, 4, 5, 2, 3); + Eigen::Matrix p_simplex; + p_simplex = Eigen::Matrix(N); + stan::math::fill(p_simplex, std::numeric_limits::quiet_NaN()); + + current_statement__ = 17; + p_simplex = in__.template read_constrain_simplex, jacobian__>( + lp__, N); + std::vector> p_1d_simplex; + p_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_simplex, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 18; + p_1d_simplex = in__.template read_constrain_simplex>, jacobian__>( + lp__, N, N); + std::vector>>> p_3d_simplex; + p_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_simplex, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 19; + p_3d_simplex = in__.template read_constrain_simplex>>>, jacobian__>( + lp__, N, M, K, N); + Eigen::Matrix p_cfcov_54; + p_cfcov_54 = Eigen::Matrix(5, 4); + stan::math::fill(p_cfcov_54, std::numeric_limits::quiet_NaN()); + + current_statement__ = 20; + p_cfcov_54 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( + lp__, 5, 4); + Eigen::Matrix p_cfcov_33; + p_cfcov_33 = Eigen::Matrix(3, 3); + stan::math::fill(p_cfcov_33, std::numeric_limits::quiet_NaN()); + + current_statement__ = 21; + p_cfcov_33 = in__.template read_constrain_cholesky_factor_cov, jacobian__>( + lp__, 3, 3); + std::vector> p_cfcov_33_ar; + p_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + stan::math::fill(p_cfcov_33_ar, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 22; + p_cfcov_33_ar = in__.template read_constrain_cholesky_factor_cov>, jacobian__>( + lp__, K, 3, 3); + Eigen::Matrix x_p; + x_p = Eigen::Matrix(2); + stan::math::fill(x_p, std::numeric_limits::quiet_NaN()); + + current_statement__ = 23; + x_p = in__.template read>(2); + Eigen::Matrix y_p; + y_p = Eigen::Matrix(2); + stan::math::fill(y_p, std::numeric_limits::quiet_NaN()); + + current_statement__ = 24; + y_p = in__.template read>(2); + std::vector tp_real_1d_ar; + tp_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); + + + std::vector>> tp_real_3d_ar; + tp_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); + + + Eigen::Matrix tp_vec; + tp_vec = Eigen::Matrix(N); + stan::math::fill(tp_vec, std::numeric_limits::quiet_NaN()); + + std::vector> tp_1d_vec; + tp_1d_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(tp_1d_vec, std::numeric_limits::quiet_NaN()); + + std::vector>>> tp_3d_vec; + tp_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(tp_3d_vec, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix tp_row_vec; + tp_row_vec = Eigen::Matrix(N); + stan::math::fill(tp_row_vec, std::numeric_limits::quiet_NaN()); + + std::vector> tp_1d_row_vec; + tp_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(tp_1d_row_vec, std::numeric_limits::quiet_NaN()); + + + std::vector>>> tp_3d_row_vec; + tp_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(tp_3d_row_vec, std::numeric_limits::quiet_NaN()); + + + Eigen::Matrix tp_mat; + tp_mat = Eigen::Matrix(5, 4); + stan::math::fill(tp_mat, std::numeric_limits::quiet_NaN()); + + std::vector>> tp_ar_mat; + tp_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(tp_ar_mat, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix tp_simplex; + tp_simplex = Eigen::Matrix(N); + stan::math::fill(tp_simplex, std::numeric_limits::quiet_NaN()); + + std::vector> tp_1d_simplex; + tp_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(tp_1d_simplex, std::numeric_limits::quiet_NaN()); + + + std::vector>>> tp_3d_simplex; + tp_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(tp_3d_simplex, std::numeric_limits::quiet_NaN()); + + + Eigen::Matrix tp_cfcov_54; + tp_cfcov_54 = Eigen::Matrix(5, 4); + stan::math::fill(tp_cfcov_54, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix tp_cfcov_33; + tp_cfcov_33 = Eigen::Matrix(3, 3); + stan::math::fill(tp_cfcov_33, std::numeric_limits::quiet_NaN()); + + std::vector> tp_cfcov_33_ar; + tp_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + stan::math::fill(tp_cfcov_33_ar, std::numeric_limits::quiet_NaN()); + + + Eigen::Matrix theta_p; + theta_p = Eigen::Matrix(2); + stan::math::fill(theta_p, std::numeric_limits::quiet_NaN()); + + double tp_real; + tp_real = std::numeric_limits::quiet_NaN(); + + vars__.emplace_back(p_real); + vars__.emplace_back(p_upper); + vars__.emplace_back(p_lower); + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(offset_multiplier[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(no_offset_multiplier[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(offset_no_multiplier[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(p_real_1d_ar[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + p_real_3d_ar[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(p_vec[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(p_1d_vec[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + p_3d_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][(sym1__ - + 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(p_row_vec[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(p_1d_row_vec[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + p_3d_row_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ + (sym1__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back( + rvalue(p_mat, "p_mat", index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + vars__.emplace_back( + rvalue(p_ar_mat, "p_ar_mat", + index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), + index_uni(sym1__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(p_simplex[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(p_1d_simplex[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + p_3d_simplex[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ + (sym1__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back( + rvalue(p_cfcov_54, "p_cfcov_54", + index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back( + rvalue(p_cfcov_33, "p_cfcov_33", + index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + vars__.emplace_back( + rvalue(p_cfcov_33_ar, "p_cfcov_33_ar", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(x_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(y_p[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 43; + assign(tp_real_1d_ar, p_real_1d_ar, "assigning variable tp_real_1d_ar"); + current_statement__ = 44; + assign(tp_real_3d_ar, p_real_3d_ar, "assigning variable tp_real_3d_ar"); + current_statement__ = 45; + assign(tp_1d_vec, p_1d_vec, "assigning variable tp_1d_vec"); + current_statement__ = 46; + assign(tp_3d_vec, p_3d_vec, "assigning variable tp_3d_vec"); + current_statement__ = 47; + assign(tp_simplex, p_simplex, "assigning variable tp_simplex"); + current_statement__ = 48; + assign(tp_1d_simplex, p_1d_simplex, "assigning variable tp_1d_simplex"); + current_statement__ = 49; + assign(tp_3d_simplex, p_3d_simplex, "assigning variable tp_3d_simplex"); + current_statement__ = 50; + assign(tp_cfcov_54, p_cfcov_54, "assigning variable tp_cfcov_54"); + current_statement__ = 51; + assign(tp_cfcov_33, p_cfcov_33, "assigning variable tp_cfcov_33"); + current_statement__ = 52; + assign(tp_cfcov_33_ar, p_cfcov_33_ar, + "assigning variable tp_cfcov_33_ar"); + current_statement__ = 53; + assign(tp_mat, stan::math::fma(d_cfcov_54, p_mat, p_mat), + "assigning variable tp_mat"); + current_statement__ = 54; + assign(tp_vec, stan::math::fma(d_vec, p_vec, p_vec), + "assigning variable tp_vec"); + current_statement__ = 63; + for (int i = 1; i <= 2; ++i) { + current_statement__ = 61; + for (int j = 1; j <= 3; ++j) { + current_statement__ = 59; + for (int m = 1; m <= 4; ++m) { + current_statement__ = 57; + for (int n = 1; n <= 5; ++n) { + current_statement__ = 55; + assign(tp_ar_mat, 0.4, + "assigning variable tp_ar_mat", index_uni(m), index_uni(n), + index_uni(i), index_uni(j)); + } + } + } + } + current_statement__ = 65; + for (int i = 1; i <= N; ++i) { + current_statement__ = 64; + assign(tp_vec, (-1.0 * rvalue(p_vec, "p_vec", index_uni(i))), + "assigning variable tp_vec", index_uni(i)); + } + current_statement__ = 66; + assign(tp_row_vec, + transpose(rvalue(tp_1d_vec, "tp_1d_vec", index_uni(1))), + "assigning variable tp_row_vec"); + current_statement__ = 67; + assign(tp_1d_row_vec, p_1d_row_vec, "assigning variable tp_1d_row_vec"); + current_statement__ = 68; + assign(tp_3d_row_vec, p_3d_row_vec, "assigning variable tp_3d_row_vec"); + current_statement__ = 69; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, + pstream__), "assigning variable theta_p"); + current_statement__ = 70; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x, y, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 71; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x, y_p, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 72; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, + pstream__), "assigning variable theta_p"); + current_statement__ = 73; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 74; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, + pstream__), "assigning variable theta_p"); + current_statement__ = 75; + assign(theta_p, + algebra_solver(algebra_system_functor__(), x_p, y_p, dat, dat_int, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p"); + current_statement__ = 76; + tp_real = (p_real * p_real); + current_statement__ = 77; + tp_real = (p_real / p_real); + current_statement__ = 25; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 25; + check_greater_or_equal(function__, "tp_real_1d_ar[sym1__]", + tp_real_1d_ar[(sym1__ - 1)], 0); + } + current_statement__ = 26; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 26; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 26; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 26; + check_greater_or_equal(function__, + "tp_real_3d_ar[sym1__, sym2__, sym3__]", + tp_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ + (sym3__ - 1)], 0); + } + } + } + current_statement__ = 27; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 27; + check_less_or_equal(function__, "tp_vec[sym1__]", + tp_vec[(sym1__ - 1)], 0); + } + current_statement__ = 34; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 34; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 34; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 34; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 34; + check_greater_or_equal(function__, + "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(tp_ar_mat, "tp_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 0); + } + } + } + } + current_statement__ = 34; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 34; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 34; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 34; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 34; + check_less_or_equal(function__, + "tp_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(tp_ar_mat, "tp_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 1); + } + } + } + } + current_statement__ = 35; + check_simplex(function__, "tp_simplex", tp_simplex); + current_statement__ = 36; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 36; + check_simplex(function__, "tp_1d_simplex[sym1__]", + tp_1d_simplex[(sym1__ - 1)]); + } + current_statement__ = 37; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 37; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 37; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 37; + check_simplex(function__, + "tp_3d_simplex[sym1__, sym2__, sym3__]", + tp_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - + 1)]); + } + } + } + current_statement__ = 38; + check_cholesky_factor(function__, "tp_cfcov_54", tp_cfcov_54); + current_statement__ = 39; + check_cholesky_factor(function__, "tp_cfcov_33", tp_cfcov_33); + current_statement__ = 40; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 40; + check_cholesky_factor(function__, "tp_cfcov_33_ar[sym1__]", + tp_cfcov_33_ar[(sym1__ - 1)]); + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(tp_real_1d_ar[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + tp_real_3d_ar[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(tp_vec[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(tp_1d_vec[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + tp_3d_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ + (sym1__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(tp_row_vec[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(tp_1d_row_vec[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + tp_3d_row_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ + (sym1__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back( + rvalue(tp_mat, "tp_mat", index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + vars__.emplace_back( + rvalue(tp_ar_mat, "tp_ar_mat", + index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), + index_uni(sym1__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(tp_simplex[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(tp_1d_simplex[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + tp_3d_simplex[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ + (sym1__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back( + rvalue(tp_cfcov_54, "tp_cfcov_54", + index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back( + rvalue(tp_cfcov_33, "tp_cfcov_33", + index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + vars__.emplace_back( + rvalue(tp_cfcov_33_ar, "tp_cfcov_33_ar", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(theta_p[(sym1__ - 1)]); + } + vars__.emplace_back(tp_real); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + double gq_r1; + gq_r1 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 78; + gq_r1 = foo_bar1(p_real, pstream__); + double gq_r2; + gq_r2 = std::numeric_limits::quiet_NaN(); + current_statement__ = 79; - sum_lpdf = (sum_lpdf + - normal_lpdf( - rvalue(y_slice, "y_slice", index_uni(n)), 0, 1)); - } - current_statement__ = 82; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + gq_r2 = foo_bar1(J, pstream__); + std::vector gq_real_1d_ar; + gq_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); + + + std::vector>> gq_real_3d_ar; + gq_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); + + + Eigen::Matrix gq_vec; + gq_vec = Eigen::Matrix(N); + stan::math::fill(gq_vec, std::numeric_limits::quiet_NaN()); + + std::vector> gq_1d_vec; + gq_1d_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(gq_1d_vec, std::numeric_limits::quiet_NaN()); + + std::vector>>> gq_3d_vec; + gq_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(gq_3d_vec, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix gq_row_vec; + gq_row_vec = Eigen::Matrix(N); + stan::math::fill(gq_row_vec, std::numeric_limits::quiet_NaN()); + + std::vector> gq_1d_row_vec; + gq_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(gq_1d_row_vec, std::numeric_limits::quiet_NaN()); + + + std::vector>>> gq_3d_row_vec; + gq_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(gq_3d_row_vec, std::numeric_limits::quiet_NaN()); + + + std::vector>> gq_ar_mat; + gq_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(gq_ar_mat, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix gq_simplex; + gq_simplex = Eigen::Matrix(N); + stan::math::fill(gq_simplex, std::numeric_limits::quiet_NaN()); + + std::vector> gq_1d_simplex; + gq_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(gq_1d_simplex, std::numeric_limits::quiet_NaN()); + + + std::vector>>> gq_3d_simplex; + gq_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(gq_3d_simplex, std::numeric_limits::quiet_NaN()); + + + Eigen::Matrix gq_cfcov_54; + gq_cfcov_54 = Eigen::Matrix(5, 4); + stan::math::fill(gq_cfcov_54, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix gq_cfcov_33; + gq_cfcov_33 = Eigen::Matrix(3, 3); + stan::math::fill(gq_cfcov_33, std::numeric_limits::quiet_NaN()); + + std::vector> gq_cfcov_33_ar; + gq_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + stan::math::fill(gq_cfcov_33_ar, std::numeric_limits::quiet_NaN()); + + + std::vector indices; + indices = std::vector(3, std::numeric_limits::min()); + + current_statement__ = 95; + assign(indices, std::vector{2, 3, 1}, "assigning variable indices"); + std::vector> indexing_mat; + indexing_mat = std::vector>(5, Eigen::Matrix(3, 4)); + stan::math::fill(indexing_mat, std::numeric_limits::quiet_NaN()); + + + std::vector> idx_res1; + idx_res1 = std::vector>(3, Eigen::Matrix(3, 4)); + stan::math::fill(idx_res1, std::numeric_limits::quiet_NaN()); + + std::vector> idx_res2; + idx_res2 = std::vector>(5, Eigen::Matrix(3, 4)); + stan::math::fill(idx_res2, std::numeric_limits::quiet_NaN()); + + std::vector> idx_res3; + idx_res3 = std::vector>(3, Eigen::Matrix(3, 3)); + stan::math::fill(idx_res3, std::numeric_limits::quiet_NaN()); + + std::vector> idx_res11; + idx_res11 = std::vector>(3, Eigen::Matrix(3, 4)); + stan::math::fill(idx_res11, std::numeric_limits::quiet_NaN()); + + std::vector> idx_res21; + idx_res21 = std::vector>(5, Eigen::Matrix(3, 4)); + stan::math::fill(idx_res21, std::numeric_limits::quiet_NaN()); + + std::vector> idx_res31; + idx_res31 = std::vector>(3, Eigen::Matrix(3, 3)); + stan::math::fill(idx_res31, std::numeric_limits::quiet_NaN()); + + std::vector> idx_res4; + idx_res4 = std::vector>(3, Eigen::Matrix(4)); + stan::math::fill(idx_res4, std::numeric_limits::quiet_NaN()); + + std::vector> idx_res5; + idx_res5 = std::vector>(2, Eigen::Matrix(2)); + stan::math::fill(idx_res5, std::numeric_limits::quiet_NaN()); + + current_statement__ = 105; + assign(gq_real_1d_ar, + rvalue(p_1d_simplex, "p_1d_simplex", index_omni(), index_uni(1)), + "assigning variable gq_real_1d_ar"); + current_statement__ = 106; + assign(gq_real_3d_ar, p_real_3d_ar, "assigning variable gq_real_3d_ar"); + current_statement__ = 107; + assign(gq_1d_vec, p_1d_vec, "assigning variable gq_1d_vec"); + current_statement__ = 108; + assign(gq_3d_vec, p_3d_vec, "assigning variable gq_3d_vec"); + current_statement__ = 109; + assign(gq_row_vec, p_row_vec, "assigning variable gq_row_vec"); + current_statement__ = 110; + assign(gq_1d_row_vec, p_1d_row_vec, "assigning variable gq_1d_row_vec"); + current_statement__ = 111; + assign(gq_3d_row_vec, p_3d_row_vec, "assigning variable gq_3d_row_vec"); + current_statement__ = 112; + assign(gq_simplex, + rvalue(p_1d_simplex, "p_1d_simplex", + index_uni(1), index_min_max(1, N)), "assigning variable gq_simplex"); + current_statement__ = 113; + assign(gq_1d_simplex, p_1d_simplex, "assigning variable gq_1d_simplex"); + current_statement__ = 114; + assign(gq_3d_simplex, p_3d_simplex, "assigning variable gq_3d_simplex"); + current_statement__ = 115; + assign(gq_cfcov_54, p_cfcov_54, "assigning variable gq_cfcov_54"); + current_statement__ = 116; + assign(gq_cfcov_33, p_cfcov_33, "assigning variable gq_cfcov_33"); + current_statement__ = 117; + assign(gq_cfcov_33_ar, p_cfcov_33_ar, + "assigning variable gq_cfcov_33_ar"); + current_statement__ = 126; + for (int i = 1; i <= 2; ++i) { + current_statement__ = 124; + for (int j = 1; j <= 3; ++j) { + current_statement__ = 122; + for (int m = 1; m <= 4; ++m) { + current_statement__ = 120; + for (int n = 1; n <= 5; ++n) { + current_statement__ = 118; + assign(gq_ar_mat, 0.4, + "assigning variable gq_ar_mat", index_uni(m), index_uni(n), + index_uni(i), index_uni(j)); + } + } + } + } + current_statement__ = 128; + for (int i = 1; i <= N; ++i) { + current_statement__ = 127; + assign(gq_vec, (-1.0 * rvalue(p_vec, "p_vec", index_uni(i))), + "assigning variable gq_vec", index_uni(i)); + } + current_statement__ = 132; + for (int i = 1; i <= 3; ++i) { + current_statement__ = 131; + for (int j = 1; j <= 4; ++j) { + current_statement__ = 130; + for (int k = 1; k <= 5; ++k) { + current_statement__ = 129; + assign(indexing_mat, normal_rng(0, 1, base_rng__), + "assigning variable indexing_mat", index_uni(k), index_uni(i), + index_uni(j)); + } + } + } + current_statement__ = 135; + for (int i = 1; i <= size(indices); ++i) { + current_statement__ = 134; + for (int j = 1; j <= size(indices); ++j) { + current_statement__ = 133; + assign(idx_res1, + rvalue(indexing_mat, "indexing_mat", + index_uni(rvalue(indices, "indices", index_uni(i))), + index_uni(rvalue(indices, "indices", index_uni(j)))), + "assigning variable idx_res1", index_uni(i), index_uni(j)); + } + } + current_statement__ = 136; + assign(idx_res11, + rvalue(indexing_mat, "indexing_mat", + index_multi(indices), index_multi(indices)), + "assigning variable idx_res11"); + current_statement__ = 138; + if (logical_neq( + rvalue( + rvalue(indexing_mat, "indexing_mat", + index_multi(indices), index_multi(indices)), + "indexing_mat[indices, indices]", + index_uni(2), index_uni(1), index_uni(1)), + rvalue(idx_res1, "idx_res1", + index_uni(2), index_uni(1), index_uni(1)))) { + current_statement__ = 137; + std::stringstream errmsg_stream__; + errmsg_stream__ << "indexing test 1 failed"; + throw std::domain_error(errmsg_stream__.str()); + } + current_statement__ = 141; + for (int i = 1; i <= 5; ++i) { + current_statement__ = 140; + for (int j = 1; j <= size(indices); ++j) { + current_statement__ = 139; + assign(idx_res2, + rvalue(indexing_mat, "indexing_mat", + index_uni(i), + index_uni(rvalue(indices, "indices", index_uni(j)))), + "assigning variable idx_res2", index_uni(i), index_uni(j)); + } + } + current_statement__ = 142; + assign(idx_res21, + rvalue(indexing_mat, "indexing_mat", + index_omni(), index_multi(indices)), "assigning variable idx_res21"); + current_statement__ = 144; + if (logical_neq( + rvalue( + rvalue(indexing_mat, "indexing_mat", index_omni(), index_multi(indices)), + "indexing_mat[:, indices]", + index_uni(2), index_uni(1), index_uni(1)), + rvalue(idx_res2, "idx_res2", + index_uni(2), index_uni(1), index_uni(1)))) { + current_statement__ = 143; + std::stringstream errmsg_stream__; + errmsg_stream__ << "indexing test 2 failed"; + throw std::domain_error(errmsg_stream__.str()); + } + current_statement__ = 148; + for (int i = 1; i <= size(indices); ++i) { + current_statement__ = 147; + for (int j = 1; j <= 3; ++j) { + current_statement__ = 146; + for (int k = 1; k <= size(indices); ++k) { + current_statement__ = 145; + assign(idx_res3, + rvalue(indexing_mat, "indexing_mat", + index_uni(rvalue(indices, "indices", index_uni(i))), + index_uni(j), + index_uni(rvalue(indices, "indices", index_uni(k)))), + "assigning variable idx_res3", index_uni(i), index_uni(j), + index_uni(k)); + } + } + } + current_statement__ = 149; + assign(idx_res31, + rvalue(indexing_mat, "indexing_mat", + index_multi(indices), index_omni(), index_multi(indices)), + "assigning variable idx_res31"); + current_statement__ = 151; + if (logical_neq( + rvalue( + rvalue(indexing_mat, "indexing_mat", + index_multi(indices), index_omni(), index_multi(indices)), + "indexing_mat[indices, :, indices]", + index_uni(2), index_uni(1), index_uni(1)), + rvalue(idx_res3, "idx_res3", + index_uni(2), index_uni(1), index_uni(1)))) { + current_statement__ = 150; + std::stringstream errmsg_stream__; + errmsg_stream__ << "indexing test 3 failed"; + throw std::domain_error(errmsg_stream__.str()); + } + current_statement__ = 152; + assign(idx_res4, + rvalue(indexing_mat, "indexing_mat", + index_min_max(1, 3), index_uni(1), index_omni()), + "assigning variable idx_res4"); + current_statement__ = 153; + assign(idx_res5, + rvalue(indexing_mat, "indexing_mat", + index_min(4), index_min_max(2, 3), index_uni(1)), + "assigning variable idx_res5"); + current_statement__ = 80; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 80; + check_greater_or_equal(function__, "gq_real_1d_ar[sym1__]", + gq_real_1d_ar[(sym1__ - 1)], 0); + } + current_statement__ = 81; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 81; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 81; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 81; + check_greater_or_equal(function__, + "gq_real_3d_ar[sym1__, sym2__, sym3__]", + gq_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][ + (sym3__ - 1)], 0); + } + } + } + current_statement__ = 82; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 82; + check_less_or_equal(function__, "gq_vec[sym1__]", + gq_vec[(sym1__ - 1)], 1); + } + current_statement__ = 88; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 88; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 88; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 88; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 88; + check_greater_or_equal(function__, + "gq_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(gq_ar_mat, "gq_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 0); + } + } + } + } + current_statement__ = 88; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 88; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 88; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 88; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 88; + check_less_or_equal(function__, + "gq_ar_mat[sym1__, sym2__, sym3__, sym4__]", + rvalue(gq_ar_mat, "gq_ar_mat", + index_uni(sym1__), index_uni(sym2__), + index_uni(sym3__), index_uni(sym4__)), + 1); + } + } + } + } + current_statement__ = 89; + check_simplex(function__, "gq_simplex", gq_simplex); + current_statement__ = 90; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 90; + check_simplex(function__, "gq_1d_simplex[sym1__]", + gq_1d_simplex[(sym1__ - 1)]); + } + current_statement__ = 91; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 91; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 91; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 91; + check_simplex(function__, + "gq_3d_simplex[sym1__, sym2__, sym3__]", + gq_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - + 1)]); + } + } + } + current_statement__ = 92; + check_cholesky_factor(function__, "gq_cfcov_54", gq_cfcov_54); + current_statement__ = 93; + check_cholesky_factor(function__, "gq_cfcov_33", gq_cfcov_33); + current_statement__ = 94; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 94; + check_cholesky_factor(function__, "gq_cfcov_33_ar[sym1__]", + gq_cfcov_33_ar[(sym1__ - 1)]); + } + vars__.emplace_back(gq_r1); + vars__.emplace_back(gq_r2); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(gq_real_1d_ar[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + gq_real_3d_ar[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(gq_vec[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(gq_1d_vec[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + gq_3d_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][(sym1__ - + 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(gq_row_vec[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(gq_1d_row_vec[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + gq_3d_row_vec[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ + (sym1__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + vars__.emplace_back( + rvalue(gq_ar_mat, "gq_ar_mat", + index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), + index_uni(sym1__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(gq_simplex[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(gq_1d_simplex[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + gq_3d_simplex[(sym4__ - 1)][(sym3__ - 1)][(sym2__ - 1)][ + (sym1__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back( + rvalue(gq_cfcov_54, "gq_cfcov_54", + index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back( + rvalue(gq_cfcov_33, "gq_cfcov_33", + index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + vars__.emplace_back( + rvalue(gq_cfcov_33_ar, "gq_cfcov_33_ar", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(indices[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + vars__.emplace_back( + rvalue(indexing_mat, "indexing_mat", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + vars__.emplace_back( + rvalue(idx_res1, "idx_res1", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + vars__.emplace_back( + rvalue(idx_res2, "idx_res2", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + vars__.emplace_back( + rvalue(idx_res3, "idx_res3", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + vars__.emplace_back( + rvalue(idx_res11, "idx_res11", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + vars__.emplace_back( + rvalue(idx_res21, "idx_res21", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + vars__.emplace_back( + rvalue(idx_res31, "idx_res31", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back(idx_res4[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + vars__.emplace_back(idx_res5[(sym2__ - 1)][(sym1__ - 1)]); + } + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g3(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 84; - sum_lpdf = 0.0; - current_statement__ = 87; - for (int n = 1; n <= size(y_slice); ++n) { - current_statement__ = 85; - sum_lpdf = (sum_lpdf + - normal_lpdf( - rvalue(y_slice, "y_slice", index_uni(n)), 0, 1)); } - current_statement__ = 88; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g4(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; + } // write_array_impl() - current_statement__ = 90; - sum_lpdf = 0.0; - current_statement__ = 93; - for (int n = 1; n <= size(y_slice); ++n) { - current_statement__ = 91; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector(rvalue(y_slice, "y_slice", index_uni(n))), 0, - 1)); - } - current_statement__ = 94; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g5(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; - current_statement__ = 96; - sum_lpdf = 0.0; - current_statement__ = 101; - for (int n = 1; n <= size(y_slice); ++n) { - current_statement__ = 99; - for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); - ++m) { - current_statement__ = 97; - sum_lpdf = (sum_lpdf + - normal_lpdf( - rvalue(y_slice, "y_slice", index_uni(n), index_uni(m)), - 0, 1)); + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double p_real; + p_real = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + p_real = context__.vals_r("p_real")[(1 - 1)]; + double p_upper; + p_upper = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p_upper = context__.vals_r("p_upper")[(1 - 1)]; + double p_upper_free__; + p_upper_free__ = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + p_upper_free__ = stan::math::lb_free(p_upper, p_real); + double p_lower; + p_lower = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + p_lower = context__.vals_r("p_lower")[(1 - 1)]; + double p_lower_free__; + p_lower_free__ = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + p_lower_free__ = stan::math::ub_free(p_lower, p_upper); + std::vector offset_multiplier; + offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 4; + offset_multiplier = context__.vals_r("offset_multiplier"); + std::vector offset_multiplier_free__; + offset_multiplier_free__ = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + current_statement__ = 4; + assign(offset_multiplier_free__, + stan::math::offset_multiplier_free(offset_multiplier[(sym1__ - 1)], + 1, 2), + "assigning variable offset_multiplier_free__", index_uni(sym1__)); + } + std::vector no_offset_multiplier; + no_offset_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 5; + no_offset_multiplier = context__.vals_r("no_offset_multiplier"); + std::vector no_offset_multiplier_free__; + no_offset_multiplier_free__ = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 5; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + current_statement__ = 5; + assign(no_offset_multiplier_free__, + stan::math::offset_multiplier_free( + no_offset_multiplier[(sym1__ - 1)], 0, 2), + "assigning variable no_offset_multiplier_free__", index_uni(sym1__)); } - } - current_statement__ = 102; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g6(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 104; - sum_lpdf = 0.0; - current_statement__ = 109; - for (int n = 1; n <= size(y_slice); ++n) { - current_statement__ = 107; - for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); - ++m) { - current_statement__ = 105; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector( - rvalue(y_slice, "y_slice", - index_uni(n), index_uni(m))), 0, 1)); + std::vector offset_no_multiplier; + offset_no_multiplier = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 6; + offset_no_multiplier = context__.vals_r("offset_no_multiplier"); + std::vector offset_no_multiplier_free__; + offset_no_multiplier_free__ = std::vector(5, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 6; + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + current_statement__ = 6; + assign(offset_no_multiplier_free__, + stan::math::offset_multiplier_free( + offset_no_multiplier[(sym1__ - 1)], 3, 1), + "assigning variable offset_no_multiplier_free__", index_uni(sym1__)); } - } - current_statement__ = 110; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g7(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 112; - sum_lpdf = 0.0; - current_statement__ = 117; - for (int n = 1; n <= size(y_slice); ++n) { - current_statement__ = 115; - for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); - ++m) { - current_statement__ = 113; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector( - rvalue(y_slice, "y_slice", - index_uni(n), index_uni(m))), 0, 1)); + std::vector p_real_1d_ar; + p_real_1d_ar = std::vector(N, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 7; + p_real_1d_ar = context__.vals_r("p_real_1d_ar"); + std::vector p_real_1d_ar_free__; + p_real_1d_ar_free__ = std::vector(N, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 7; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 7; + assign(p_real_1d_ar_free__, + stan::math::lb_free(p_real_1d_ar[(sym1__ - 1)], 0), + "assigning variable p_real_1d_ar_free__", index_uni(sym1__)); } - } - current_statement__ = 118; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g8(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 120; - sum_lpdf = 0.0; - current_statement__ = 125; - for (int n = 1; n <= size(y_slice); ++n) { - current_statement__ = 123; - for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); - ++m) { - current_statement__ = 121; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector( - rvalue(y_slice, "y_slice", - index_uni(n), index_uni(m))), 0, 1)); + std::vector>> p_real_3d_ar; + p_real_3d_ar = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); + + + { + std::vector p_real_3d_ar_flat__; + current_statement__ = 8; + p_real_3d_ar_flat__ = context__.vals_r("p_real_3d_ar"); + current_statement__ = 8; + pos__ = 1; + current_statement__ = 8; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 8; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 8; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 8; + assign(p_real_3d_ar, p_real_3d_ar_flat__[(pos__ - 1)], + "assigning variable p_real_3d_ar", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 8; + pos__ = (pos__ + 1); + } + } + } + } + std::vector>> p_real_3d_ar_free__; + p_real_3d_ar_free__ = std::vector>>(N, std::vector>(M, std::vector(K, std::numeric_limits::quiet_NaN()))); + + + current_statement__ = 8; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 8; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 8; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 8; + assign(p_real_3d_ar_free__, + stan::math::lb_free( + p_real_3d_ar[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)], 0), + "assigning variable p_real_3d_ar_free__", index_uni(sym1__), + index_uni(sym2__), + index_uni(sym3__)); + } + } + } + Eigen::Matrix p_vec; + p_vec = Eigen::Matrix(N); + stan::math::fill(p_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector p_vec_flat__; + current_statement__ = 9; + p_vec_flat__ = context__.vals_r("p_vec"); + current_statement__ = 9; + pos__ = 1; + current_statement__ = 9; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 9; + assign(p_vec, p_vec_flat__[(pos__ - 1)], + "assigning variable p_vec", index_uni(sym1__)); + current_statement__ = 9; + pos__ = (pos__ + 1); + } + } + Eigen::Matrix p_vec_free__; + p_vec_free__ = Eigen::Matrix(N); + stan::math::fill(p_vec_free__, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 9; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 9; + assign(p_vec_free__, stan::math::lb_free(p_vec[(sym1__ - 1)], 0), + "assigning variable p_vec_free__", index_uni(sym1__)); + } + std::vector> p_1d_vec; + p_1d_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector p_1d_vec_flat__; + current_statement__ = 10; + p_1d_vec_flat__ = context__.vals_r("p_1d_vec"); + current_statement__ = 10; + pos__ = 1; + current_statement__ = 10; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 10; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 10; + assign(p_1d_vec, p_1d_vec_flat__[(pos__ - 1)], + "assigning variable p_1d_vec", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 10; + pos__ = (pos__ + 1); + } + } + } + std::vector>>> p_3d_vec; + p_3d_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector p_3d_vec_flat__; + current_statement__ = 11; + p_3d_vec_flat__ = context__.vals_r("p_3d_vec"); + current_statement__ = 11; + pos__ = 1; + current_statement__ = 11; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 11; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 11; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 11; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 11; + assign(p_3d_vec, p_3d_vec_flat__[(pos__ - 1)], + "assigning variable p_3d_vec", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 11; + pos__ = (pos__ + 1); + } + } + } + } + } + Eigen::Matrix p_row_vec; + p_row_vec = Eigen::Matrix(N); + stan::math::fill(p_row_vec, std::numeric_limits::quiet_NaN()); + + { + std::vector p_row_vec_flat__; + current_statement__ = 12; + p_row_vec_flat__ = context__.vals_r("p_row_vec"); + current_statement__ = 12; + pos__ = 1; + current_statement__ = 12; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 12; + assign(p_row_vec, p_row_vec_flat__[(pos__ - 1)], + "assigning variable p_row_vec", index_uni(sym1__)); + current_statement__ = 12; + pos__ = (pos__ + 1); + } + } + std::vector> p_1d_row_vec; + p_1d_row_vec = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_row_vec, std::numeric_limits::quiet_NaN()); + + + { + std::vector p_1d_row_vec_flat__; + current_statement__ = 13; + p_1d_row_vec_flat__ = context__.vals_r("p_1d_row_vec"); + current_statement__ = 13; + pos__ = 1; + current_statement__ = 13; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 13; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 13; + assign(p_1d_row_vec, p_1d_row_vec_flat__[(pos__ - 1)], + "assigning variable p_1d_row_vec", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 13; + pos__ = (pos__ + 1); + } + } } - } - current_statement__ = 126; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h1(const std::vector& y, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 128; - return normal_lpdf(rvalue(a, "a", index_min_max(start, end)), 0, - 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h2(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 130; - sum_lpdf = 0.0; - current_statement__ = 133; - for (int n = start; n <= end; ++n) { - current_statement__ = 131; - sum_lpdf = (sum_lpdf + - normal_lpdf(rvalue(a, "a", index_uni(n)), 0, 1)); - } - current_statement__ = 134; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h3(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 136; - sum_lpdf = 0.0; - current_statement__ = 139; - for (int n = start; n <= end; ++n) { - current_statement__ = 137; - sum_lpdf = (sum_lpdf + - normal_lpdf(rvalue(a, "a", index_uni(n)), 0, 1)); - } - current_statement__ = 140; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h4(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 142; - sum_lpdf = 0.0; - current_statement__ = 145; - for (int n = start; n <= end; ++n) { - current_statement__ = 143; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector(rvalue(a, "a", index_uni(n))), 0, 1)); - } - current_statement__ = 146; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h5(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 148; - sum_lpdf = 0.0; - current_statement__ = 153; - for (int n = start; n <= end; ++n) { - current_statement__ = 151; - for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { - current_statement__ = 149; - sum_lpdf = (sum_lpdf + - normal_lpdf( - rvalue(a, "a", index_uni(n), index_uni(m)), 0, 1)); + std::vector>>> p_3d_row_vec; + p_3d_row_vec = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_row_vec, std::numeric_limits::quiet_NaN()); + + + { + std::vector p_3d_row_vec_flat__; + current_statement__ = 14; + p_3d_row_vec_flat__ = context__.vals_r("p_3d_row_vec"); + current_statement__ = 14; + pos__ = 1; + current_statement__ = 14; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 14; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 14; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 14; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 14; + assign(p_3d_row_vec, p_3d_row_vec_flat__[(pos__ - 1)], + "assigning variable p_3d_row_vec", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 14; + pos__ = (pos__ + 1); + } + } + } + } } - } - current_statement__ = 154; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h6(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 156; - sum_lpdf = 0.0; - current_statement__ = 161; - for (int n = start; n <= end; ++n) { - current_statement__ = 159; - for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { - current_statement__ = 157; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector(rvalue(a, "a", index_uni(n), index_uni(m))), - 0, 1)); + Eigen::Matrix p_mat; + p_mat = Eigen::Matrix(5, 4); + stan::math::fill(p_mat, std::numeric_limits::quiet_NaN()); + + { + std::vector p_mat_flat__; + current_statement__ = 15; + p_mat_flat__ = context__.vals_r("p_mat"); + current_statement__ = 15; + pos__ = 1; + current_statement__ = 15; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 15; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 15; + assign(p_mat, p_mat_flat__[(pos__ - 1)], + "assigning variable p_mat", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 15; + pos__ = (pos__ + 1); + } + } } - } - current_statement__ = 162; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h7(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 164; - sum_lpdf = 0.0; - current_statement__ = 169; - for (int n = start; n <= end; ++n) { - current_statement__ = 167; - for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { - current_statement__ = 165; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector(rvalue(a, "a", index_uni(n), index_uni(m))), - 0, 1)); + std::vector>> p_ar_mat; + p_ar_mat = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(p_ar_mat, std::numeric_limits::quiet_NaN()); + + { + std::vector p_ar_mat_flat__; + current_statement__ = 16; + p_ar_mat_flat__ = context__.vals_r("p_ar_mat"); + current_statement__ = 16; + pos__ = 1; + current_statement__ = 16; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 16; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 16; + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + current_statement__ = 16; + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + current_statement__ = 16; + assign(p_ar_mat, p_ar_mat_flat__[(pos__ - 1)], + "assigning variable p_ar_mat", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 16; + pos__ = (pos__ + 1); + } + } + } + } + } + std::vector>> p_ar_mat_free__; + p_ar_mat_free__ = std::vector>>(4, std::vector>(5, Eigen::Matrix(2, 3))); + stan::math::fill(p_ar_mat_free__, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 16; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 16; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 16; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 16; + for (int sym4__ = 1; sym4__ <= 3; ++sym4__) { + current_statement__ = 16; + assign(p_ar_mat_free__, + stan::math::lub_free( + rvalue(p_ar_mat, "p_ar_mat", + index_uni(sym1__), index_uni(sym2__), index_uni(sym3__), + index_uni(sym4__)), 0, 1), + "assigning variable p_ar_mat_free__", index_uni(sym1__), + index_uni(sym2__), + index_uni(sym3__), + index_uni(sym4__)); + } + } + } } - } - current_statement__ = 170; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -h8(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ sum_lpdf; - sum_lpdf = DUMMY_VAR__; - - current_statement__ = 172; - sum_lpdf = 0.0; - current_statement__ = 177; - for (int n = start; n <= end; ++n) { - current_statement__ = 175; - for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { - current_statement__ = 173; - sum_lpdf = (sum_lpdf + - normal_lpdf( - to_vector(rvalue(a, "a", index_uni(n), index_uni(m))), - 0, 1)); + Eigen::Matrix p_simplex; + p_simplex = Eigen::Matrix(N); + stan::math::fill(p_simplex, std::numeric_limits::quiet_NaN()); + + { + std::vector p_simplex_flat__; + current_statement__ = 17; + p_simplex_flat__ = context__.vals_r("p_simplex"); + current_statement__ = 17; + pos__ = 1; + current_statement__ = 17; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 17; + assign(p_simplex, p_simplex_flat__[(pos__ - 1)], + "assigning variable p_simplex", index_uni(sym1__)); + current_statement__ = 17; + pos__ = (pos__ + 1); + } } - } - current_statement__ = 178; - return sum_lpdf; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class reduce_sum_m2_model final : public model_base_crtp { - - private: - int N; - std::vector x; - - - public: - ~reduce_sum_m2_model() { } - - inline std::string model_name() const final { return "reduce_sum_m2_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - reduce_sum_m2_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m2_model_namespace::reduce_sum_m2_model"; - (void) function__; // suppress unused var warning - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int pos__; - pos__ = std::numeric_limits::min(); + Eigen::Matrix p_simplex_free__; + p_simplex_free__ = Eigen::Matrix((N - 1)); + stan::math::fill(p_simplex_free__, std::numeric_limits::quiet_NaN()); - pos__ = 1; - current_statement__ = 33; - N = std::numeric_limits::min(); - current_statement__ = 33; - N = 2; - current_statement__ = 34; - validate_non_negative_index("x", "N", N); - current_statement__ = 35; - x = std::vector(N, std::numeric_limits::quiet_NaN()); + current_statement__ = 17; + assign(p_simplex_free__, stan::math::simplex_free(p_simplex), + "assigning variable p_simplex_free__"); + std::vector> p_1d_simplex; + p_1d_simplex = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(p_1d_simplex, std::numeric_limits::quiet_NaN()); - current_statement__ = 36; - validate_non_negative_index("a8", "N", N); - current_statement__ = 37; - validate_non_negative_index("a8", "N", N); - current_statement__ = 38; - validate_non_negative_index("a8", "N", N); - current_statement__ = 39; - validate_non_negative_index("a8", "N", N); - current_statement__ = 40; - validate_non_negative_index("a7", "N", N); - current_statement__ = 41; - validate_non_negative_index("a7", "N", N); - current_statement__ = 42; - validate_non_negative_index("a7", "N", N); - current_statement__ = 43; - validate_non_negative_index("a6", "N", N); - current_statement__ = 44; - validate_non_negative_index("a6", "N", N); - current_statement__ = 45; - validate_non_negative_index("a6", "N", N); - current_statement__ = 46; - validate_non_negative_index("a5", "N", N); - current_statement__ = 47; - validate_non_negative_index("a5", "N", N); - current_statement__ = 48; - validate_non_negative_index("a4", "N", N); - current_statement__ = 49; - validate_non_negative_index("a4", "N", N); - current_statement__ = 50; - validate_non_negative_index("a4", "N", N); - current_statement__ = 51; - validate_non_negative_index("a3", "N", N); - current_statement__ = 52; - validate_non_negative_index("a3", "N", N); - current_statement__ = 53; - validate_non_negative_index("a2", "N", N); - current_statement__ = 54; - validate_non_negative_index("a2", "N", N); - current_statement__ = 55; - validate_non_negative_index("a1", "N", N); - current_statement__ = 56; - validate_non_negative_index("y8", "N", N); - current_statement__ = 57; - validate_non_negative_index("y8", "N", N); - current_statement__ = 58; - validate_non_negative_index("y8", "N", N); - current_statement__ = 59; - validate_non_negative_index("y8", "N", N); - current_statement__ = 60; - validate_non_negative_index("y7", "N", N); - current_statement__ = 61; - validate_non_negative_index("y7", "N", N); - current_statement__ = 62; - validate_non_negative_index("y7", "N", N); - current_statement__ = 63; - validate_non_negative_index("y6", "N", N); - current_statement__ = 64; - validate_non_negative_index("y6", "N", N); - current_statement__ = 65; - validate_non_negative_index("y6", "N", N); - current_statement__ = 66; - validate_non_negative_index("y5", "N", N); - current_statement__ = 67; - validate_non_negative_index("y5", "N", N); - current_statement__ = 68; - validate_non_negative_index("y4", "N", N); - current_statement__ = 69; - validate_non_negative_index("y4", "N", N); - current_statement__ = 70; - validate_non_negative_index("y4", "N", N); - current_statement__ = 71; - validate_non_negative_index("y3", "N", N); - current_statement__ = 72; - validate_non_negative_index("y3", "N", N); - current_statement__ = 73; - validate_non_negative_index("y2", "N", N); - current_statement__ = 74; - validate_non_negative_index("y2", "N", N); - current_statement__ = 75; - validate_non_negative_index("y1", "N", N); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - num_params_r__ = (N * N * N * N) + (N * N * N) + (N * N * N) + (N * N) - + (N * N * N) + (N * N) + (N * N) + N + (N * N * N * N) + (N * N * N) - + (N * N * N) + (N * N) + (N * N * N) + (N * N) + (N * N) + N; - - } - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline stan::scalar_type_t log_prob_impl(VecR& params_r__, - VecI& params_i__, - std::ostream* pstream__ = nullptr) const { - using T__ = stan::scalar_type_t; - using local_scalar_t__ = T__; - T__ lp__(0.0); - stan::math::accumulator lp_accum__; - stan::io::deserializer in__(params_r__, params_i__); - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m2_model_namespace::log_prob"; - (void) function__; // suppress unused var warning - - try { - std::vector>> a8; - a8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(a8, DUMMY_VAR__); - current_statement__ = 1; - a8 = in__.template read>>>( - N, N, N, N); - std::vector>> a7; - a7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(a7, DUMMY_VAR__); + { + std::vector p_1d_simplex_flat__; + current_statement__ = 18; + p_1d_simplex_flat__ = context__.vals_r("p_1d_simplex"); + current_statement__ = 18; + pos__ = 1; + current_statement__ = 18; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 18; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 18; + assign(p_1d_simplex, p_1d_simplex_flat__[(pos__ - 1)], + "assigning variable p_1d_simplex", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 18; + pos__ = (pos__ + 1); + } + } + } + std::vector> p_1d_simplex_free__; + p_1d_simplex_free__ = std::vector>(N, Eigen::Matrix( + (N - 1))); + stan::math::fill(p_1d_simplex_free__, std::numeric_limits::quiet_NaN()); - current_statement__ = 2; - a7 = in__.template read>>>( - N, N, N); - std::vector>> a6; - a6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(a6, DUMMY_VAR__); - current_statement__ = 3; - a6 = in__.template read>>>( - N, N, N); - std::vector> a5; - a5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); + current_statement__ = 18; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 18; + assign(p_1d_simplex_free__, + stan::math::simplex_free(p_1d_simplex[(sym1__ - 1)]), + "assigning variable p_1d_simplex_free__", index_uni(sym1__)); + } + std::vector>>> p_3d_simplex; + p_3d_simplex = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix(N)))); + stan::math::fill(p_3d_simplex, std::numeric_limits::quiet_NaN()); - current_statement__ = 4; - a5 = in__.template read>>(N, - N); - std::vector> a4; - a4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(a4, DUMMY_VAR__); + { + std::vector p_3d_simplex_flat__; + current_statement__ = 19; + p_3d_simplex_flat__ = context__.vals_r("p_3d_simplex"); + current_statement__ = 19; + pos__ = 1; + current_statement__ = 19; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 19; + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + current_statement__ = 19; + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + current_statement__ = 19; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 19; + assign(p_3d_simplex, p_3d_simplex_flat__[(pos__ - 1)], + "assigning variable p_3d_simplex", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 19; + pos__ = (pos__ + 1); + } + } + } + } + } + std::vector>>> p_3d_simplex_free__; + p_3d_simplex_free__ = std::vector>>>(N, std::vector>>(M, std::vector>(K, Eigen::Matrix( + (N - 1))))); + stan::math::fill(p_3d_simplex_free__, std::numeric_limits::quiet_NaN()); - current_statement__ = 5; - a4 = in__.template read>>( - N, N, N); - std::vector> a3; - a3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(a3, DUMMY_VAR__); - current_statement__ = 6; - a3 = in__.template read>>( - N, N); - std::vector> a2; - a2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(a2, DUMMY_VAR__); + current_statement__ = 19; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 19; + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + current_statement__ = 19; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 19; + assign(p_3d_simplex_free__, + stan::math::simplex_free( + p_3d_simplex[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]), + "assigning variable p_3d_simplex_free__", index_uni(sym1__), + index_uni(sym2__), + index_uni(sym3__)); + } + } + } + Eigen::Matrix p_cfcov_54; + p_cfcov_54 = Eigen::Matrix(5, 4); + stan::math::fill(p_cfcov_54, std::numeric_limits::quiet_NaN()); - current_statement__ = 7; - a2 = in__.template read>>( - N, N); - std::vector a1; - a1 = std::vector(N, DUMMY_VAR__); + { + std::vector p_cfcov_54_flat__; + current_statement__ = 20; + p_cfcov_54_flat__ = context__.vals_r("p_cfcov_54"); + current_statement__ = 20; + pos__ = 1; + current_statement__ = 20; + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + current_statement__ = 20; + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + current_statement__ = 20; + assign(p_cfcov_54, p_cfcov_54_flat__[(pos__ - 1)], + "assigning variable p_cfcov_54", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 20; + pos__ = (pos__ + 1); + } + } + } + Eigen::Matrix p_cfcov_54_free__; + p_cfcov_54_free__ = Eigen::Matrix(((((4 * (4 - 1)) / 2) + + 4) + + ((5 - 4) * 4))); + stan::math::fill(p_cfcov_54_free__, std::numeric_limits::quiet_NaN()); - current_statement__ = 8; - a1 = in__.template read>(N); - std::vector>> y8; - y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8, DUMMY_VAR__); - current_statement__ = 9; - y8 = in__.template read>>>( - N, N, N, N); - std::vector>> y7; - y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7, DUMMY_VAR__); + current_statement__ = 20; + assign(p_cfcov_54_free__, stan::math::cholesky_factor_free(p_cfcov_54), + "assigning variable p_cfcov_54_free__"); + Eigen::Matrix p_cfcov_33; + p_cfcov_33 = Eigen::Matrix(3, 3); + stan::math::fill(p_cfcov_33, std::numeric_limits::quiet_NaN()); - current_statement__ = 10; - y7 = in__.template read>>>( - N, N, N); - std::vector>> y6; - y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6, DUMMY_VAR__); + { + std::vector p_cfcov_33_flat__; + current_statement__ = 21; + p_cfcov_33_flat__ = context__.vals_r("p_cfcov_33"); + current_statement__ = 21; + pos__ = 1; + current_statement__ = 21; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 21; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 21; + assign(p_cfcov_33, p_cfcov_33_flat__[(pos__ - 1)], + "assigning variable p_cfcov_33", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 21; + pos__ = (pos__ + 1); + } + } + } + Eigen::Matrix p_cfcov_33_free__; + p_cfcov_33_free__ = Eigen::Matrix(((((3 * (3 - 1)) / 2) + + 3) + + ((3 - 3) * 3))); + stan::math::fill(p_cfcov_33_free__, std::numeric_limits::quiet_NaN()); - current_statement__ = 11; - y6 = in__.template read>>>( - N, N, N); - std::vector> y5; - y5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); + current_statement__ = 21; + assign(p_cfcov_33_free__, stan::math::cholesky_factor_free(p_cfcov_33), + "assigning variable p_cfcov_33_free__"); + std::vector> p_cfcov_33_ar; + p_cfcov_33_ar = std::vector>(K, Eigen::Matrix(3, 3)); + stan::math::fill(p_cfcov_33_ar, std::numeric_limits::quiet_NaN()); - current_statement__ = 12; - y5 = in__.template read>>(N, - N); - std::vector> y4; - y4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4, DUMMY_VAR__); - current_statement__ = 13; - y4 = in__.template read>>( - N, N, N); - std::vector> y3; - y3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3, DUMMY_VAR__); + { + std::vector p_cfcov_33_ar_flat__; + current_statement__ = 22; + p_cfcov_33_ar_flat__ = context__.vals_r("p_cfcov_33_ar"); + current_statement__ = 22; + pos__ = 1; + current_statement__ = 22; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 22; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 22; + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + current_statement__ = 22; + assign(p_cfcov_33_ar, p_cfcov_33_ar_flat__[(pos__ - 1)], + "assigning variable p_cfcov_33_ar", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 22; + pos__ = (pos__ + 1); + } + } + } + } + std::vector> p_cfcov_33_ar_free__; + p_cfcov_33_ar_free__ = std::vector>(K, Eigen::Matrix( + ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)))); + stan::math::fill(p_cfcov_33_ar_free__, std::numeric_limits::quiet_NaN()); - current_statement__ = 14; - y3 = in__.template read>>( - N, N); - std::vector> y2; - y2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2, DUMMY_VAR__); - current_statement__ = 15; - y2 = in__.template read>>( - N, N); - std::vector y1; - y1 = std::vector(N, DUMMY_VAR__); + current_statement__ = 22; + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + current_statement__ = 22; + assign(p_cfcov_33_ar_free__, + stan::math::cholesky_factor_free(p_cfcov_33_ar[(sym1__ - 1)]), + "assigning variable p_cfcov_33_ar_free__", index_uni(sym1__)); + } + Eigen::Matrix x_p; + x_p = Eigen::Matrix(2); + stan::math::fill(x_p, std::numeric_limits::quiet_NaN()); - current_statement__ = 16; - y1 = in__.template read>(N); { - current_statement__ = 17; - lp_accum__.add(reduce_sum(x, 1, pstream__, a8)); - current_statement__ = 18; - lp_accum__.add(reduce_sum(x, 1, pstream__, a7)); - current_statement__ = 19; - lp_accum__.add(reduce_sum(x, 1, pstream__, a6)); - current_statement__ = 20; - lp_accum__.add(reduce_sum(x, 1, pstream__, a5)); - current_statement__ = 21; - lp_accum__.add(reduce_sum(x, 1, pstream__, a4)); - current_statement__ = 22; - lp_accum__.add(reduce_sum(x, 1, pstream__, a3)); + std::vector x_p_flat__; + current_statement__ = 23; + x_p_flat__ = context__.vals_r("x_p"); + current_statement__ = 23; + pos__ = 1; current_statement__ = 23; - lp_accum__.add(reduce_sum(x, 1, pstream__, a2)); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 23; + assign(x_p, x_p_flat__[(pos__ - 1)], + "assigning variable x_p", index_uni(sym1__)); + current_statement__ = 23; + pos__ = (pos__ + 1); + } + } + Eigen::Matrix y_p; + y_p = Eigen::Matrix(2); + stan::math::fill(y_p, std::numeric_limits::quiet_NaN()); + + { + std::vector y_p_flat__; current_statement__ = 24; - lp_accum__.add(reduce_sum(x, 1, pstream__, a1)); - current_statement__ = 25; - lp_accum__.add(reduce_sum(y8, 1, pstream__)); - current_statement__ = 26; - lp_accum__.add(reduce_sum(y7, 1, pstream__)); - current_statement__ = 27; - lp_accum__.add(reduce_sum(y6, 1, pstream__)); - current_statement__ = 28; - lp_accum__.add(reduce_sum(y5, 1, pstream__)); - current_statement__ = 29; - lp_accum__.add(reduce_sum(y4, 1, pstream__)); - current_statement__ = 30; - lp_accum__.add(reduce_sum(y3, 1, pstream__)); - current_statement__ = 31; - lp_accum__.add(reduce_sum(y2, 1, pstream__)); - current_statement__ = 32; - lp_accum__.add(reduce_sum(y1, 1, pstream__)); + y_p_flat__ = context__.vals_r("y_p"); + current_statement__ = 24; + pos__ = 1; + current_statement__ = 24; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 24; + assign(y_p, y_p_flat__[(pos__ - 1)], + "assigning variable y_p", index_uni(sym1__)); + current_statement__ = 24; + pos__ = (pos__ + 1); + } + } + vars__.emplace_back(p_real); + vars__.emplace_back(p_upper_free__); + vars__.emplace_back(p_lower_free__); + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(offset_multiplier_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(no_offset_multiplier_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(offset_no_multiplier_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(p_real_1d_ar_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + vars__.emplace_back( + p_real_3d_ar_free__[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(p_vec_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(p_1d_vec[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + p_3d_vec[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)][(sym4__ - + 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(p_row_vec[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(p_1d_row_vec[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + p_3d_row_vec[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)][ + (sym4__ - 1)]); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back( + rvalue(p_mat, "p_mat", index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + for (int sym4__ = 1; sym4__ <= 2; ++sym4__) { + vars__.emplace_back( + rvalue(p_ar_mat_free__, "p_ar_mat_free__", + index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), + index_uni(sym3__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { + vars__.emplace_back(p_simplex_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= (N - 1); ++sym2__) { + vars__.emplace_back( + p_1d_simplex_free__[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + for (int sym4__ = 1; sym4__ <= (N - 1); ++sym4__) { + vars__.emplace_back( + p_3d_simplex_free__[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)][ + (sym4__ - 1)]); + } + } + } + } + for (int sym1__ = 1; + sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { + vars__.emplace_back(p_cfcov_54_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; + sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { + vars__.emplace_back(p_cfcov_33_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + for (int sym2__ = 1; + sym2__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym2__) { + vars__.emplace_back( + p_cfcov_33_ar_free__[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(x_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(y_p[(sym1__ - 1)]); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - lp_accum__.add(lp__); - return lp_accum__.sum(); - } // log_prob_impl() + } // transform_inits_impl() - template * = nullptr, - stan::require_vector_like_vt* = nullptr, - stan::require_std_vector_vt* = nullptr> - inline void write_array_impl(RNG& base_rng__, VecR& params_r__, - VecI& params_i__, VecVar& vars__, - const bool emit_transformed_parameters__ = true, - const bool emit_generated_quantities__ = true, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.resize(0); - stan::io::deserializer in__(params_r__, params_i__); - static constexpr bool propto__ = true; - (void) propto__; - double lp__ = 0.0; - (void) lp__; // dummy to suppress unused var warning - int current_statement__ = 0; - stan::math::accumulator lp_accum__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - constexpr bool jacobian__ = false; - (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m2_model_namespace::write_array"; - (void) function__; // suppress unused var warning + inline void get_param_names(std::vector& names__) const { - try { - std::vector>> a8; - a8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(a8, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - a8 = in__.template read>>>( - N, N, N, N); - std::vector>> a7; - a7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(a7, std::numeric_limits::quiet_NaN()); - - current_statement__ = 2; - a7 = in__.template read>>>( - N, N, N); - std::vector>> a6; - a6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(a6, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - a6 = in__.template read>>>( - N, N, N); - std::vector> a5; - a5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); - - - current_statement__ = 4; - a5 = in__.template read>>(N, - N); - std::vector> a4; - a4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(a4, std::numeric_limits::quiet_NaN()); - - current_statement__ = 5; - a4 = in__.template read>>( - N, N, N); - std::vector> a3; - a3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(a3, std::numeric_limits::quiet_NaN()); - - current_statement__ = 6; - a3 = in__.template read>>( - N, N); - std::vector> a2; - a2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(a2, std::numeric_limits::quiet_NaN()); - - current_statement__ = 7; - a2 = in__.template read>>( - N, N); - std::vector a1; - a1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 8; - a1 = in__.template read>(N); - std::vector>> y8; - y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8, std::numeric_limits::quiet_NaN()); - - current_statement__ = 9; - y8 = in__.template read>>>( - N, N, N, N); - std::vector>> y7; - y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7, std::numeric_limits::quiet_NaN()); - - current_statement__ = 10; - y7 = in__.template read>>>( - N, N, N); - std::vector>> y6; - y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6, std::numeric_limits::quiet_NaN()); - - current_statement__ = 11; - y6 = in__.template read>>>( - N, N, N); - std::vector> y5; - y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); - - - current_statement__ = 12; - y5 = in__.template read>>(N, - N); - std::vector> y4; - y4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4, std::numeric_limits::quiet_NaN()); - - current_statement__ = 13; - y4 = in__.template read>>( - N, N, N); - std::vector> y3; - y3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3, std::numeric_limits::quiet_NaN()); - - current_statement__ = 14; - y3 = in__.template read>>( - N, N); - std::vector> y2; - y2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2, std::numeric_limits::quiet_NaN()); - - current_statement__ = 15; - y2 = in__.template read>>( - N, N); - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 16; - y1 = in__.template read>(N); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + names__ = std::vector{"p_real", "p_upper", "p_lower", + "offset_multiplier", "no_offset_multiplier", "offset_no_multiplier", + "p_real_1d_ar", "p_real_3d_ar", "p_vec", "p_1d_vec", "p_3d_vec", + "p_row_vec", "p_1d_row_vec", "p_3d_row_vec", "p_mat", "p_ar_mat", + "p_simplex", "p_1d_simplex", "p_3d_simplex", "p_cfcov_54", + "p_cfcov_33", "p_cfcov_33_ar", "x_p", "y_p", "tp_real_1d_ar", + "tp_real_3d_ar", "tp_vec", "tp_1d_vec", "tp_3d_vec", "tp_row_vec", + "tp_1d_row_vec", "tp_3d_row_vec", "tp_mat", "tp_ar_mat", "tp_simplex", + "tp_1d_simplex", "tp_3d_simplex", "tp_cfcov_54", "tp_cfcov_33", + "tp_cfcov_33_ar", "theta_p", "tp_real", "gq_r1", "gq_r2", + "gq_real_1d_ar", "gq_real_3d_ar", "gq_vec", "gq_1d_vec", "gq_3d_vec", + "gq_row_vec", "gq_1d_row_vec", "gq_3d_row_vec", "gq_ar_mat", + "gq_simplex", "gq_1d_simplex", "gq_3d_simplex", "gq_cfcov_54", + "gq_cfcov_33", "gq_cfcov_33_ar", "indices", "indexing_mat", "idx_res1", + "idx_res2", "idx_res3", "idx_res11", "idx_res21", "idx_res31", + "idx_res4", "idx_res5"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{}, std::vector{}, + std::vector{static_cast(5)}, + std::vector{static_cast(5)}, + std::vector{static_cast(5)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(5), static_cast(4)}, + std::vector{static_cast(4), static_cast(5), + static_cast(2), static_cast(3)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(5), static_cast(4)}, + std::vector{static_cast(3), static_cast(3)}, + std::vector{static_cast(K), static_cast(3), + static_cast(3)}, + std::vector{static_cast(2)}, + std::vector{static_cast(2)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(5), static_cast(4)}, + std::vector{static_cast(4), static_cast(5), + static_cast(2), static_cast(3)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(5), static_cast(4)}, + std::vector{static_cast(3), static_cast(3)}, + std::vector{static_cast(K), static_cast(3), + static_cast(3)}, + std::vector{static_cast(2)}, std::vector{ + }, std::vector{}, std::vector{}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(4), static_cast(5), + static_cast(2), static_cast(3)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(M), + static_cast(K), static_cast(N)}, + std::vector{static_cast(5), static_cast(4)}, + std::vector{static_cast(3), static_cast(3)}, + std::vector{static_cast(K), static_cast(3), + static_cast(3)}, + std::vector{static_cast(3)}, + std::vector{static_cast(5), static_cast(3), + static_cast(4)}, + std::vector{static_cast(3), static_cast(3), + static_cast(4)}, + std::vector{static_cast(5), static_cast(3), + static_cast(4)}, + std::vector{static_cast(3), static_cast(3), + static_cast(3)}, + std::vector{static_cast(3), static_cast(3), + static_cast(4)}, + std::vector{static_cast(5), static_cast(3), + static_cast(4)}, + std::vector{static_cast(3), static_cast(3), + static_cast(3)}, + std::vector{static_cast(3), static_cast(4)}, + std::vector{static_cast(2), static_cast(2)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "p_real"); + param_names__.emplace_back(std::string() + "p_upper"); + param_names__.emplace_back(std::string() + "p_lower"); + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + { + param_names__.emplace_back(std::string() + "offset_multiplier" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + { + param_names__.emplace_back(std::string() + "no_offset_multiplier" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + { + param_names__.emplace_back(std::string() + "offset_no_multiplier" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "p_real_1d_ar" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "p_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "p_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "p_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "p_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "p_row_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - rvalue(a8, "a8", - index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), - index_uni(sym1__))); + { + param_names__.emplace_back(std::string() + "p_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "p_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - a7[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "p_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - a6[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + { + param_names__.emplace_back(std::string() + "p_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "p_simplex" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(a5[(sym2__ - 1)][(sym1__ - 1)]); + { + param_names__.emplace_back(std::string() + "p_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - rvalue(a4, "a4", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); - } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "p_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(a3[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "p_cfcov_54" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(a2[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "p_cfcov_33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(a1[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - rvalue(y8, "y8", - index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), - index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + { + param_names__.emplace_back(std::string() + "p_cfcov_33_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y7[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } - } + { + param_names__.emplace_back(std::string() + "tp_real_1d_ar" + '.' + std::to_string(sym1__)); + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y6[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "tp_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y5[(sym2__ - 1)][(sym1__ - 1)]); - } + { + param_names__.emplace_back(std::string() + "tp_vec" + '.' + std::to_string(sym1__)); + } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - rvalue(y4, "y4", - index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y3[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y2[(sym2__ - 1)][(sym1__ - 1)]); - } + } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]); - } - if (logical_negation((primitive_value(emit_transformed_parameters__) || - primitive_value(emit_generated_quantities__)))) { - return ; - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - } // write_array_impl() - - template * = nullptr, - stan::require_vector_like_vt* = nullptr> - inline void transform_inits_impl(const stan::io::var_context& context__, - VecI& params_i__, VecVar& vars__, - std::ostream* pstream__ = nullptr) const { - using local_scalar_t__ = double; - vars__.clear(); - vars__.reserve(num_params_r__); - int current_statement__ = 0; - - try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - std::vector>> a8; - a8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(a8, std::numeric_limits::quiet_NaN()); - - { - std::vector a8_flat__; - current_statement__ = 1; - a8_flat__ = context__.vals_r("a8"); - current_statement__ = 1; - pos__ = 1; - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 1; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 1; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 1; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 1; - assign(a8, a8_flat__[(pos__ - 1)], - "assigning variable a8", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 1; - pos__ = (pos__ + 1); + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } - } + } } - std::vector>> a7; - a7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(a7, std::numeric_limits::quiet_NaN()); - - { - std::vector a7_flat__; - current_statement__ = 2; - a7_flat__ = context__.vals_r("a7"); - current_statement__ = 2; - pos__ = 1; - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_row_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 2; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 2; - assign(a7, a7_flat__[(pos__ - 1)], - "assigning variable a7", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 2; - pos__ = (pos__ + 1); - } + { + param_names__.emplace_back(std::string() + "tp_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - std::vector>> a6; - a6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(a6, std::numeric_limits::quiet_NaN()); - - { - std::vector a6_flat__; - current_statement__ = 3; - a6_flat__ = context__.vals_r("a6"); - current_statement__ = 3; - pos__ = 1; - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 3; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 3; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 3; - assign(a6, a6_flat__[(pos__ - 1)], - "assigning variable a6", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 3; - pos__ = (pos__ + 1); - } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } + } } - std::vector> a5; - a5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); - - - { - std::vector a5_flat__; - current_statement__ = 4; - a5_flat__ = context__.vals_r("a5"); - current_statement__ = 4; - pos__ = 1; - current_statement__ = 4; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 4; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 4; - assign(a5, a5_flat__[(pos__ - 1)], - "assigning variable a5", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 4; - pos__ = (pos__ + 1); + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - std::vector> a4; - a4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(a4, std::numeric_limits::quiet_NaN()); - - { - std::vector a4_flat__; - current_statement__ = 5; - a4_flat__ = context__.vals_r("a4"); - current_statement__ = 5; - pos__ = 1; - current_statement__ = 5; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 5; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 5; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 5; - assign(a4, a4_flat__[(pos__ - 1)], - "assigning variable a4", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 5; - pos__ = (pos__ + 1); - } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } + } } - std::vector> a3; - a3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(a3, std::numeric_limits::quiet_NaN()); - - { - std::vector a3_flat__; - current_statement__ = 6; - a3_flat__ = context__.vals_r("a3"); - current_statement__ = 6; - pos__ = 1; - current_statement__ = 6; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 6; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_simplex" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 6; - assign(a3, a3_flat__[(pos__ - 1)], - "assigning variable a3", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 6; - pos__ = (pos__ + 1); + { + param_names__.emplace_back(std::string() + "tp_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - std::vector> a2; - a2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(a2, std::numeric_limits::quiet_NaN()); - - { - std::vector a2_flat__; - current_statement__ = 7; - a2_flat__ = context__.vals_r("a2"); - current_statement__ = 7; - pos__ = 1; - current_statement__ = 7; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 7; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 7; - assign(a2, a2_flat__[(pos__ - 1)], - "assigning variable a2", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 7; - pos__ = (pos__ + 1); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } + } } - std::vector a1; - a1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 8; - a1 = context__.vals_r("a1"); - std::vector>> y8; - y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8, std::numeric_limits::quiet_NaN()); - - { - std::vector y8_flat__; - current_statement__ = 9; - y8_flat__ = context__.vals_r("y8"); - current_statement__ = 9; - pos__ = 1; - current_statement__ = 9; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 9; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 9; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 9; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 9; - assign(y8, y8_flat__[(pos__ - 1)], - "assigning variable y8", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 9; - pos__ = (pos__ + 1); + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_cfcov_54" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_cfcov_33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + { + param_names__.emplace_back(std::string() + "tp_cfcov_33_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - } + } } - std::vector>> y7; - y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7, std::numeric_limits::quiet_NaN()); - - { - std::vector y7_flat__; - current_statement__ = 10; - y7_flat__ = context__.vals_r("y7"); - current_statement__ = 10; - pos__ = 1; - current_statement__ = 10; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 10; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 10; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 10; - assign(y7, y7_flat__[(pos__ - 1)], - "assigning variable y7", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 10; - pos__ = (pos__ + 1); - } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); + } + } + param_names__.emplace_back(std::string() + "tp_real"); + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "gq_r1"); + param_names__.emplace_back(std::string() + "gq_r2"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_real_1d_ar" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "gq_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } - std::vector>> y6; - y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6, std::numeric_limits::quiet_NaN()); - - { - std::vector y6_flat__; - current_statement__ = 11; - y6_flat__ = context__.vals_r("y6"); - current_statement__ = 11; - pos__ = 1; - current_statement__ = 11; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 11; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 11; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 11; - assign(y6, y6_flat__[(pos__ - 1)], - "assigning variable y6", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 11; - pos__ = (pos__ + 1); - } + { + param_names__.emplace_back(std::string() + "gq_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - std::vector> y5; - y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); - - - { - std::vector y5_flat__; - current_statement__ = 12; - y5_flat__ = context__.vals_r("y5"); - current_statement__ = 12; - pos__ = 1; - current_statement__ = 12; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 12; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 12; - assign(y5, y5_flat__[(pos__ - 1)], - "assigning variable y5", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 12; - pos__ = (pos__ + 1); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } + } } - std::vector> y4; - y4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4, std::numeric_limits::quiet_NaN()); - - { - std::vector y4_flat__; - current_statement__ = 13; - y4_flat__ = context__.vals_r("y4"); - current_statement__ = 13; - pos__ = 1; - current_statement__ = 13; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 13; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_row_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 13; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 13; - assign(y4, y4_flat__[(pos__ - 1)], - "assigning variable y4", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 13; - pos__ = (pos__ + 1); - } + { + param_names__.emplace_back(std::string() + "gq_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - std::vector> y3; - y3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3, std::numeric_limits::quiet_NaN()); - - { - std::vector y3_flat__; - current_statement__ = 14; - y3_flat__ = context__.vals_r("y3"); - current_statement__ = 14; - pos__ = 1; - current_statement__ = 14; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 14; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 14; - assign(y3, y3_flat__[(pos__ - 1)], - "assigning variable y3", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 14; - pos__ = (pos__ + 1); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } + } } - std::vector> y2; - y2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2, std::numeric_limits::quiet_NaN()); - - { - std::vector y2_flat__; - current_statement__ = 15; - y2_flat__ = context__.vals_r("y2"); - current_statement__ = 15; - pos__ = 1; - current_statement__ = 15; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 15; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 15; - assign(y2, y2_flat__[(pos__ - 1)], - "assigning variable y2", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 15; - pos__ = (pos__ + 1); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } + } } - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 16; - y1 = context__.vals_r("y1"); for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - rvalue(a8, "a8", - index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), - index_uni(sym3__))); - } - } - } + { + param_names__.emplace_back(std::string() + "gq_simplex" + '.' + std::to_string(sym1__)); + } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - a7[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "gq_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - a6[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(a5[(sym1__ - 1)][(sym2__ - 1)]); - } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "gq_cfcov_54" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - rvalue(a4, "a4", - index_uni(sym1__), index_uni(sym3__), index_uni(sym2__))); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "gq_cfcov_33" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } } - } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(a3[(sym1__ - 1)][(sym2__ - 1)]); - } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= K; ++sym3__) { + { + param_names__.emplace_back(std::string() + "gq_cfcov_33_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(a2[(sym1__ - 1)][(sym2__ - 1)]); - } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "indices" + '.' + std::to_string(sym1__)); + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(a1[(sym1__ - 1)]); + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + param_names__.emplace_back(std::string() + "indexing_mat" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - rvalue(y8, "y8", - index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), - index_uni(sym3__))); - } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res1" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y7[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res2" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y6[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res3" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y5[(sym1__ - 1)][(sym2__ - 1)]); - } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res11" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - rvalue(y4, "y4", - index_uni(sym1__), index_uni(sym3__), index_uni(sym2__))); + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res21" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y3[(sym1__ - 1)][(sym2__ - 1)]); - } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res31" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y2[(sym1__ - 1)][(sym2__ - 1)]); - } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "idx_res4" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + { + param_names__.emplace_back(std::string() + "idx_res5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } } - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - } // transform_inits_impl() - - inline void get_param_names(std::vector& names__) const { - - names__ = std::vector{"a8", "a7", "a6", "a5", "a4", "a3", - "a2", "a1", "y8", "y7", "y6", "y5", "y4", "y3", "y2", "y1"}; - - } // get_param_names() - - inline void get_dims(std::vector>& dimss__) const { - - dimss__ = std::vector>{std::vector{ - static_cast(N) - , - static_cast(N) - , - static_cast(N) - , - static_cast(N) - }, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N)}}; - } // get_dims() + } // constrained_param_names() - inline void constrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const final { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "a8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "a7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "a6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "a5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "a4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "a3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "a2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "a1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + param_names__.emplace_back(std::string() + "p_real"); + param_names__.emplace_back(std::string() + "p_upper"); + param_names__.emplace_back(std::string() + "p_lower"); + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + { + param_names__.emplace_back(std::string() + "offset_multiplier" + '.' + std::to_string(sym1__)); } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + param_names__.emplace_back(std::string() + "no_offset_multiplier" + '.' + std::to_string(sym1__)); } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } + param_names__.emplace_back(std::string() + "offset_no_multiplier" + '.' + std::to_string(sym1__)); } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + param_names__.emplace_back(std::string() + "p_real_1d_ar" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { { for (int sym3__ = 1; sym3__ <= N; ++sym3__) { { - param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } @@ -28739,52 +10594,27 @@ class reduce_sum_m2_model final : public model_base_crtp { } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } + param_names__.emplace_back(std::string() + "p_vec" + '.' + std::to_string(sym1__)); } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { { for (int sym4__ = 1; sym4__ <= N; ++sym4__) { { - param_names__.emplace_back(std::string() + "a8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } @@ -28795,84 +10625,53 @@ class reduce_sum_m2_model final : public model_base_crtp { } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "a7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "a6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + param_names__.emplace_back(std::string() + "p_row_vec" + '.' + std::to_string(sym1__)); } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { { - param_names__.emplace_back(std::string() + "a5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } } for (int sym1__ = 1; sym1__ <= N; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { { - param_names__.emplace_back(std::string() + "a4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "p_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } } } } } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "a3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { { - param_names__.emplace_back(std::string() + "a2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "a1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { { - param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } @@ -28881,1579 +10680,3383 @@ class reduce_sum_m2_model final : public model_base_crtp { } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + param_names__.emplace_back(std::string() + "p_simplex" + '.' + std::to_string(sym1__)); } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { { for (int sym2__ = 1; sym2__ <= N; ++sym2__) { { - param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { { - param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "p_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } } } } } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; + sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } + param_names__.emplace_back(std::string() + "p_cfcov_54" + '.' + std::to_string(sym1__)); } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; + sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + param_names__.emplace_back(std::string() + "p_cfcov_33" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; + sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "p_cfcov_33_ar" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); } } - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"a8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"a4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"a8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"a4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = reduce_sum_m2_model_namespace::reduce_sum_m2_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return reduce_sum_m2_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../install/default/bin/stanc --print-cpp reduce_sum_m3.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace reduce_sum_m3_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'reduce_sum_m3.stan', line 210, column 2 to column 13)", - " (in 'reduce_sum_m3.stan', line 211, column 2 to column 18)", - " (in 'reduce_sum_m3.stan', line 212, column 2 to column 22)", - " (in 'reduce_sum_m3.stan', line 213, column 2 to column 21)", - " (in 'reduce_sum_m3.stan', line 214, column 2 to column 16)", - " (in 'reduce_sum_m3.stan', line 215, column 2 to column 21)", - " (in 'reduce_sum_m3.stan', line 216, column 2 to column 25)", - " (in 'reduce_sum_m3.stan', line 217, column 2 to column 24)", - " (in 'reduce_sum_m3.stan', line 218, column 2 to column 10)", - " (in 'reduce_sum_m3.stan', line 219, column 2 to column 16)", - " (in 'reduce_sum_m3.stan', line 220, column 2 to column 20)", - " (in 'reduce_sum_m3.stan', line 221, column 2 to column 19)", - " (in 'reduce_sum_m3.stan', line 222, column 2 to column 20)", - " (in 'reduce_sum_m3.stan', line 260, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 261, column 2 to column 60)", - " (in 'reduce_sum_m3.stan', line 262, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 263, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 264, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 265, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 266, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 267, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 268, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 269, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 270, column 2 to column 38)", - " (in 'reduce_sum_m3.stan', line 271, column 2 to column 38)", - " (in 'reduce_sum_m3.stan', line 272, column 2 to column 37)", - " (in 'reduce_sum_m3.stan', line 273, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 274, column 2 to column 40)", - " (in 'reduce_sum_m3.stan', line 275, column 2 to column 40)", - " (in 'reduce_sum_m3.stan', line 276, column 2 to column 40)", - " (in 'reduce_sum_m3.stan', line 277, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 278, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 279, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 280, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 281, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 282, column 2 to column 41)", - " (in 'reduce_sum_m3.stan', line 283, column 2 to column 41)", - " (in 'reduce_sum_m3.stan', line 284, column 2 to column 41)", - " (in 'reduce_sum_m3.stan', line 285, column 2 to line 288, column 35)", - " (in 'reduce_sum_m3.stan', line 226, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 227, column 2 to column 60)", - " (in 'reduce_sum_m3.stan', line 228, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 229, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 230, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 231, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 232, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 233, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 234, column 2 to column 34)", - " (in 'reduce_sum_m3.stan', line 235, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 236, column 2 to column 38)", - " (in 'reduce_sum_m3.stan', line 237, column 2 to column 38)", - " (in 'reduce_sum_m3.stan', line 238, column 2 to column 37)", - " (in 'reduce_sum_m3.stan', line 239, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 240, column 2 to column 40)", - " (in 'reduce_sum_m3.stan', line 241, column 2 to column 40)", - " (in 'reduce_sum_m3.stan', line 242, column 2 to column 40)", - " (in 'reduce_sum_m3.stan', line 243, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 244, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 245, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 246, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 247, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 248, column 2 to column 41)", - " (in 'reduce_sum_m3.stan', line 249, column 2 to column 41)", - " (in 'reduce_sum_m3.stan', line 250, column 2 to column 41)", - " (in 'reduce_sum_m3.stan', line 251, column 2 to line 254, column 34)", - " (in 'reduce_sum_m3.stan', line 256, column 2 to column 16)", - " (in 'reduce_sum_m3.stan', line 157, column 2 to column 8)", - " (in 'reduce_sum_m3.stan', line 158, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 158, column 2 to column 14)", - " (in 'reduce_sum_m3.stan', line 159, column 16 to column 17)", - " (in 'reduce_sum_m3.stan', line 159, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 159, column 2 to column 19)", - " (in 'reduce_sum_m3.stan', line 160, column 20 to column 21)", - " (in 'reduce_sum_m3.stan', line 160, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 160, column 2 to column 23)", - " (in 'reduce_sum_m3.stan', line 161, column 19 to column 20)", - " (in 'reduce_sum_m3.stan', line 161, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 161, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 161, column 2 to column 22)", - " (in 'reduce_sum_m3.stan', line 162, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 162, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 162, column 2 to column 17)", - " (in 'reduce_sum_m3.stan', line 163, column 16 to column 17)", - " (in 'reduce_sum_m3.stan', line 163, column 19 to column 20)", - " (in 'reduce_sum_m3.stan', line 163, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 163, column 2 to column 22)", - " (in 'reduce_sum_m3.stan', line 164, column 20 to column 21)", - " (in 'reduce_sum_m3.stan', line 164, column 23 to column 24)", - " (in 'reduce_sum_m3.stan', line 164, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 164, column 2 to column 26)", - " (in 'reduce_sum_m3.stan', line 165, column 19 to column 20)", - " (in 'reduce_sum_m3.stan', line 165, column 22 to column 23)", - " (in 'reduce_sum_m3.stan', line 165, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 165, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 165, column 2 to column 25)", - " (in 'reduce_sum_m3.stan', line 166, column 2 to column 11)", - " (in 'reduce_sum_m3.stan', line 167, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 167, column 2 to column 17)", - " (in 'reduce_sum_m3.stan', line 168, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 168, column 2 to column 21)", - " (in 'reduce_sum_m3.stan', line 169, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 169, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 169, column 2 to column 20)", - " (in 'reduce_sum_m3.stan', line 170, column 2 to column 11)", - " (in 'reduce_sum_m3.stan', line 171, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 171, column 2 to column 14)", - " (in 'reduce_sum_m3.stan', line 172, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 172, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 172, column 2 to column 17)", - " (in 'reduce_sum_m3.stan', line 173, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 173, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 173, column 17 to column 18)", - " (in 'reduce_sum_m3.stan', line 173, column 2 to column 20)", - " (in 'reduce_sum_m3.stan', line 174, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 174, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 174, column 18 to column 19)", - " (in 'reduce_sum_m3.stan', line 174, column 2 to column 21)", - " (in 'reduce_sum_m3.stan', line 178, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 179, column 2 to column 63)", - " (in 'reduce_sum_m3.stan', line 180, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 181, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 182, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 183, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 184, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 185, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 186, column 2 to column 36)", - " (in 'reduce_sum_m3.stan', line 187, column 2 to column 37)", - " (in 'reduce_sum_m3.stan', line 188, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 189, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 190, column 2 to column 39)", - " (in 'reduce_sum_m3.stan', line 191, column 2 to column 42)", - " (in 'reduce_sum_m3.stan', line 192, column 2 to column 43)", - " (in 'reduce_sum_m3.stan', line 193, column 2 to column 43)", - " (in 'reduce_sum_m3.stan', line 194, column 2 to column 43)", - " (in 'reduce_sum_m3.stan', line 195, column 2 to column 42)", - " (in 'reduce_sum_m3.stan', line 196, column 2 to column 42)", - " (in 'reduce_sum_m3.stan', line 197, column 2 to column 42)", - " (in 'reduce_sum_m3.stan', line 198, column 2 to column 42)", - " (in 'reduce_sum_m3.stan', line 199, column 2 to column 42)", - " (in 'reduce_sum_m3.stan', line 200, column 2 to column 44)", - " (in 'reduce_sum_m3.stan', line 201, column 2 to column 44)", - " (in 'reduce_sum_m3.stan', line 202, column 2 to column 44)", - " (in 'reduce_sum_m3.stan', line 203, column 2 to line 206, column 36)", - " (in 'reduce_sum_m3.stan', line 210, column 10 to column 11)", - " (in 'reduce_sum_m3.stan', line 211, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 211, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 212, column 19 to column 20)", - " (in 'reduce_sum_m3.stan', line 212, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 213, column 18 to column 19)", - " (in 'reduce_sum_m3.stan', line 213, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 213, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 214, column 10 to column 11)", - " (in 'reduce_sum_m3.stan', line 214, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 215, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 215, column 18 to column 19)", - " (in 'reduce_sum_m3.stan', line 215, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 216, column 19 to column 20)", - " (in 'reduce_sum_m3.stan', line 216, column 22 to column 23)", - " (in 'reduce_sum_m3.stan', line 216, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 217, column 18 to column 19)", - " (in 'reduce_sum_m3.stan', line 217, column 21 to column 22)", - " (in 'reduce_sum_m3.stan', line 217, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 217, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 219, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 220, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 221, column 9 to column 10)", - " (in 'reduce_sum_m3.stan', line 221, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 222, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 222, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 222, column 17 to column 18)", - " (in 'reduce_sum_m3.stan', line 3, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 2, column 46 to line 4, column 3)", - " (in 'reduce_sum_m3.stan', line 6, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 5, column 47 to line 7, column 3)", - " (in 'reduce_sum_m3.stan', line 9, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 8, column 48 to line 10, column 3)", - " (in 'reduce_sum_m3.stan', line 12, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 11, column 52 to line 13, column 3)", - " (in 'reduce_sum_m3.stan', line 15, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 14, column 48 to line 16, column 3)", - " (in 'reduce_sum_m3.stan', line 18, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 17, column 47 to line 19, column 3)", - " (in 'reduce_sum_m3.stan', line 21, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 20, column 49 to line 22, column 3)", - " (in 'reduce_sum_m3.stan', line 24, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 23, column 53 to line 25, column 3)", - " (in 'reduce_sum_m3.stan', line 27, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 26, column 49 to line 28, column 3)", - " (in 'reduce_sum_m3.stan', line 30, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 29, column 45 to line 31, column 3)", - " (in 'reduce_sum_m3.stan', line 33, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 32, column 47 to line 34, column 3)", - " (in 'reduce_sum_m3.stan', line 36, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 35, column 48 to line 37, column 3)", - " (in 'reduce_sum_m3.stan', line 39, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 38, column 49 to line 40, column 3)", - " (in 'reduce_sum_m3.stan', line 42, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 41, column 54 to line 43, column 3)", - " (in 'reduce_sum_m3.stan', line 45, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 44, column 56 to line 46, column 3)", - " (in 'reduce_sum_m3.stan', line 48, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 47, column 60 to line 49, column 3)", - " (in 'reduce_sum_m3.stan', line 51, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 50, column 56 to line 52, column 3)", - " (in 'reduce_sum_m3.stan', line 54, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 53, column 56 to line 55, column 3)", - " (in 'reduce_sum_m3.stan', line 57, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 56, column 58 to line 58, column 3)", - " (in 'reduce_sum_m3.stan', line 60, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 59, column 62 to line 61, column 3)", - " (in 'reduce_sum_m3.stan', line 63, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 62, column 58 to line 64, column 3)", - " (in 'reduce_sum_m3.stan', line 66, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 65, column 57 to line 67, column 3)", - " (in 'reduce_sum_m3.stan', line 69, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 68, column 60 to line 70, column 3)", - " (in 'reduce_sum_m3.stan', line 72, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 71, column 64 to line 73, column 3)", - " (in 'reduce_sum_m3.stan', line 75, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 74, column 60 to line 76, column 3)", - " (in 'reduce_sum_m3.stan', line 82, column 4 to line 86, column 28)", - " (in 'reduce_sum_m3.stan', line 81, column 32 to line 87, column 3)", - " (in 'reduce_sum_m3.stan', line 89, column 4 to column 10)", - " (in 'reduce_sum_m3.stan', line 90, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 90, column 4 to column 16)", - " (in 'reduce_sum_m3.stan', line 91, column 18 to column 19)", - " (in 'reduce_sum_m3.stan', line 91, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 91, column 4 to column 21)", - " (in 'reduce_sum_m3.stan', line 92, column 22 to column 23)", - " (in 'reduce_sum_m3.stan', line 92, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 92, column 4 to column 25)", - " (in 'reduce_sum_m3.stan', line 93, column 21 to column 22)", - " (in 'reduce_sum_m3.stan', line 93, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 93, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 93, column 4 to column 24)", - " (in 'reduce_sum_m3.stan', line 94, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 94, column 16 to column 17)", - " (in 'reduce_sum_m3.stan', line 94, column 4 to column 19)", - " (in 'reduce_sum_m3.stan', line 95, column 18 to column 19)", - " (in 'reduce_sum_m3.stan', line 95, column 21 to column 22)", - " (in 'reduce_sum_m3.stan', line 95, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 95, column 4 to column 24)", - " (in 'reduce_sum_m3.stan', line 96, column 22 to column 23)", - " (in 'reduce_sum_m3.stan', line 96, column 25 to column 26)", - " (in 'reduce_sum_m3.stan', line 96, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 96, column 4 to column 28)", - " (in 'reduce_sum_m3.stan', line 97, column 21 to column 22)", - " (in 'reduce_sum_m3.stan', line 97, column 24 to column 25)", - " (in 'reduce_sum_m3.stan', line 97, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 97, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 97, column 4 to column 27)", - " (in 'reduce_sum_m3.stan', line 98, column 4 to column 13)", - " (in 'reduce_sum_m3.stan', line 99, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 99, column 4 to column 19)", - " (in 'reduce_sum_m3.stan', line 100, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 100, column 4 to column 23)", - " (in 'reduce_sum_m3.stan', line 101, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 101, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 101, column 4 to column 22)", - " (in 'reduce_sum_m3.stan', line 102, column 4 to column 13)", - " (in 'reduce_sum_m3.stan', line 103, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 103, column 4 to column 16)", - " (in 'reduce_sum_m3.stan', line 104, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 104, column 16 to column 17)", - " (in 'reduce_sum_m3.stan', line 104, column 4 to column 19)", - " (in 'reduce_sum_m3.stan', line 105, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 105, column 16 to column 17)", - " (in 'reduce_sum_m3.stan', line 105, column 19 to column 20)", - " (in 'reduce_sum_m3.stan', line 105, column 4 to column 22)", - " (in 'reduce_sum_m3.stan', line 106, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 106, column 17 to column 18)", - " (in 'reduce_sum_m3.stan', line 106, column 20 to column 21)", - " (in 'reduce_sum_m3.stan', line 106, column 4 to column 23)", - " (in 'reduce_sum_m3.stan', line 108, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 108, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 109, column 17 to column 18)", - " (in 'reduce_sum_m3.stan', line 109, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 109, column 4 to column 20)", - " (in 'reduce_sum_m3.stan', line 110, column 21 to column 22)", - " (in 'reduce_sum_m3.stan', line 110, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 110, column 4 to column 24)", - " (in 'reduce_sum_m3.stan', line 111, column 20 to column 21)", - " (in 'reduce_sum_m3.stan', line 111, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 111, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 111, column 4 to column 23)", - " (in 'reduce_sum_m3.stan', line 112, column 12 to column 13)", - " (in 'reduce_sum_m3.stan', line 112, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 112, column 4 to column 18)", - " (in 'reduce_sum_m3.stan', line 113, column 17 to column 18)", - " (in 'reduce_sum_m3.stan', line 113, column 20 to column 21)", - " (in 'reduce_sum_m3.stan', line 113, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 113, column 4 to column 23)", - " (in 'reduce_sum_m3.stan', line 114, column 21 to column 22)", - " (in 'reduce_sum_m3.stan', line 114, column 24 to column 25)", - " (in 'reduce_sum_m3.stan', line 114, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 114, column 4 to column 27)", - " (in 'reduce_sum_m3.stan', line 115, column 20 to column 21)", - " (in 'reduce_sum_m3.stan', line 115, column 23 to column 24)", - " (in 'reduce_sum_m3.stan', line 115, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 115, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 115, column 4 to column 26)", - " (in 'reduce_sum_m3.stan', line 116, column 4 to column 12)", - " (in 'reduce_sum_m3.stan', line 117, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 117, column 4 to column 18)", - " (in 'reduce_sum_m3.stan', line 118, column 15 to column 16)", - " (in 'reduce_sum_m3.stan', line 118, column 4 to column 22)", - " (in 'reduce_sum_m3.stan', line 119, column 11 to column 12)", - " (in 'reduce_sum_m3.stan', line 119, column 14 to column 15)", - " (in 'reduce_sum_m3.stan', line 119, column 4 to column 21)", - " (in 'reduce_sum_m3.stan', line 120, column 13 to column 14)", - " (in 'reduce_sum_m3.stan', line 120, column 16 to column 17)", - " (in 'reduce_sum_m3.stan', line 120, column 19 to column 20)", - " (in 'reduce_sum_m3.stan', line 120, column 4 to column 22)", - " (in 'reduce_sum_m3.stan', line 122, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 123, column 4 to column 62)", - " (in 'reduce_sum_m3.stan', line 124, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 125, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 126, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 127, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 128, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 129, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 130, column 4 to column 36)", - " (in 'reduce_sum_m3.stan', line 131, column 4 to column 38)", - " (in 'reduce_sum_m3.stan', line 132, column 4 to column 40)", - " (in 'reduce_sum_m3.stan', line 133, column 4 to column 40)", - " (in 'reduce_sum_m3.stan', line 134, column 4 to column 39)", - " (in 'reduce_sum_m3.stan', line 135, column 4 to column 41)", - " (in 'reduce_sum_m3.stan', line 136, column 4 to column 42)", - " (in 'reduce_sum_m3.stan', line 137, column 4 to column 42)", - " (in 'reduce_sum_m3.stan', line 138, column 4 to column 42)", - " (in 'reduce_sum_m3.stan', line 139, column 4 to column 41)", - " (in 'reduce_sum_m3.stan', line 140, column 4 to column 41)", - " (in 'reduce_sum_m3.stan', line 141, column 4 to column 41)", - " (in 'reduce_sum_m3.stan', line 142, column 4 to column 41)", - " (in 'reduce_sum_m3.stan', line 143, column 4 to column 41)", - " (in 'reduce_sum_m3.stan', line 144, column 4 to column 43)", - " (in 'reduce_sum_m3.stan', line 145, column 4 to column 43)", - " (in 'reduce_sum_m3.stan', line 146, column 4 to column 43)", - " (in 'reduce_sum_m3.stan', line 147, column 4 to line 150, column 36)", - " (in 'reduce_sum_m3.stan', line 152, column 4 to column 15)", - " (in 'reduce_sum_m3.stan', line 88, column 11 to line 153, column 3)"}; -struct f10_rsfunctor__; -struct f11_rsfunctor__; -struct f12_rsfunctor__; -struct f1_rsfunctor__; -struct f1a_rsfunctor__; -struct f2_rsfunctor__; -struct f3_rsfunctor__; -struct f4_rsfunctor__; -struct f5_rsfunctor__; -struct f6_rsfunctor__; -struct f7_rsfunctor__; -struct f8_rsfunctor__; -struct f9_rsfunctor__; -struct g10_rsfunctor__; -struct g11_rsfunctor__; -struct g12_rsfunctor__; -struct g1_rsfunctor__; -struct g2_rsfunctor__; -struct g3_rsfunctor__; -struct g4_rsfunctor__; -struct g5_rsfunctor__; -struct g6_rsfunctor__; -struct g7_rsfunctor__; -struct g8_rsfunctor__; -struct g9_rsfunctor__; -struct s_rsfunctor__; -template -stan::promote_args_t -f1(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) ; - -struct f1_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f1(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f1(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f1a(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) ; - -struct f1a_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f1a(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f1a_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f1a(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f2(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct f2_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f2(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f2_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f2(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f3(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct f3_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f3(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f3_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f3(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f4(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct f4_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f4(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f4_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f4(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f5(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct f5_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f5(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f5_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f5(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f6(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; - -struct f6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f6(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f6_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f6(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f7(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; - -struct f7_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f7(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f7_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f7(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f8(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; - -struct f8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f8(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f8_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f8(y_slice, start, end, pstream__); -} -}; - -double -f9(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) ; - -struct f9_rsfunctor__ { -double -operator()(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) const -{ -return f9(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f9_functor__ { -double -operator()(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) const -{ -return f9(y_slice, start, end, pstream__); -} -}; - -double -f10(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) ; - -struct f10_rsfunctor__ { -double -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f10(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f10_functor__ { -double -operator()(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) const -{ -return f10(y_slice, start, end, pstream__); -} -}; - -double -f11(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; - -struct f11_rsfunctor__ { -double -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f11(y_slice, start + 1, end + 1, pstream__); -} -}; - - -struct f11_functor__ { -double -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f11(y_slice, start, end, pstream__); -} -}; - -template -stan::promote_args_t -f12(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) ; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_real_1d_ar" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "tp_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_row_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_mat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_simplex" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "tp_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; + sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_cfcov_54" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; + sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { + { + param_names__.emplace_back(std::string() + "tp_cfcov_33" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; + sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + param_names__.emplace_back(std::string() + "tp_cfcov_33_ar" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); + } + } + param_names__.emplace_back(std::string() + "tp_real"); + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "gq_r1"); + param_names__.emplace_back(std::string() + "gq_r2"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_real_1d_ar" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= K; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= M; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "gq_real_3d_ar" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "gq_1d_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_3d_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_row_vec" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "gq_1d_row_vec" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_3d_row_vec" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= 4; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_ar_mat" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_simplex" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "gq_1d_simplex" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= (N - 1); ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= M; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "gq_3d_simplex" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; + sym1__ <= ((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4)); ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_cfcov_54" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; + sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { + { + param_names__.emplace_back(std::string() + "gq_cfcov_33" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; + sym1__ <= ((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3)); ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= K; ++sym2__) { + { + param_names__.emplace_back(std::string() + "gq_cfcov_33_ar" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "indices" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + param_names__.emplace_back(std::string() + "indexing_mat" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res1" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res2" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res3" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res11" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 5; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res21" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= 3; ++sym3__) { + { + param_names__.emplace_back(std::string() + "idx_res31" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= 4; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "idx_res4" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + { + param_names__.emplace_back(std::string() + "idx_res5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"p_real\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_upper\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_lower\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"no_offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"offset_no_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"p_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"parameters\"},{\"name\":\"p_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"parameters\"},{\"name\":\"p_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_cfcov_54\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"tp_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_54\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"gq_r1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_r2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_54\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"indices\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"int\"}},\"block\":\"generated_quantities\"},{\"name\":\"indexing_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res11\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res21\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res31\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"generated_quantities\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"p_real\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_upper\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"p_lower\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"no_offset_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"offset_no_multiplier\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"p_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"p_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"parameters\"},{\"name\":\"p_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"parameters\"},{\"name\":\"p_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "},\"block\":\"parameters\"},{\"name\":\"p_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}},\"block\":\"parameters\"},{\"name\":\"p_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}}}},\"block\":\"parameters\"},{\"name\":\"p_cfcov_54\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4))) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "},\"block\":\"parameters\"},{\"name\":\"p_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"tp_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_mat\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(5) + ",\"cols\":" + std::to_string(4) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}}}},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_54\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4))) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"tp_real\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"gq_r1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_r2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_1d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"generated_quantities\"},{\"name\":\"gq_real_3d_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_row_vec\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_row_vec\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_ar_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(4) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(3) + "}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_simplex\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_1d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}},\"block\":\"generated_quantities\"},{\"name\":\"gq_3d_simplex\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(M) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string((N - 1)) + "}}}},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_54\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((4 * (4 - 1)) / 2) + 4) + ((5 - 4) * 4))) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "},\"block\":\"generated_quantities\"},{\"name\":\"gq_cfcov_33_ar\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(K) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((((3 * (3 - 1)) / 2) + 3) + ((3 - 3) * 3))) + "}},\"block\":\"generated_quantities\"},{\"name\":\"indices\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"int\"}},\"block\":\"generated_quantities\"},{\"name\":\"indexing_mat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res11\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res21\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res31\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(3) + ",\"cols\":" + std::to_string(3) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(4) + "}},\"block\":\"generated_quantities\"},{\"name\":\"idx_res5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"generated_quantities\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } -struct f12_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f12(y_slice, start + 1, end + 1, pstream__); -} -}; + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } -struct f12_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const -{ -return f12(y_slice, start, end, pstream__); -} -}; + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } -template -stan::promote_args_t -g1(const std::vector& y_slice, const int& start, const int& end, - const T3__& a, std::ostream* pstream__) ; -struct g1_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const -{ -return g1(y_slice, start + 1, end + 1, a, pstream__); -} + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + }; +} +using stan_model = mother_model_namespace::mother_model; +#ifndef USING_R -struct g1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const -{ -return g1(y_slice, start, end, a, pstream__); +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; } -}; -template -stan::promote_args_t> -g2(const std::vector& y_slice, const int& start, const int& end, - const T3__& a, std::ostream* pstream__) ; - -struct g2_rsfunctor__ { -template -stan::promote_args_t> -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const -{ -return g2(y_slice, start + 1, end + 1, a, pstream__); +stan::math::profile_map& get_stan_profile_data() { + return mother_model_namespace::profiles__; } -}; +#endif -struct g2_functor__ { -template -stan::promote_args_t> -operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const -{ -return g2(y_slice, start, end, a, pstream__); -} -}; -template -stan::promote_args_t> -g3(const std::vector& y_slice, const int& start, const int& end, - const T3__& a, std::ostream* pstream__) ; +STAN_REGISTER_MAP_RECT(1, mother_model_namespace::binomialf_functor__) +Warning in 'mother.stan', line 63, column 4: increment_log_prob(...); is deprecated and will be removed in the future. Use target += ...; instead. +Warning in 'mother.stan', line 187, column 15: get_lp() function is deprecated. It will be removed in a future release. Use target() instead. +Warning in 'mother.stan', line 63, column 23: normal_log is deprecated and will be removed in the future. Use normal_lpdf instead. +Warning in 'mother.stan', line 187, column 15: The no-argument function `get_lp()` is deprecated. Use the no-argument function `target()` instead. + $ ../../../../../install/default/bin/stanc --print-cpp motherHOF.stan -struct g3_rsfunctor__ { -template -stan::promote_args_t> -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const -{ -return g3(y_slice, start + 1, end + 1, a, pstream__); -} -}; +// Code generated by %%NAME%% %%VERSION%% +#include +namespace motherHOF_model_namespace { +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; -struct g3_functor__ { -template -stan::promote_args_t> -operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const -{ -return g3(y_slice, start, end, a, pstream__); -} -}; -template -stan::promote_args_t> -g4(const std::vector& y_slice, const int& start, const int& end, - const T3__& a, std::ostream* pstream__) ; +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'motherHOF.stan', line 52, column 2 to column 15)", + " (in 'motherHOF.stan', line 53, column 2 to column 18)", + " (in 'motherHOF.stan', line 54, column 2 to column 14)", + " (in 'motherHOF.stan', line 55, column 2 to column 18)", + " (in 'motherHOF.stan', line 56, column 2 to column 28)", + " (in 'motherHOF.stan', line 57, column 2 to column 28)", + " (in 'motherHOF.stan', line 58, column 2 to column 11)", + " (in 'motherHOF.stan', line 61, column 2 to column 18)", + " (in 'motherHOF.stan', line 62, column 2 to column 37)", + " (in 'motherHOF.stan', line 63, column 2 to column 33)", + " (in 'motherHOF.stan', line 64, column 2 to line 65, column 69)", + " (in 'motherHOF.stan', line 66, column 2 to line 67, column 69)", + " (in 'motherHOF.stan', line 68, column 2 to line 69, column 69)", + " (in 'motherHOF.stan', line 70, column 2 to column 23)", + " (in 'motherHOF.stan', line 71, column 2 to column 16)", + " (in 'motherHOF.stan', line 72, column 2 to column 16)", + " (in 'motherHOF.stan', line 73, column 2 to column 16)", + " (in 'motherHOF.stan', line 74, column 2 to column 70)", + " (in 'motherHOF.stan', line 75, column 2 to column 86)", + " (in 'motherHOF.stan', line 76, column 2 to column 86)", + " (in 'motherHOF.stan', line 77, column 2 to column 72)", + " (in 'motherHOF.stan', line 79, column 2 to column 88)", + " (in 'motherHOF.stan', line 80, column 2 to column 72)", + " (in 'motherHOF.stan', line 81, column 2 to column 88)", + " (in 'motherHOF.stan', line 83, column 2 to column 77)", + " (in 'motherHOF.stan', line 84, column 2 to column 93)", + " (in 'motherHOF.stan', line 85, column 2 to column 93)", + " (in 'motherHOF.stan', line 86, column 2 to column 79)", + " (in 'motherHOF.stan', line 88, column 2 to column 95)", + " (in 'motherHOF.stan', line 89, column 2 to column 79)", + " (in 'motherHOF.stan', line 90, column 2 to column 95)", + " (in 'motherHOF.stan', line 145, column 2 to column 18)", + " (in 'motherHOF.stan', line 146, column 2 to column 68)", + " (in 'motherHOF.stan', line 147, column 2 to column 68)", + " (in 'motherHOF.stan', line 148, column 2 to column 68)", + " (in 'motherHOF.stan', line 149, column 2 to column 68)", + " (in 'motherHOF.stan', line 151, column 2 to column 87)", + " (in 'motherHOF.stan', line 152, column 2 to column 87)", + " (in 'motherHOF.stan', line 153, column 2 to column 87)", + " (in 'motherHOF.stan', line 154, column 2 to column 87)", + " (in 'motherHOF.stan', line 156, column 2 to column 66)", + " (in 'motherHOF.stan', line 157, column 2 to column 66)", + " (in 'motherHOF.stan', line 158, column 2 to column 66)", + " (in 'motherHOF.stan', line 159, column 2 to column 66)", + " (in 'motherHOF.stan', line 161, column 2 to column 85)", + " (in 'motherHOF.stan', line 162, column 2 to column 85)", + " (in 'motherHOF.stan', line 163, column 2 to column 85)", + " (in 'motherHOF.stan', line 164, column 2 to column 85)", + " (in 'motherHOF.stan', line 166, column 2 to column 67)", + " (in 'motherHOF.stan', line 167, column 2 to column 67)", + " (in 'motherHOF.stan', line 168, column 2 to column 67)", + " (in 'motherHOF.stan', line 169, column 2 to column 67)", + " (in 'motherHOF.stan', line 171, column 2 to column 61)", + " (in 'motherHOF.stan', line 172, column 2 to column 58)", + " (in 'motherHOF.stan', line 173, column 2 to column 58)", + " (in 'motherHOF.stan', line 174, column 2 to column 60)", + " (in 'motherHOF.stan', line 176, column 2 to column 67)", + " (in 'motherHOF.stan', line 177, column 2 to column 64)", + " (in 'motherHOF.stan', line 178, column 2 to column 64)", + " (in 'motherHOF.stan', line 179, column 2 to column 66)", + " (in 'motherHOF.stan', line 181, column 2 to column 34)", + " (in 'motherHOF.stan', line 182, column 2 to column 38)", + " (in 'motherHOF.stan', line 183, column 2 to line 185, column 71)", + " (in 'motherHOF.stan', line 187, column 2 to line 188, column 69)", + " (in 'motherHOF.stan', line 190, column 2 to column 22)", + " (in 'motherHOF.stan', line 191, column 2 to column 69)", + " (in 'motherHOF.stan', line 192, column 2 to column 85)", + " (in 'motherHOF.stan', line 193, column 2 to column 85)", + " (in 'motherHOF.stan', line 194, column 2 to column 71)", + " (in 'motherHOF.stan', line 196, column 2 to column 87)", + " (in 'motherHOF.stan', line 197, column 2 to column 71)", + " (in 'motherHOF.stan', line 198, column 2 to column 87)", + " (in 'motherHOF.stan', line 200, column 2 to column 76)", + " (in 'motherHOF.stan', line 201, column 2 to column 92)", + " (in 'motherHOF.stan', line 202, column 2 to column 92)", + " (in 'motherHOF.stan', line 203, column 2 to column 78)", + " (in 'motherHOF.stan', line 205, column 2 to column 94)", + " (in 'motherHOF.stan', line 206, column 2 to column 78)", + " (in 'motherHOF.stan', line 207, column 2 to column 94)", + " (in 'motherHOF.stan', line 94, column 13 to column 14)", + " (in 'motherHOF.stan', line 94, column 2 to column 18)", + " (in 'motherHOF.stan', line 95, column 2 to column 68)", + " (in 'motherHOF.stan', line 96, column 2 to column 68)", + " (in 'motherHOF.stan', line 97, column 2 to column 68)", + " (in 'motherHOF.stan', line 99, column 2 to column 87)", + " (in 'motherHOF.stan', line 100, column 2 to column 87)", + " (in 'motherHOF.stan', line 101, column 2 to column 87)", + " (in 'motherHOF.stan', line 103, column 2 to column 66)", + " (in 'motherHOF.stan', line 104, column 2 to column 66)", + " (in 'motherHOF.stan', line 105, column 2 to column 66)", + " (in 'motherHOF.stan', line 106, column 2 to column 66)", + " (in 'motherHOF.stan', line 108, column 2 to column 85)", + " (in 'motherHOF.stan', line 109, column 2 to column 85)", + " (in 'motherHOF.stan', line 110, column 2 to column 85)", + " (in 'motherHOF.stan', line 111, column 2 to column 85)", + " (in 'motherHOF.stan', line 113, column 2 to column 67)", + " (in 'motherHOF.stan', line 114, column 2 to column 67)", + " (in 'motherHOF.stan', line 115, column 2 to column 67)", + " (in 'motherHOF.stan', line 116, column 2 to column 67)", + " (in 'motherHOF.stan', line 118, column 2 to column 61)", + " (in 'motherHOF.stan', line 119, column 2 to column 58)", + " (in 'motherHOF.stan', line 120, column 2 to column 58)", + " (in 'motherHOF.stan', line 121, column 2 to column 60)", + " (in 'motherHOF.stan', line 122, column 2 to column 56)", + " (in 'motherHOF.stan', line 123, column 2 to column 58)", + " (in 'motherHOF.stan', line 124, column 2 to column 58)", + " (in 'motherHOF.stan', line 125, column 2 to column 60)", + " (in 'motherHOF.stan', line 126, column 2 to column 62)", + " (in 'motherHOF.stan', line 127, column 2 to column 62)", + " (in 'motherHOF.stan', line 128, column 2 to column 64)", + " (in 'motherHOF.stan', line 130, column 2 to column 67)", + " (in 'motherHOF.stan', line 131, column 2 to column 64)", + " (in 'motherHOF.stan', line 132, column 2 to column 64)", + " (in 'motherHOF.stan', line 133, column 2 to column 66)", + " (in 'motherHOF.stan', line 134, column 2 to column 62)", + " (in 'motherHOF.stan', line 135, column 2 to column 64)", + " (in 'motherHOF.stan', line 136, column 2 to column 64)", + " (in 'motherHOF.stan', line 137, column 2 to column 66)", + " (in 'motherHOF.stan', line 138, column 2 to column 68)", + " (in 'motherHOF.stan', line 139, column 2 to column 68)", + " (in 'motherHOF.stan', line 140, column 2 to column 70)", + " (in 'motherHOF.stan', line 142, column 2 to column 36)", + " (in 'motherHOF.stan', line 37, column 2 to column 17)", + " (in 'motherHOF.stan', line 38, column 2 to column 15)", + " (in 'motherHOF.stan', line 39, column 2 to column 10)", + " (in 'motherHOF.stan', line 40, column 10 to column 11)", + " (in 'motherHOF.stan', line 40, column 2 to column 13)", + " (in 'motherHOF.stan', line 41, column 2 to column 18)", + " (in 'motherHOF.stan', line 42, column 2 to column 12)", + " (in 'motherHOF.stan', line 43, column 2 to column 15)", + " (in 'motherHOF.stan', line 44, column 2 to column 16)", + " (in 'motherHOF.stan', line 45, column 2 to column 15)", + " (in 'motherHOF.stan', line 46, column 2 to column 28)", + " (in 'motherHOF.stan', line 47, column 2 to column 28)", + " (in 'motherHOF.stan', line 48, column 2 to column 20)", + " (in 'motherHOF.stan', line 49, column 2 to column 19)", + " (in 'motherHOF.stan', line 53, column 15 to column 16)", + " (in 'motherHOF.stan', line 54, column 11 to column 12)", + " (in 'motherHOF.stan', line 145, column 13 to column 14)", + " (in 'motherHOF.stan', line 7, column 4 to column 17)", + " (in 'motherHOF.stan', line 8, column 4 to column 19)", + " (in 'motherHOF.stan', line 9, column 4 to column 38)", + " (in 'motherHOF.stan', line 10, column 4 to column 16)", + " (in 'motherHOF.stan', line 6, column 26 to line 11, column 3)", + " (in 'motherHOF.stan', line 13, column 4 to column 15)", + " (in 'motherHOF.stan', line 12, column 71 to line 14, column 3)", + " (in 'motherHOF.stan', line 17, column 4 to column 22)", + " (in 'motherHOF.stan', line 16, column 42 to line 18, column 3)", + " (in 'motherHOF.stan', line 21, column 4 to column 22)", + " (in 'motherHOF.stan', line 20, column 42 to line 22, column 3)", + " (in 'motherHOF.stan', line 24, column 4 to column 17)", + " (in 'motherHOF.stan', line 23, column 28 to line 25, column 3)", + " (in 'motherHOF.stan', line 30, column 4 to column 18)", + " (in 'motherHOF.stan', line 31, column 4 to column 25)", + " (in 'motherHOF.stan', line 32, column 4 to column 25)", + " (in 'motherHOF.stan', line 33, column 4 to column 15)", + " (in 'motherHOF.stan', line 29, column 39 to line 34, column 3)"}; -struct g4_rsfunctor__ { -template -stan::promote_args_t> -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +template +std::vector> +sho(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) ; + +struct sho_functor__ { +template +std::vector> +operator()(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) const { -return g4(y_slice, start + 1, end + 1, a, pstream__); +return sho(t, y, theta, x, x_int, pstream__); } }; +template +stan::promote_args_t +integrand(const T0__& x, const T1__& xc, const std::vector& theta, + const std::vector& x_r, const std::vector& x_i, + std::ostream* pstream__) ; -struct g4_functor__ { -template -stan::promote_args_t> -operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +struct integrand_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, const T1__& xc, const std::vector& theta, + const std::vector& x_r, const std::vector& x_i, + std::ostream* pstream__) const { -return g4(y_slice, start, end, a, pstream__); +return integrand(x, xc, theta, x_r, x_i, pstream__); } }; -template -stan::promote_args_t -g5(const std::vector& y_slice, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) ; +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +foo(const T0__& shared_params, const T1__& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) ; -struct g5_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +struct foo_functor__ { +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +operator()(const T0__& shared_params, const T1__& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) const { -return g5(y_slice, start + 1, end + 1, a, pstream__); +return foo(shared_params, job_params, data_r, data_i, pstream__); } }; +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +goo(const T0__& shared_params, const T1__& job_params, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) ; -struct g5_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, +struct goo_functor__ { +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +operator()(const T0__& shared_params, const T1__& job_params, + const std::vector& data_r, const std::vector& data_i, std::ostream* pstream__) const { -return g5(y_slice, start, end, a, pstream__); +return goo(shared_params, job_params, data_r, data_i, pstream__); } }; -template -stan::promote_args_t -g6(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; +template +stan::promote_args_t +map_rectfake(const T0__& x, std::ostream* pstream__) ; -struct g6_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const +struct map_rectfake_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const { -return g6(y_slice, start + 1, end + 1, a, pstream__); +return map_rectfake(x, pstream__); } }; +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +algebra_system(const T0__& x, const T1__& y, const std::vector& dat, + const std::vector& dat_int, std::ostream* pstream__) ; -struct g6_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const +struct algebra_system_functor__ { +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +operator()(const T0__& x, const T1__& y, const std::vector& dat, + const std::vector& dat_int, std::ostream* pstream__) const { -return g6(y_slice, start, end, a, pstream__); +return algebra_system(x, y, dat, dat_int, pstream__); } }; -template -stan::promote_args_t -g7(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; - -struct g7_rsfunctor__ { -template -stan::promote_args_t +std::vector> +sho(const T0__& t, const std::vector& y, + const std::vector& theta, const std::vector& x, + const std::vector& x_int, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + std::vector dydt; + dydt = std::vector(2, DUMMY_VAR__); + + current_statement__ = 141; + assign(dydt, rvalue(y, "y", index_uni(2)), + "assigning variable dydt", index_uni(1)); + current_statement__ = 142; + assign(dydt, + (-rvalue(y, "y", index_uni(1)) - + (rvalue(theta, "theta", index_uni(1)) * rvalue(y, "y", index_uni(2)))), + "assigning variable dydt", index_uni(2)); + current_statement__ = 143; + return dydt; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const -{ -return g7(y_slice, start + 1, end + 1, a, pstream__); +integrand(const T0__& x, const T1__& xc, const std::vector& theta, + const std::vector& x_r, const std::vector& x_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 145; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } -}; +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t, + T2__>; + int current_statement__ = 0; + const auto& shared_params = to_ref(shared_params_arg__); + const auto& job_params = to_ref(job_params_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 147; + return (Eigen::Matrix(3) << 1, 2, 3).finished(); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, + const std::vector& data_r, const std::vector& data_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t, + T2__>; + int current_statement__ = 0; + const auto& shared_params = to_ref(shared_params_arg__); + const auto& job_params = to_ref(job_params_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 149; + return (Eigen::Matrix(3) << 4, 5, 6).finished(); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +map_rectfake(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 151; + return (2 * x); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +Eigen::Matrix, stan::value_type_t, +T2__>, -1, 1> +algebra_system(const T0__& x_arg__, const T1__& y_arg__, + const std::vector& dat, const std::vector& dat_int, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t, + T2__>; + int current_statement__ = 0; + const auto& x = to_ref(x_arg__); + const auto& y = to_ref(y_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + Eigen::Matrix f_x; + f_x = Eigen::Matrix(2); + stan::math::fill(f_x, DUMMY_VAR__); + + current_statement__ = 154; + assign(f_x, + (rvalue(x, "x", index_uni(1)) - rvalue(y, "y", index_uni(1))), + "assigning variable f_x", index_uni(1)); + current_statement__ = 155; + assign(f_x, + (rvalue(x, "x", index_uni(2)) - rvalue(y, "y", index_uni(2))), + "assigning variable f_x", index_uni(2)); + current_statement__ = 156; + return f_x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class motherHOF_model final : public model_base_crtp { + private: + int T; + std::vector y0_d; + double t0; + std::vector ts; + std::vector theta_d; + std::vector x; + std::vector x_int; + std::vector x_d_r; + std::vector x_d_i; + Eigen::Matrix shared_params_d__; + std::vector> job_params_d; + std::vector> data_r; + std::vector> data_i; + Eigen::Map> shared_params_d{nullptr, 0}; + + public: + ~motherHOF_model() { } + + inline std::string model_name() const final { return "motherHOF_model"; } -struct g7_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const -{ -return g7(y_slice, start, end, a, pstream__); -} -}; + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + motherHOF_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "motherHOF_model_namespace::motherHOF_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 123; + context__.validate_dims("data initialization","T","int", + std::vector{}); + T = std::numeric_limits::min(); + + current_statement__ = 123; + T = context__.vals_i("T")[(1 - 1)]; + current_statement__ = 123; + check_greater_or_equal(function__, "T", T, 1); + current_statement__ = 124; + context__.validate_dims("data initialization","y0_d","double", + std::vector{static_cast(2)}); + y0_d = std::vector(2, std::numeric_limits::quiet_NaN()); + + current_statement__ = 124; + y0_d = context__.vals_r("y0_d"); + current_statement__ = 125; + context__.validate_dims("data initialization","t0","double", + std::vector{}); + t0 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 125; + t0 = context__.vals_r("t0")[(1 - 1)]; + current_statement__ = 126; + validate_non_negative_index("ts", "T", T); + current_statement__ = 127; + context__.validate_dims("data initialization","ts","double", + std::vector{static_cast(T)}); + ts = std::vector(T, std::numeric_limits::quiet_NaN()); + + current_statement__ = 127; + ts = context__.vals_r("ts"); + current_statement__ = 128; + context__.validate_dims("data initialization","theta_d","double", + std::vector{static_cast(1)}); + theta_d = std::vector(1, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 128; + theta_d = context__.vals_r("theta_d"); + current_statement__ = 129; + context__.validate_dims("data initialization","x","double", + std::vector{static_cast(0)}); + x = std::vector(0, std::numeric_limits::quiet_NaN()); + + current_statement__ = 129; + x = context__.vals_r("x"); + current_statement__ = 130; + context__.validate_dims("data initialization","x_int","int", + std::vector{static_cast(0)}); + x_int = std::vector(0, std::numeric_limits::min()); + + current_statement__ = 130; + x_int = context__.vals_i("x_int"); + current_statement__ = 131; + context__.validate_dims("data initialization","x_d_r","double", + std::vector{static_cast(0)}); + x_d_r = std::vector(0, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 131; + x_d_r = context__.vals_r("x_d_r"); + current_statement__ = 132; + context__.validate_dims("data initialization","x_d_i","int", + std::vector{static_cast(0)}); + x_d_i = std::vector(0, std::numeric_limits::min()); + + current_statement__ = 132; + x_d_i = context__.vals_i("x_d_i"); + current_statement__ = 133; + context__.validate_dims("data initialization","shared_params_d", + "double", std::vector{static_cast(3)}); + shared_params_d__ = Eigen::Matrix(3); + new (&shared_params_d) Eigen::Map>(shared_params_d__.data(), 3); + + + { + std::vector shared_params_d_flat__; + current_statement__ = 133; + shared_params_d_flat__ = context__.vals_r("shared_params_d"); + current_statement__ = 133; + pos__ = 1; + current_statement__ = 133; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 133; + assign(shared_params_d, shared_params_d_flat__[(pos__ - 1)], + "assigning variable shared_params_d", index_uni(sym1__)); + current_statement__ = 133; + pos__ = (pos__ + 1); + } + } + current_statement__ = 134; + context__.validate_dims("data initialization","job_params_d","double", + std::vector{static_cast(3), + static_cast(3)}); + job_params_d = std::vector>(3, Eigen::Matrix(3)); + + + { + std::vector job_params_d_flat__; + current_statement__ = 134; + job_params_d_flat__ = context__.vals_r("job_params_d"); + current_statement__ = 134; + pos__ = 1; + current_statement__ = 134; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 134; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 134; + assign(job_params_d, job_params_d_flat__[(pos__ - 1)], + "assigning variable job_params_d", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 134; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 135; + context__.validate_dims("data initialization","data_r","double", + std::vector{static_cast(3), + static_cast(3)}); + data_r = std::vector>(3, std::vector(3, std::numeric_limits::quiet_NaN())); + + + { + std::vector data_r_flat__; + current_statement__ = 135; + data_r_flat__ = context__.vals_r("data_r"); + current_statement__ = 135; + pos__ = 1; + current_statement__ = 135; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 135; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 135; + assign(data_r, data_r_flat__[(pos__ - 1)], + "assigning variable data_r", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 135; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 136; + context__.validate_dims("data initialization","data_i","int", + std::vector{static_cast(3), + static_cast(3)}); + data_i = std::vector>(3, std::vector(3, std::numeric_limits::min())); + + + { + std::vector data_i_flat__; + current_statement__ = 136; + data_i_flat__ = context__.vals_i("data_i"); + current_statement__ = 136; + pos__ = 1; + current_statement__ = 136; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 136; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 136; + assign(data_i, data_i_flat__[(pos__ - 1)], + "assigning variable data_i", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 136; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 137; + validate_non_negative_index("theta_p", "1", 1); + current_statement__ = 138; + validate_non_negative_index("x_p", "1", 1); + current_statement__ = 139; + validate_non_negative_index("y_hat", "T", T); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 2 + 1 + 1 + 2 + 3 + (3 * 3) + 1; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "motherHOF_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + std::vector y0_p; + y0_p = std::vector(2, DUMMY_VAR__); + + current_statement__ = 1; + y0_p = in__.template read>(2); + std::vector theta_p; + theta_p = std::vector(1, DUMMY_VAR__); + + current_statement__ = 2; + theta_p = in__.template read>(1); + std::vector x_p; + x_p = std::vector(1, DUMMY_VAR__); + + current_statement__ = 3; + x_p = in__.template read>(1); + Eigen::Matrix x_p_v; + x_p_v = Eigen::Matrix(2); + stan::math::fill(x_p_v, DUMMY_VAR__); + + current_statement__ = 4; + x_p_v = in__.template read>(2); + Eigen::Matrix shared_params_p; + shared_params_p = Eigen::Matrix(3); + stan::math::fill(shared_params_p, DUMMY_VAR__); + + current_statement__ = 5; + shared_params_p = in__.template read>( + 3); + std::vector> job_params_p; + job_params_p = std::vector>(3, Eigen::Matrix(3)); + stan::math::fill(job_params_p, DUMMY_VAR__); + + current_statement__ = 6; + job_params_p = in__.template read>>( + 3, 3); + local_scalar_t__ x_r; + x_r = DUMMY_VAR__; + + current_statement__ = 7; + x_r = in__.template read(); + local_scalar_t__ abc1_p; + abc1_p = DUMMY_VAR__; + + current_statement__ = 8; + abc1_p = 3; + local_scalar_t__ abc2_p; + abc2_p = DUMMY_VAR__; + + current_statement__ = 9; + abc2_p = map_rectfake(abc1_p, pstream__); + local_scalar_t__ abc3_p; + abc3_p = DUMMY_VAR__; + + current_statement__ = 10; + abc3_p = map_rectfake(12, pstream__); + Eigen::Matrix y_hat_tp1; + y_hat_tp1 = Eigen::Matrix(3); + stan::math::fill(y_hat_tp1, DUMMY_VAR__); + + current_statement__ = 11; + assign(y_hat_tp1, + map_rect<1, foo_functor__>(shared_params_p, job_params_d, data_r, + data_i, pstream__), "assigning variable y_hat_tp1"); + Eigen::Matrix y_hat_tp2; + y_hat_tp2 = Eigen::Matrix(3); + stan::math::fill(y_hat_tp2, DUMMY_VAR__); + + current_statement__ = 12; + assign(y_hat_tp2, + map_rect<2, foo_functor__>(shared_params_d, job_params_p, data_r, + data_i, pstream__), "assigning variable y_hat_tp2"); + Eigen::Matrix y_hat_tp3; + y_hat_tp3 = Eigen::Matrix(3); + stan::math::fill(y_hat_tp3, DUMMY_VAR__); + + current_statement__ = 13; + assign(y_hat_tp3, + map_rect<3, foo_functor__>(shared_params_p, job_params_d, data_r, + data_i, pstream__), "assigning variable y_hat_tp3"); + Eigen::Matrix theta_p_as; + theta_p_as = Eigen::Matrix(2); + stan::math::fill(theta_p_as, DUMMY_VAR__); + + Eigen::Matrix x_v; + x_v = Eigen::Matrix(2); + stan::math::fill(x_v, DUMMY_VAR__); + + Eigen::Matrix y_v; + y_v = Eigen::Matrix(2); + stan::math::fill(y_v, DUMMY_VAR__); + + Eigen::Matrix y_p; + y_p = Eigen::Matrix(2); + stan::math::fill(y_p, DUMMY_VAR__); + + current_statement__ = 18; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, + pstream__), "assigning variable theta_p_as"); + current_statement__ = 19; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 20; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_v, y_p, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 21; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, + pstream__), "assigning variable theta_p_as"); + current_statement__ = 22; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 23; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, + pstream__), "assigning variable theta_p_as"); + current_statement__ = 24; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 25; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, + x_d_i, pstream__), "assigning variable theta_p_as"); + current_statement__ = 26; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 27; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_v, y_p, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 28; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, + x_d_i, pstream__), "assigning variable theta_p_as"); + current_statement__ = 29; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 30; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, + x_d_i, pstream__), "assigning variable theta_p_as"); + current_statement__ = 31; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + { + current_statement__ = 80; + validate_non_negative_index("y_hat", "T", T); + std::vector> y_hat; + y_hat = std::vector>(T, std::vector(2, DUMMY_VAR__)); + + + current_statement__ = 82; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, + x_int, pstream__), "assigning variable y_hat"); + current_statement__ = 83; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, + x_int, pstream__), "assigning variable y_hat"); + current_statement__ = 84; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, + x_int, pstream__), "assigning variable y_hat"); + current_statement__ = 85; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, + x_int, pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 86; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, + x_int, pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 87; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, + x_int, pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 88; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 89; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 90; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 91; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 92; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 93; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 94; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 95; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 96; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_d, x, + x_int, pstream__), "assigning variable y_hat"); + current_statement__ = 97; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_p, x, + x_int, pstream__), "assigning variable y_hat"); + current_statement__ = 98; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_d, x, + x_int, pstream__), "assigning variable y_hat"); + current_statement__ = 99; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_p, x, + x_int, pstream__), "assigning variable y_hat"); + local_scalar_t__ y_1d; + y_1d = DUMMY_VAR__; + + current_statement__ = 100; + y_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 101; + y_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 102; + y_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 103; + y_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 104; + y_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 105; + y_1d = integrate_1d(integrand_functor__(), x_r, 1, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 106; + y_1d = integrate_1d(integrand_functor__(), 0, x_r, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 107; + y_1d = integrate_1d(integrand_functor__(), x_r, x_r, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 108; + y_1d = integrate_1d(integrand_functor__(), x_r, 1, x_d_r, x_d_r, + x_d_i, pstream__); + current_statement__ = 109; + y_1d = integrate_1d(integrand_functor__(), 0, x_r, x_d_r, x_d_r, + x_d_i, pstream__); + current_statement__ = 110; + y_1d = integrate_1d(integrand_functor__(), x_r, x_r, x_d_r, x_d_r, + x_d_i, pstream__); + local_scalar_t__ z_1d; + z_1d = DUMMY_VAR__; + + current_statement__ = 111; + z_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 112; + z_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 113; + z_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 114; + z_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 115; + z_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 116; + z_1d = integrate_1d(integrand_functor__(), x_r, 1, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 117; + z_1d = integrate_1d(integrand_functor__(), 0, x_r, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 118; + z_1d = integrate_1d(integrand_functor__(), x_r, x_r, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 119; + z_1d = integrate_1d(integrand_functor__(), x_r, 1, x_d_r, x_d_r, + x_d_i, pstream__, 1e-8); + current_statement__ = 120; + z_1d = integrate_1d(integrand_functor__(), 0, x_r, x_d_r, x_d_r, + x_d_i, pstream__, 1e-8); + current_statement__ = 121; + z_1d = integrate_1d(integrand_functor__(), x_r, x_r, x_d_r, x_d_r, + x_d_i, pstream__, 1e-8); + local_scalar_t__ abc_m; + abc_m = DUMMY_VAR__; + + current_statement__ = 122; + abc_m = map_rectfake(abc1_p, pstream__); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "motherHOF_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + std::vector y0_p; + y0_p = std::vector(2, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + y0_p = in__.template read>(2); + std::vector theta_p; + theta_p = std::vector(1, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 2; + theta_p = in__.template read>(1); + std::vector x_p; + x_p = std::vector(1, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + x_p = in__.template read>(1); + Eigen::Matrix x_p_v; + x_p_v = Eigen::Matrix(2); + stan::math::fill(x_p_v, std::numeric_limits::quiet_NaN()); + + current_statement__ = 4; + x_p_v = in__.template read>(2); + Eigen::Matrix shared_params_p; + shared_params_p = Eigen::Matrix(3); + stan::math::fill(shared_params_p, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 5; + shared_params_p = in__.template read>( + 3); + std::vector> job_params_p; + job_params_p = std::vector>(3, Eigen::Matrix(3)); + stan::math::fill(job_params_p, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 6; + job_params_p = in__.template read>>( + 3, 3); + double x_r; + x_r = std::numeric_limits::quiet_NaN(); + + current_statement__ = 7; + x_r = in__.template read(); + double abc1_p; + abc1_p = std::numeric_limits::quiet_NaN(); + + double abc2_p; + abc2_p = std::numeric_limits::quiet_NaN(); + + double abc3_p; + abc3_p = std::numeric_limits::quiet_NaN(); + + Eigen::Matrix y_hat_tp1; + y_hat_tp1 = Eigen::Matrix(3); + stan::math::fill(y_hat_tp1, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix y_hat_tp2; + y_hat_tp2 = Eigen::Matrix(3); + stan::math::fill(y_hat_tp2, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix y_hat_tp3; + y_hat_tp3 = Eigen::Matrix(3); + stan::math::fill(y_hat_tp3, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix theta_p_as; + theta_p_as = Eigen::Matrix(2); + stan::math::fill(theta_p_as, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix x_v; + x_v = Eigen::Matrix(2); + stan::math::fill(x_v, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix y_v; + y_v = Eigen::Matrix(2); + stan::math::fill(y_v, std::numeric_limits::quiet_NaN()); + + Eigen::Matrix y_p; + y_p = Eigen::Matrix(2); + stan::math::fill(y_p, std::numeric_limits::quiet_NaN()); + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(y0_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + vars__.emplace_back(theta_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + vars__.emplace_back(x_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(x_p_v[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(shared_params_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back(job_params_p[(sym2__ - 1)][(sym1__ - 1)]); + } + } + vars__.emplace_back(x_r); + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 8; + abc1_p = 3; + current_statement__ = 9; + abc2_p = map_rectfake(abc1_p, pstream__); + current_statement__ = 10; + abc3_p = map_rectfake(12, pstream__); + current_statement__ = 11; + assign(y_hat_tp1, + map_rect<4, foo_functor__>(shared_params_p, job_params_d, data_r, + data_i, pstream__), "assigning variable y_hat_tp1"); + current_statement__ = 12; + assign(y_hat_tp2, + map_rect<5, foo_functor__>(shared_params_d, job_params_p, data_r, + data_i, pstream__), "assigning variable y_hat_tp2"); + current_statement__ = 13; + assign(y_hat_tp3, + map_rect<6, foo_functor__>(shared_params_p, job_params_d, data_r, + data_i, pstream__), "assigning variable y_hat_tp3"); + current_statement__ = 18; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, + pstream__), "assigning variable theta_p_as"); + current_statement__ = 19; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 20; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_v, y_p, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 21; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, + pstream__), "assigning variable theta_p_as"); + current_statement__ = 22; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 23; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, + pstream__), "assigning variable theta_p_as"); + current_statement__ = 24; + assign(theta_p_as, + algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 25; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, + x_d_i, pstream__), "assigning variable theta_p_as"); + current_statement__ = 26; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 27; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_v, y_p, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 28; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, + x_d_i, pstream__), "assigning variable theta_p_as"); + current_statement__ = 29; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + current_statement__ = 30; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, + x_d_i, pstream__), "assigning variable theta_p_as"); + current_statement__ = 31; + assign(theta_p_as, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_p_as"); + if (emit_transformed_parameters__) { + vars__.emplace_back(abc1_p); + vars__.emplace_back(abc2_p); + vars__.emplace_back(abc3_p); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(y_hat_tp1[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(y_hat_tp2[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(y_hat_tp3[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(theta_p_as[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(x_v[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(y_v[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(y_p[(sym1__ - 1)]); + } + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + std::vector> y_hat; + y_hat = std::vector>(T, std::vector(2, std::numeric_limits::quiet_NaN())); + + + current_statement__ = 33; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 34; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 35; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 36; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 37; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 38; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 39; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 40; + assign(y_hat, + integrate_ode_adams(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 41; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 42; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 43; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 44; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 45; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 46; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 47; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 48; + assign(y_hat, + integrate_ode_bdf(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, + pstream__, 1e-10, 1e-10, 1e8), "assigning variable y_hat"); + current_statement__ = 49; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 50; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_d, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 51; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_d, x, x_int, + pstream__), "assigning variable y_hat"); + current_statement__ = 52; + assign(y_hat, + integrate_ode_rk45(sho_functor__(), y0_p, t0, ts, theta_p, x, x_int, + pstream__), "assigning variable y_hat"); + double y_1d; + y_1d = std::numeric_limits::quiet_NaN(); + + current_statement__ = 53; + y_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 54; + y_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 55; + y_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, + pstream__); + current_statement__ = 56; + y_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, + pstream__); + double z_1d; + z_1d = std::numeric_limits::quiet_NaN(); + + current_statement__ = 57; + z_1d = integrate_1d(integrand_functor__(), 0, 1, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 58; + z_1d = integrate_1d(integrand_functor__(), 0.0, 1, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 59; + z_1d = integrate_1d(integrand_functor__(), 0, 1.0, x, x_d_r, x_d_i, + pstream__, 1e-8); + current_statement__ = 60; + z_1d = integrate_1d(integrand_functor__(), 0.0, 1.0, x, x_d_r, x_d_i, + pstream__, 1e-8); + double abc1_gq; + abc1_gq = std::numeric_limits::quiet_NaN(); + + current_statement__ = 61; + abc1_gq = map_rectfake(12, pstream__); + double abc2_gq; + abc2_gq = std::numeric_limits::quiet_NaN(); + + current_statement__ = 62; + abc2_gq = map_rectfake(abc1_p, pstream__); + Eigen::Matrix y_hat_gq; + y_hat_gq = Eigen::Matrix(3); + stan::math::fill(y_hat_gq, std::numeric_limits::quiet_NaN()); + + current_statement__ = 63; + assign(y_hat_gq, + add( + map_rect<7, foo_functor__>(shared_params_d, job_params_d, data_r, + data_i, pstream__), + map_rect<8, goo_functor__>(shared_params_d, job_params_d, data_r, + data_i, pstream__)), "assigning variable y_hat_gq"); + Eigen::Matrix yy_hat_gq; + yy_hat_gq = Eigen::Matrix(3); + stan::math::fill(yy_hat_gq, std::numeric_limits::quiet_NaN()); + + current_statement__ = 64; + assign(yy_hat_gq, + map_rect<9, goo_functor__>(shared_params_d, job_params_d, data_r, + data_i, pstream__), "assigning variable yy_hat_gq"); + Eigen::Matrix theta_dbl; + theta_dbl = Eigen::Matrix(2); + stan::math::fill(theta_dbl, std::numeric_limits::quiet_NaN()); + + current_statement__ = 66; + assign(theta_dbl, + algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, + pstream__), "assigning variable theta_dbl"); + current_statement__ = 67; + assign(theta_dbl, + algebra_solver(algebra_system_functor__(), x_v, y_v, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + current_statement__ = 68; + assign(theta_dbl, + algebra_solver(algebra_system_functor__(), x_v, y_p, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + current_statement__ = 69; + assign(theta_dbl, + algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, + pstream__), "assigning variable theta_dbl"); + current_statement__ = 70; + assign(theta_dbl, + algebra_solver(algebra_system_functor__(), x_p_v, y_v, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + current_statement__ = 71; + assign(theta_dbl, + algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, + pstream__), "assigning variable theta_dbl"); + current_statement__ = 72; + assign(theta_dbl, + algebra_solver(algebra_system_functor__(), x_p_v, y_p, x_d_r, x_d_i, + pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + current_statement__ = 73; + assign(theta_dbl, + algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, + x_d_i, pstream__), "assigning variable theta_dbl"); + current_statement__ = 74; + assign(theta_dbl, + algebra_solver_newton(algebra_system_functor__(), x_v, y_v, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + current_statement__ = 75; + assign(theta_dbl, + algebra_solver_newton(algebra_system_functor__(), x_v, y_p, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + current_statement__ = 76; + assign(theta_dbl, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, + x_d_i, pstream__), "assigning variable theta_dbl"); + current_statement__ = 77; + assign(theta_dbl, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_v, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + current_statement__ = 78; + assign(theta_dbl, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, + x_d_i, pstream__), "assigning variable theta_dbl"); + current_statement__ = 79; + assign(theta_dbl, + algebra_solver_newton(algebra_system_functor__(), x_p_v, y_p, x_d_r, + x_d_i, pstream__, 0.01, 0.01, 10), "assigning variable theta_dbl"); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= T; ++sym2__) { + vars__.emplace_back(y_hat[(sym2__ - 1)][(sym1__ - 1)]); + } + } + vars__.emplace_back(y_1d); + vars__.emplace_back(z_1d); + vars__.emplace_back(abc1_gq); + vars__.emplace_back(abc2_gq); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(y_hat_gq[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(yy_hat_gq[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(theta_dbl[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + std::vector y0_p; + y0_p = std::vector(2, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + y0_p = context__.vals_r("y0_p"); + std::vector theta_p; + theta_p = std::vector(1, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 2; + theta_p = context__.vals_r("theta_p"); + std::vector x_p; + x_p = std::vector(1, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + x_p = context__.vals_r("x_p"); + Eigen::Matrix x_p_v; + x_p_v = Eigen::Matrix(2); + stan::math::fill(x_p_v, std::numeric_limits::quiet_NaN()); + + { + std::vector x_p_v_flat__; + current_statement__ = 4; + x_p_v_flat__ = context__.vals_r("x_p_v"); + current_statement__ = 4; + pos__ = 1; + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 4; + assign(x_p_v, x_p_v_flat__[(pos__ - 1)], + "assigning variable x_p_v", index_uni(sym1__)); + current_statement__ = 4; + pos__ = (pos__ + 1); + } + } + Eigen::Matrix shared_params_p; + shared_params_p = Eigen::Matrix(3); + stan::math::fill(shared_params_p, std::numeric_limits::quiet_NaN()); + + + { + std::vector shared_params_p_flat__; + current_statement__ = 5; + shared_params_p_flat__ = context__.vals_r("shared_params_p"); + current_statement__ = 5; + pos__ = 1; + current_statement__ = 5; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 5; + assign(shared_params_p, shared_params_p_flat__[(pos__ - 1)], + "assigning variable shared_params_p", index_uni(sym1__)); + current_statement__ = 5; + pos__ = (pos__ + 1); + } + } + std::vector> job_params_p; + job_params_p = std::vector>(3, Eigen::Matrix(3)); + stan::math::fill(job_params_p, std::numeric_limits::quiet_NaN()); + + + { + std::vector job_params_p_flat__; + current_statement__ = 6; + job_params_p_flat__ = context__.vals_r("job_params_p"); + current_statement__ = 6; + pos__ = 1; + current_statement__ = 6; + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + current_statement__ = 6; + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + current_statement__ = 6; + assign(job_params_p, job_params_p_flat__[(pos__ - 1)], + "assigning variable job_params_p", index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 6; + pos__ = (pos__ + 1); + } + } + } + double x_r; + x_r = std::numeric_limits::quiet_NaN(); + + current_statement__ = 7; + x_r = context__.vals_r("x_r")[(1 - 1)]; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(y0_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + vars__.emplace_back(theta_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + vars__.emplace_back(x_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(x_p_v[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + vars__.emplace_back(shared_params_p[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + vars__.emplace_back(job_params_p[(sym1__ - 1)][(sym2__ - 1)]); + } + } + vars__.emplace_back(x_r); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"y0_p", "theta_p", "x_p", "x_p_v", + "shared_params_p", "job_params_p", "x_r", "abc1_p", "abc2_p", "abc3_p", + "y_hat_tp1", "y_hat_tp2", "y_hat_tp3", "theta_p_as", "x_v", "y_v", + "y_p", "y_hat", "y_1d", "z_1d", "abc1_gq", "abc2_gq", "y_hat_gq", + "yy_hat_gq", "theta_dbl"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{ + static_cast(2) + }, + std::vector{static_cast(1)}, + std::vector{static_cast(1)}, + std::vector{static_cast(2)}, + std::vector{static_cast(3)}, + std::vector{static_cast(3), static_cast(3)}, + std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{static_cast(3)}, + std::vector{static_cast(3)}, + std::vector{static_cast(3)}, + std::vector{static_cast(2)}, + std::vector{static_cast(2)}, + std::vector{static_cast(2)}, + std::vector{static_cast(2)}, + std::vector{static_cast(T), static_cast(2)}, + std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{static_cast(3)}, + std::vector{static_cast(3)}, + std::vector{static_cast(2)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y0_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x_p_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "shared_params_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "job_params_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + param_names__.emplace_back(std::string() + "x_r"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "abc1_p"); + param_names__.emplace_back(std::string() + "abc2_p"); + param_names__.emplace_back(std::string() + "abc3_p"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_tp1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_tp2" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_tp3" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_p_as" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); + } + } + } + + if (emit_generated_quantities__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= T; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y_hat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + param_names__.emplace_back(std::string() + "y_1d"); + param_names__.emplace_back(std::string() + "z_1d"); + param_names__.emplace_back(std::string() + "abc1_gq"); + param_names__.emplace_back(std::string() + "abc2_gq"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_gq" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "yy_hat_gq" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_dbl" + '.' + std::to_string(sym1__)); + } + } + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y0_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x_p_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "shared_params_p" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 3; ++sym2__) { + { + param_names__.emplace_back(std::string() + "job_params_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + param_names__.emplace_back(std::string() + "x_r"); + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "abc1_p"); + param_names__.emplace_back(std::string() + "abc2_p"); + param_names__.emplace_back(std::string() + "abc3_p"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_tp1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_tp2" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_tp3" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_p_as" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_p" + '.' + std::to_string(sym1__)); + } + } + } + + if (emit_generated_quantities__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= T; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y_hat" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + param_names__.emplace_back(std::string() + "y_1d"); + param_names__.emplace_back(std::string() + "z_1d"); + param_names__.emplace_back(std::string() + "abc1_gq"); + param_names__.emplace_back(std::string() + "abc2_gq"); + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y_hat_gq" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 3; ++sym1__) { + { + param_names__.emplace_back(std::string() + "yy_hat_gq" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "theta_dbl" + '.' + std::to_string(sym1__)); + } + } + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"y0_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"shared_params_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"parameters\"},{\"name\":\"job_params_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "}},\"block\":\"parameters\"},{\"name\":\"x_r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"abc1_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc2_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc3_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp2\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp3\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p_as\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"x_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(T) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"generated_quantities\"},{\"name\":\"y_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"z_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc1_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc2_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"y_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"yy_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"theta_dbl\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"generated_quantities\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"y0_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"theta_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"x_p_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"shared_params_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"parameters\"},{\"name\":\"job_params_p\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(3) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "}},\"block\":\"parameters\"},{\"name\":\"x_r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"abc1_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc2_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"abc3_p\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp2\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat_tp3\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"transformed_parameters\"},{\"name\":\"theta_p_as\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"x_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"transformed_parameters\"},{\"name\":\"y_hat\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(T) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"generated_quantities\"},{\"name\":\"y_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"z_1d\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc1_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"abc2_gq\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"y_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"yy_hat_gq\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(3) + "},\"block\":\"generated_quantities\"},{\"name\":\"theta_dbl\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"generated_quantities\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } -template -stan::promote_args_t -g8(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } -struct g8_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const -{ -return g8(y_slice, start + 1, end + 1, a, pstream__); -} -}; + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } -struct g8_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const -{ -return g8(y_slice, start, end, a, pstream__); -} -}; -template -stan::promote_args_t -g9(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) ; + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } -struct g9_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>& a) const -{ -return g9(y_slice, start + 1, end + 1, a, pstream__); -} }; - - -struct g9_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector>& a, - std::ostream* pstream__) const -{ -return g9(y_slice, start, end, a, pstream__); } -}; +using stan_model = motherHOF_model_namespace::motherHOF_model; -template -stan::promote_args_t -g10(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) ; +#ifndef USING_R -struct g10_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>>& a) const -{ -return g10(y_slice, start + 1, end + 1, a, pstream__); +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; } -}; - -struct g10_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return g10(y_slice, start, end, a, pstream__); +stan::math::profile_map& get_stan_profile_data() { + return motherHOF_model_namespace::profiles__; } -}; - -template -stan::promote_args_t -g11(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) ; -struct g11_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>>& a) const -{ -return g11(y_slice, start + 1, end + 1, a, pstream__); -} -}; +#endif -struct g11_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return g11(y_slice, start, end, a, pstream__); -} -}; +STAN_REGISTER_MAP_RECT(1, motherHOF_model_namespace::foo_functor__) +STAN_REGISTER_MAP_RECT(2, motherHOF_model_namespace::foo_functor__) +STAN_REGISTER_MAP_RECT(3, motherHOF_model_namespace::foo_functor__) +STAN_REGISTER_MAP_RECT(4, motherHOF_model_namespace::foo_functor__) +STAN_REGISTER_MAP_RECT(5, motherHOF_model_namespace::foo_functor__) +STAN_REGISTER_MAP_RECT(6, motherHOF_model_namespace::foo_functor__) +STAN_REGISTER_MAP_RECT(7, motherHOF_model_namespace::foo_functor__) +STAN_REGISTER_MAP_RECT(8, motherHOF_model_namespace::goo_functor__) +STAN_REGISTER_MAP_RECT(9, motherHOF_model_namespace::goo_functor__) +Warning in 'motherHOF.stan', line 95, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 96, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 97, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 99, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 100, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 101, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 103, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 104, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 105, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 106, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 108, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 109, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 110, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 111, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 113, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 114, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 115, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 116, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 146, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 147, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 148, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 149, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 151, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 152, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 153, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 154, column 10: integrate_ode_adams is deprecated and will be removed in the future. Use ode_adams instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 156, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 157, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 158, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 159, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 161, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 162, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 163, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 164, column 10: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 166, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 167, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 168, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html +Warning in 'motherHOF.stan', line 169, column 10: integrate_ode_rk45 is deprecated and will be removed in the future. Use ode_rk45 instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html + $ ../../../../../install/default/bin/stanc --print-cpp new_integrate_interface.stan -template -stan::promote_args_t -g12(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) ; +// Code generated by %%NAME%% %%VERSION%% +#include +namespace new_integrate_interface_model_namespace { -struct g12_rsfunctor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector>>& a) const -{ -return g12(y_slice, start + 1, end + 1, a, pstream__); -} -}; +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; -struct g12_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, - const std::vector>>& a, - std::ostream* pstream__) const -{ -return g12(y_slice, start, end, a, pstream__); -} -}; +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'new_integrate_interface.stan', line 31, column 2 to column 9)", + " (in 'new_integrate_interface.stan', line 32, column 2 to column 13)", + " (in 'new_integrate_interface.stan', line 33, column 2 to column 14)", + " (in 'new_integrate_interface.stan', line 37, column 2 to column 72)", + " (in 'new_integrate_interface.stan', line 39, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 40, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 41, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 42, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 43, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 44, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 45, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 46, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 47, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 48, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 49, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 50, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 51, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 52, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 53, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 54, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 55, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 56, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 57, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 58, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 59, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 60, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 61, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 62, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 63, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 64, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 65, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 66, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 67, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 68, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 69, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 70, column 2 to column 54)", + " (in 'new_integrate_interface.stan', line 71, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 72, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 73, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 74, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 75, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 76, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 77, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 78, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 79, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 80, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 81, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 82, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 83, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 84, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 85, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 86, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 87, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 88, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 89, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 90, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 91, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 92, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 93, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 94, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 95, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 96, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 97, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 98, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 99, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 100, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 101, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 102, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 103, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 104, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 105, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 106, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 107, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 108, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 109, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 110, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 111, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 112, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 113, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 114, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 115, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 116, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 117, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 118, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 119, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 120, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 121, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 122, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 123, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 124, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 125, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 126, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 127, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 128, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 129, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 130, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 131, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 132, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 133, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 134, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 135, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 136, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 137, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 138, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 139, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 140, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 141, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 142, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 143, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 144, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 145, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 146, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 147, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 148, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 149, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 150, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 151, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 152, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 153, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 154, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 155, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 156, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 157, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 158, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 159, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 160, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 161, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 162, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 163, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 164, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 165, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 166, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 167, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 168, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 169, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 170, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 171, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 172, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 173, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 174, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 175, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 176, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 177, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 178, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 179, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 180, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 181, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 182, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 183, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 184, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 185, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 186, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 187, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 188, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 189, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 190, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 191, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 192, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 193, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 194, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 195, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 196, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 197, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 198, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 199, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 200, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 201, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 202, column 2 to column 33)", + " (in 'new_integrate_interface.stan', line 203, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 204, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 205, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 206, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 207, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 208, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 209, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 210, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 211, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 212, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 213, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 214, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 215, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 216, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 217, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 218, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 219, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 220, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 221, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 222, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 223, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 224, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 225, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 226, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 227, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 228, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 229, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 230, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 231, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 232, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 233, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 234, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 235, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 442, column 2 to column 73)", + " (in 'new_integrate_interface.stan', line 443, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 444, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 445, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 446, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 447, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 448, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 449, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 450, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 451, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 452, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 453, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 454, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 455, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 456, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 457, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 458, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 459, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 460, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 461, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 462, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 463, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 464, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 465, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 466, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 467, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 468, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 469, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 470, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 471, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 472, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 473, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 474, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 475, column 2 to column 62)", + " (in 'new_integrate_interface.stan', line 476, column 2 to column 62)", + " (in 'new_integrate_interface.stan', line 477, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 478, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 479, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 480, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 481, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 482, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 483, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 484, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 485, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 486, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 487, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 488, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 489, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 490, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 491, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 492, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 493, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 494, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 495, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 496, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 497, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 498, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 499, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 500, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 501, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 502, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 503, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 504, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 505, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 506, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 507, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 508, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 509, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 510, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 511, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 512, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 513, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 514, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 515, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 516, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 517, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 518, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 519, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 520, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 521, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 522, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 523, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 524, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 525, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 526, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 527, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 528, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 529, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 530, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 531, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 532, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 533, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 534, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 535, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 536, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 537, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 538, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 539, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 540, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 541, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 542, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 543, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 544, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 545, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 546, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 547, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 548, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 549, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 550, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 551, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 552, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 553, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 554, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 555, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 556, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 557, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 558, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 559, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 560, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 561, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 562, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 563, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 564, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 565, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 566, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 567, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 568, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 569, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 570, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 571, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 572, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 573, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 574, column 2 to column 41)", + " (in 'new_integrate_interface.stan', line 575, column 2 to column 41)", + " (in 'new_integrate_interface.stan', line 576, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 577, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 578, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 579, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 580, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 581, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 582, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 583, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 584, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 585, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 586, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 587, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 588, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 589, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 590, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 591, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 592, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 593, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 594, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 595, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 596, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 597, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 598, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 599, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 600, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 601, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 602, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 603, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 604, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 605, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 606, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 607, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 608, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 609, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 610, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 611, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 612, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 613, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 614, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 615, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 616, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 617, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 618, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 619, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 620, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 621, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 622, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 623, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 624, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 625, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 626, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 627, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 628, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 629, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 630, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 631, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 632, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 633, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 634, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 635, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 636, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 637, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 638, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 639, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 239, column 15 to column 16)", + " (in 'new_integrate_interface.stan', line 239, column 9 to column 10)", + " (in 'new_integrate_interface.stan', line 239, column 2 to column 73)", + " (in 'new_integrate_interface.stan', line 241, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 242, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 243, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 244, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 245, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 246, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 247, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 248, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 249, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 250, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 251, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 252, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 253, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 254, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 255, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 256, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 257, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 258, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 259, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 260, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 261, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 262, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 263, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 264, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 265, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 266, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 267, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 268, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 269, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 270, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 271, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 272, column 2 to column 55)", + " (in 'new_integrate_interface.stan', line 273, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 274, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 275, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 276, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 277, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 278, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 279, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 280, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 281, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 282, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 283, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 284, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 285, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 286, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 287, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 288, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 289, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 290, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 291, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 292, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 293, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 294, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 295, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 296, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 297, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 298, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 299, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 300, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 301, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 302, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 303, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 304, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 305, column 2 to column 56)", + " (in 'new_integrate_interface.stan', line 306, column 2 to column 62)", + " (in 'new_integrate_interface.stan', line 307, column 2 to column 62)", + " (in 'new_integrate_interface.stan', line 308, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 309, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 310, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 311, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 312, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 313, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 314, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 315, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 316, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 317, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 318, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 319, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 320, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 321, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 322, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 323, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 324, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 325, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 326, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 327, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 328, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 329, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 330, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 331, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 332, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 333, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 334, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 335, column 2 to column 59)", + " (in 'new_integrate_interface.stan', line 336, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 337, column 2 to column 58)", + " (in 'new_integrate_interface.stan', line 338, column 2 to column 57)", + " (in 'new_integrate_interface.stan', line 339, column 2 to column 41)", + " (in 'new_integrate_interface.stan', line 340, column 2 to column 41)", + " (in 'new_integrate_interface.stan', line 341, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 342, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 343, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 344, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 345, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 346, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 347, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 348, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 349, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 350, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 351, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 352, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 353, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 354, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 355, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 356, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 357, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 358, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 359, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 360, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 361, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 362, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 363, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 364, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 365, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 366, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 367, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 368, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 369, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 370, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 371, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 372, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 373, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 374, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 375, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 376, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 377, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 378, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 379, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 380, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 381, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 382, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 383, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 384, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 385, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 386, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 387, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 388, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 389, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 390, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 391, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 392, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 393, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 394, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 395, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 396, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 397, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 398, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 399, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 400, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 401, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 402, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 403, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 404, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 405, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 406, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 407, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 408, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 409, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 410, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 411, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 412, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 413, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 414, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 415, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 416, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 417, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 418, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 419, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 420, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 421, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 422, column 2 to column 38)", + " (in 'new_integrate_interface.stan', line 423, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 424, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 425, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 426, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 427, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 428, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 429, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 430, column 2 to column 37)", + " (in 'new_integrate_interface.stan', line 431, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 432, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 433, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 434, column 2 to column 36)", + " (in 'new_integrate_interface.stan', line 435, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 436, column 2 to column 35)", + " (in 'new_integrate_interface.stan', line 437, column 2 to column 34)", + " (in 'new_integrate_interface.stan', line 438, column 2 to column 19)", + " (in 'new_integrate_interface.stan', line 8, column 2 to column 8)", + " (in 'new_integrate_interface.stan', line 9, column 2 to column 9)", + " (in 'new_integrate_interface.stan', line 10, column 2 to column 10)", + " (in 'new_integrate_interface.stan', line 11, column 11 to column 12)", + " (in 'new_integrate_interface.stan', line 11, column 2 to column 14)", + " (in 'new_integrate_interface.stan', line 12, column 9 to column 10)", + " (in 'new_integrate_interface.stan', line 12, column 2 to column 15)", + " (in 'new_integrate_interface.stan', line 16, column 15 to column 16)", + " (in 'new_integrate_interface.stan', line 16, column 9 to column 10)", + " (in 'new_integrate_interface.stan', line 16, column 2 to column 73)", + " (in 'new_integrate_interface.stan', line 17, column 2 to column 60)", + " (in 'new_integrate_interface.stan', line 18, column 2 to column 62)", + " (in 'new_integrate_interface.stan', line 19, column 2 to column 62)", + " (in 'new_integrate_interface.stan', line 20, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 21, column 2 to column 61)", + " (in 'new_integrate_interface.stan', line 22, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 23, column 2 to column 39)", + " (in 'new_integrate_interface.stan', line 24, column 2 to column 41)", + " (in 'new_integrate_interface.stan', line 25, column 2 to column 41)", + " (in 'new_integrate_interface.stan', line 26, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 27, column 2 to column 40)", + " (in 'new_integrate_interface.stan', line 32, column 10 to column 11)", + " (in 'new_integrate_interface.stan', line 33, column 9 to column 10)", + " (in 'new_integrate_interface.stan', line 37, column 14 to column 15)", + " (in 'new_integrate_interface.stan', line 37, column 9 to column 10)", + " (in 'new_integrate_interface.stan', line 442, column 15 to column 16)", + " (in 'new_integrate_interface.stan', line 442, column 9 to column 10)", + " (in 'new_integrate_interface.stan', line 3, column 4 to column 13)", + " (in 'new_integrate_interface.stan', line 2, column 47 to line 4, column 3)"}; -template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t, stan::promote_args_t>> -s(const std::vector& y_slice, const int& start, const int& end, - const int& a, const T4__& b, const T5__& c, const T6__& d, const T7__& e, - const std::vector& f, const std::vector& g, - const std::vector>& h, - const std::vector>& i, - const std::vector>& j, - const std::vector>& k, - const std::vector>& l, - const std::vector>>& m, - const std::vector>>& n, - const std::vector>>& o, - const std::vector>>& p, - const std::vector>>& q, +template +Eigen::Matrix, T2__, +stan::value_type_t>, -1, 1> +f(const T0__& t, const T1__& z, const T2__& a, const T3__& b, std::ostream* pstream__) ; -struct s_rsfunctor__ { -template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t, stan::promote_args_t>> -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const int& a, - const T4__& b, const T5__& c, const T6__& d, const T7__& e, - const std::vector& f, const std::vector& g, - const std::vector>& h, - const std::vector>& i, - const std::vector>& j, - const std::vector>& k, - const std::vector>& l, - const std::vector>>& m, - const std::vector>>& n, - const std::vector>>& o, - const std::vector>>& p, - const std::vector>>& q) const -{ -return s(y_slice, start + 1, end + 1, a, b, c, d, e, f, g, h, i, j, k, l, m, - n, o, p, q, pstream__); -} -}; - - -struct s_functor__ { -template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t, stan::promote_args_t>> -operator()(const std::vector& y_slice, const int& start, - const int& end, const int& a, const T4__& b, const T5__& c, - const T6__& d, const T7__& e, const std::vector& f, - const std::vector& g, - const std::vector>& h, - const std::vector>& i, - const std::vector>& j, - const std::vector>& k, - const std::vector>& l, - const std::vector>>& m, - const std::vector>>& n, - const std::vector>>& o, - const std::vector>>& p, - const std::vector>>& q, +struct f_functor__ { +template +Eigen::Matrix, T2__, +stan::value_type_t>, -1, 1> +operator()(const T0__& t, const T1__& z, const T2__& a, const T3__& b, std::ostream* pstream__) const { -return s(y_slice, start, end, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, - q, pstream__); -} -}; - -double -r(std::ostream* pstream__) ; - -struct r_functor__ { -double -operator()(std::ostream* pstream__) const -{ -return r(pstream__); +return f(t, z, a, b, pstream__); } }; -template -stan::promote_args_t -f1(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 171; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f1a(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 173; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f2(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 175; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f3(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 177; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f4(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 179; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f5(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 181; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f6(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 183; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f7(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 185; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f8(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 187; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -double -f9(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 189; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -double -f10(const std::vector>& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = double; +template +Eigen::Matrix, T2__, +stan::value_type_t>, -1, 1> +f(const T0__& t, const T1__& z_arg__, const T2__& a, const T3__& b_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T2__, + stan::value_type_t>; int current_statement__ = 0; + const auto& z = to_ref(z_arg__); + const auto& b = to_ref(b_arg__); static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 191; - return 0.0; + current_statement__ = 628; + return z; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -30461,149 +14064,3872 @@ f10(const std::vector>& y_slice, const int& start, } } -double -f11(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 193; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } +class new_integrate_interface_model final : public model_base_crtp { + + private: + int N; + int id; + double rd; + std::vector rad; + Eigen::Matrix vd__; + std::vector> zd; + Eigen::Map> vd{nullptr, 0}; + + public: + ~new_integrate_interface_model() { } -} -template -stan::promote_args_t -f12(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 195; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + inline std::string model_name() const final { return "new_integrate_interface_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + new_integrate_interface_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "new_integrate_interface_model_namespace::new_integrate_interface_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 601; + context__.validate_dims("data initialization","N","int", + std::vector{}); + N = std::numeric_limits::min(); + + current_statement__ = 601; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 602; + context__.validate_dims("data initialization","id","int", + std::vector{}); + id = std::numeric_limits::min(); + + current_statement__ = 602; + id = context__.vals_i("id")[(1 - 1)]; + current_statement__ = 603; + context__.validate_dims("data initialization","rd","double", + std::vector{}); + rd = std::numeric_limits::quiet_NaN(); + + current_statement__ = 603; + rd = context__.vals_r("rd")[(1 - 1)]; + current_statement__ = 604; + validate_non_negative_index("rad", "N", N); + current_statement__ = 605; + context__.validate_dims("data initialization","rad","double", + std::vector{static_cast(N)}); + rad = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 605; + rad = context__.vals_r("rad"); + current_statement__ = 606; + validate_non_negative_index("vd", "N", N); + current_statement__ = 607; + context__.validate_dims("data initialization","vd","double", + std::vector{static_cast(N)}); + vd__ = Eigen::Matrix(N); + new (&vd) Eigen::Map>(vd__.data(), N); + + { + std::vector vd_flat__; + current_statement__ = 607; + vd_flat__ = context__.vals_r("vd"); + current_statement__ = 607; + pos__ = 1; + current_statement__ = 607; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 607; + assign(vd, vd_flat__[(pos__ - 1)], + "assigning variable vd", index_uni(sym1__)); + current_statement__ = 607; + pos__ = (pos__ + 1); + } + } + current_statement__ = 608; + validate_non_negative_index("zd", "N", N); + current_statement__ = 609; + validate_non_negative_index("zd", "N", N); + current_statement__ = 610; + zd = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(zd, std::numeric_limits::quiet_NaN()); + + current_statement__ = 610; + assign(zd, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zd"); + current_statement__ = 611; + assign(zd, + ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zd"); + current_statement__ = 612; + assign(zd, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zd"); + current_statement__ = 613; + assign(zd, + ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zd"); + current_statement__ = 614; + assign(zd, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zd"); + current_statement__ = 615; + assign(zd, + ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zd"); + current_statement__ = 616; + assign(zd, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable zd"); + current_statement__ = 617; + assign(zd, + ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable zd"); + current_statement__ = 618; + assign(zd, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable zd"); + current_statement__ = 619; + assign(zd, + ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable zd"); + current_statement__ = 620; + assign(zd, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable zd"); + current_statement__ = 621; + assign(zd, + ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable zd"); + current_statement__ = 622; + validate_non_negative_index("ra", "N", N); + current_statement__ = 623; + validate_non_negative_index("v", "N", N); + current_statement__ = 624; + validate_non_negative_index("z", "N", N); + current_statement__ = 625; + validate_non_negative_index("z", "N", N); + current_statement__ = 626; + validate_non_negative_index("zg", "N", N); + current_statement__ = 627; + validate_non_negative_index("zg", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1 + N + N; + } -} -template -stan::promote_args_t -g1(const std::vector& y_slice, const int& start, const int& end, - const T3__& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 197; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "new_integrate_interface_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + local_scalar_t__ r; + r = DUMMY_VAR__; + + current_statement__ = 1; + r = in__.template read(); + std::vector ra; + ra = std::vector(N, DUMMY_VAR__); + + current_statement__ = 2; + ra = in__.template read>(N); + Eigen::Matrix v; + v = Eigen::Matrix(N); + stan::math::fill(v, DUMMY_VAR__); + + current_statement__ = 3; + v = in__.template read>(N); + std::vector> z; + z = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(z, DUMMY_VAR__); + + current_statement__ = 4; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 5; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 6; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 7; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 8; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 9; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 10; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 11; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 12; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 13; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 14; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 15; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 16; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 17; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 18; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 19; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 20; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 21; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 22; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 23; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 24; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 25; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 26; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 27; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 28; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 29; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 30; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 31; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 32; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 33; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 34; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 35; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 36; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 37; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 38; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 39; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 40; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 41; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 42; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 43; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 44; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 45; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 46; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 47; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 48; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 49; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 50; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 51; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 52; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 53; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 54; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 55; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 56; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 57; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 58; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 59; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 60; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 61; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 62; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 63; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 64; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 65; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 66; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 67; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 68; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 69; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 70; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 71; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 72; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 73; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 74; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 75; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 76; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 77; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 78; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 79; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 80; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 81; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 82; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 83; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 84; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 85; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 86; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 87; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 88; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 89; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 90; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 91; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 92; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 93; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 94; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 95; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 96; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 97; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 98; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 99; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 100; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 101; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 102; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 103; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 104; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 105; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 106; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 107; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 108; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 109; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 110; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 111; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 112; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 113; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 114; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 115; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 116; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 117; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 118; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 119; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 120; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 121; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 122; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 123; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 124; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 125; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 126; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 127; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 128; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 129; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 130; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 131; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 132; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 133; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 134; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 135; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 136; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 137; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 138; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 139; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 140; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 141; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 142; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 143; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 144; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 145; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 146; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 147; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 148; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 149; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 150; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 151; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 152; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 153; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 154; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 155; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 156; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 157; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 158; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 159; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 160; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 161; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 162; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 163; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 164; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 165; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 166; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 167; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 168; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 169; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 170; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 171; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 172; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 173; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 174; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 175; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 176; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 177; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 178; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 179; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 180; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 181; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 182; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 183; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 184; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 185; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 186; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 187; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 188; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 189; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 190; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 191; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 192; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 193; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 194; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 195; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 196; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 197; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 198; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 199; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 200; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 201; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable z"); + { + current_statement__ = 400; + validate_non_negative_index("zm", "N", N); + current_statement__ = 401; + validate_non_negative_index("zm", "N", N); + std::vector> zm; + zm = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(zm, DUMMY_VAR__); + + current_statement__ = 402; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 403; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 404; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 405; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 406; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 407; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 408; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 409; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 410; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 411; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 412; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 413; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 414; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 415; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 416; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zm"); + current_statement__ = 417; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zm"); + current_statement__ = 418; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zm"); + current_statement__ = 419; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 420; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 421; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 422; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 423; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 424; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zm"); + current_statement__ = 425; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zm"); + current_statement__ = 426; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zm"); + current_statement__ = 427; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 428; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zm"); + current_statement__ = 429; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zm"); + current_statement__ = 430; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zm"); + current_statement__ = 431; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 432; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zm"); + current_statement__ = 433; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zm"); + current_statement__ = 434; + assign(zm, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zm"); + current_statement__ = 435; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 436; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 437; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 438; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 439; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 440; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 441; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 442; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 443; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 444; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 445; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 446; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 447; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 448; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 449; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 450; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 451; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 452; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 453; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 454; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 455; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 456; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 457; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 458; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 459; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 460; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 461; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 462; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 463; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 464; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 465; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zm"); + current_statement__ = 466; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zm"); + current_statement__ = 467; + assign(zm, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zm"); + current_statement__ = 468; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 469; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 470; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 471; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 472; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 473; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 474; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 475; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 476; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 477; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 478; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 479; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 480; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 481; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 482; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 483; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 484; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 485; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 486; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 487; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 488; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 489; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 490; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 491; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 492; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 493; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 494; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 495; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 496; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 497; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zm"); + current_statement__ = 498; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zm"); + current_statement__ = 499; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zm"); + current_statement__ = 500; + assign(zm, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zm"); + current_statement__ = 501; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, + vd), "assigning variable zm"); + current_statement__ = 502; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, + vd), "assigning variable zm"); + current_statement__ = 503; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, + v), "assigning variable zm"); + current_statement__ = 504; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, + vd), "assigning variable zm"); + current_statement__ = 505; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 506; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, + vd), "assigning variable zm"); + current_statement__ = 507; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 508; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 509; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 510; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, + vd), "assigning variable zm"); + current_statement__ = 511; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 512; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 513; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 514; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 515; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 516; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 517; + assign(zm, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 518; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, + vd), "assigning variable zm"); + current_statement__ = 519; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 520; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 521; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 522; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 523; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 524; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 525; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 526; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 527; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 528; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 529; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 530; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 531; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 532; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 533; + assign(zm, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 534; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, + vd), "assigning variable zm"); + current_statement__ = 535; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, + vd), "assigning variable zm"); + current_statement__ = 536; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 537; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 538; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 539; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 540; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 541; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 542; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 543; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 544; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 545; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 546; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 547; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 548; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 549; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 550; + assign(zm, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 551; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 552; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 553; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 554; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 555; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 556; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 557; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 558; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 559; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 560; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 561; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 562; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 563; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 564; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 565; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 566; + assign(zm, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 567; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 568; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 569; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 570; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 571; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 572; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 573; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 574; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 575; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 576; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 577; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 578; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 579; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 580; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 581; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 582; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 583; + assign(zm, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 584; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 585; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 586; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 587; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 588; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 589; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 590; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 591; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 592; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 593; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 594; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 595; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 596; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable zm"); + current_statement__ = 597; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable zm"); + current_statement__ = 598; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable zm"); + current_statement__ = 599; + assign(zm, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable zm"); + current_statement__ = 600; + lp_accum__.add(normal_lpdf(r, 0, 1)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "new_integrate_interface_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + double r; + r = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + r = in__.template read(); + std::vector ra; + ra = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + ra = in__.template read>(N); + Eigen::Matrix v; + v = Eigen::Matrix(N); + stan::math::fill(v, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + v = in__.template read>(N); + std::vector> z; + z = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(z, std::numeric_limits::quiet_NaN()); + + vars__.emplace_back(r); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(ra[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(v[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 4; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 5; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 6; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 7; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 8; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 9; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 10; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 11; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 12; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 13; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 14; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 15; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 16; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 17; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 18; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 19; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 20; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 21; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 22; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 23; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 24; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 25; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 26; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 27; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 28; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 29; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 30; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 31; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 32; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 33; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 34; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 35; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 36; + assign(z, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 37; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 38; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 39; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 40; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 41; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 42; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 43; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 44; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 45; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 46; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 47; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 48; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 49; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 50; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 51; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 52; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 53; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 54; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 55; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 56; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 57; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 58; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 59; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 60; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 61; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 62; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 63; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 64; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 65; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 66; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 67; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 68; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 69; + assign(z, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 70; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 71; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 72; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 73; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 74; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 75; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 76; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 77; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 78; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 79; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 80; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 81; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 82; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 83; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 84; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 85; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 86; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 87; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable z"); + current_statement__ = 88; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable z"); + current_statement__ = 89; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable z"); + current_statement__ = 90; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable z"); + current_statement__ = 91; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 92; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 93; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 94; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 95; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 96; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 97; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 98; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 99; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable z"); + current_statement__ = 100; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable z"); + current_statement__ = 101; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable z"); + current_statement__ = 102; + assign(z, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable z"); + current_statement__ = 103; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 104; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 105; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 106; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 107; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 108; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 109; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 110; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 111; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 112; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 113; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 114; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 115; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 116; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 117; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 118; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 119; + assign(z, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 120; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 121; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 122; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 123; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 124; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 125; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 126; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 127; + assign(z, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 128; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 129; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 130; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 131; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 132; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 133; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 134; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 135; + assign(z, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 136; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 137; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 138; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 139; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 140; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 141; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 142; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 143; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 144; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 145; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 146; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 147; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 148; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 149; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 150; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 151; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 152; + assign(z, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 153; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 154; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 155; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 156; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 157; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 158; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 159; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 160; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 161; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 162; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 163; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 164; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 165; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 166; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 167; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 168; + assign(z, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 169; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 170; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 171; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 172; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 173; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 174; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 175; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 176; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 177; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 178; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 179; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 180; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 181; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 182; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 183; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 184; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 185; + assign(z, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 186; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 187; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 188; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 189; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 190; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 191; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 192; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 193; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable z"); + current_statement__ = 194; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 195; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 196; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 197; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable z"); + current_statement__ = 198; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable z"); + current_statement__ = 199; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable z"); + current_statement__ = 200; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable z"); + current_statement__ = 201; + assign(z, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable z"); + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(z[(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + std::vector> zg; + zg = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(zg, std::numeric_limits::quiet_NaN()); + + current_statement__ = 202; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 203; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 204; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 205; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 206; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 207; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 208; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 209; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 210; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 211; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 212; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 213; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 214; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 215; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 216; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 217; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 218; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 219; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 220; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 221; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 222; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 223; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 224; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 225; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 226; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 227; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 228; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 229; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 230; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 231; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 232; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 233; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 234; + assign(zg, + ode_bdf_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 235; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 236; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 237; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zg"); + current_statement__ = 238; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zg"); + current_statement__ = 239; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zg"); + current_statement__ = 240; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 241; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zg"); + current_statement__ = 242; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zg"); + current_statement__ = 243; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zg"); + current_statement__ = 244; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 245; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zg"); + current_statement__ = 246; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zg"); + current_statement__ = 247; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zg"); + current_statement__ = 248; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 249; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 250; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 251; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 252; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 253; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zg"); + current_statement__ = 254; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zg"); + current_statement__ = 255; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zg"); + current_statement__ = 256; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 257; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 258; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 259; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 260; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 261; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 262; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 263; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 264; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 265; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 266; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 267; + assign(zg, + ode_adams_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 268; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, id, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 269; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 270; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, rd, v), "assigning variable zg"); + current_statement__ = 271; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, vd), "assigning variable zg"); + current_statement__ = 272; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, rad, 1e-6, 1e-6, + 100, pstream__, r, v), "assigning variable zg"); + current_statement__ = 273; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 274; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 275; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 276; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 277; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 278; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 279; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 280; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 281; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 282; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 283; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 284; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), vd, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 285; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 286; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 287; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 288; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 289; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 290; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 291; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 292; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, rd, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 293; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 294; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 295; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 296; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, rad, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 297; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, vd), "assigning variable zg"); + current_statement__ = 298; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, rd, v), "assigning variable zg"); + current_statement__ = 299; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, vd), "assigning variable zg"); + current_statement__ = 300; + assign(zg, + ode_rk45_tol(from_lambda(f_functor__()), v, r, ra, 1e-6, 1e-6, 100, + pstream__, r, v), "assigning variable zg"); + current_statement__ = 301; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 302; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 303; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 304; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 305; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 306; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 307; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 308; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 309; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 310; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 311; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 312; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 313; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 314; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 315; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 316; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 317; + assign(zg, + ode_rk45(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 318; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 319; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 320; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 321; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 322; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 323; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 324; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 325; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 326; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 327; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 328; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 329; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 330; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 331; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 332; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 333; + assign(zg, + ode_rk45(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 334; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 335; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 336; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 337; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 338; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 339; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 340; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 341; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 342; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 343; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 344; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 345; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 346; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 347; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 348; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 349; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 350; + assign(zg, + ode_adams(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 351; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 352; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 353; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 354; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 355; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 356; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 357; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 358; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 359; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 360; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 361; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 362; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 363; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 364; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 365; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 366; + assign(zg, + ode_adams(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 367; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, id, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 368; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 369; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 370; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 371; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 372; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 373; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 374; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 375; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, rd, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 376; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 377; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 378; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 379; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 380; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 381; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 382; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 383; + assign(zg, + ode_bdf(from_lambda(f_functor__()), vd, r, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 384; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 385; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 386; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 387; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 388; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 389; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 390; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 391; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, rd, ra, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 392; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 393; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 394; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 395; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, rad, pstream__, r, v), + "assigning variable zg"); + current_statement__ = 396; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, vd), + "assigning variable zg"); + current_statement__ = 397; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, rd, v), + "assigning variable zg"); + current_statement__ = 398; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, vd), + "assigning variable zg"); + current_statement__ = 399; + assign(zg, + ode_bdf(from_lambda(f_functor__()), v, r, ra, pstream__, r, v), + "assigning variable zg"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(zg[(sym2__ - 1)][(sym1__ - 1)]); + } + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t> -g2(const std::vector& y_slice, const int& start, const int& end, - const T3__& a_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - int current_statement__ = 0; - const auto& a = to_ref(a_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 199; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double r; + r = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + r = context__.vals_r("r")[(1 - 1)]; + std::vector ra; + ra = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + ra = context__.vals_r("ra"); + Eigen::Matrix v; + v = Eigen::Matrix(N); + stan::math::fill(v, std::numeric_limits::quiet_NaN()); + + { + std::vector v_flat__; + current_statement__ = 3; + v_flat__ = context__.vals_r("v"); + current_statement__ = 3; + pos__ = 1; + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 3; + assign(v, v_flat__[(pos__ - 1)], + "assigning variable v", index_uni(sym1__)); + current_statement__ = 3; + pos__ = (pos__ + 1); + } + } + vars__.emplace_back(r); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(ra[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(v[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"r", "ra", "v", "z", "zg"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{static_cast(N)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "r"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "ra" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "v" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + if (emit_generated_quantities__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "zg" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "r"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "ra" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "v" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + if (emit_generated_quantities__) { + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "zg" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"ra\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"zg\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"r\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"ra\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"transformed_parameters\"},{\"name\":\"zg\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"generated_quantities\"}]"); + + } // get_unconstrained_sizedtypes() + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; } -template -stan::promote_args_t> -g3(const std::vector& y_slice, const int& start, const int& end, - const T3__& a_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - int current_statement__ = 0; - const auto& a = to_ref(a_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 201; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - + +using stan_model = new_integrate_interface_model_namespace::new_integrate_interface_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; } -template -stan::promote_args_t> -g4(const std::vector& y_slice, const int& start, const int& end, - const T3__& a_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - int current_statement__ = 0; - const auto& a = to_ref(a_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 203; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - + +stan::math::profile_map& get_stan_profile_data() { + return new_integrate_interface_model_namespace::profiles__; } -template -stan::promote_args_t -g5(const std::vector& y_slice, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + +#endif + + + + $ ../../../../../install/default/bin/stanc --print-cpp old_integrate_interface.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace old_integrate_interface_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'old_integrate_interface.stan', line 27, column 2 to column 24)", + " (in 'old_integrate_interface.stan', line 28, column 2 to column 23)", + " (in 'old_integrate_interface.stan', line 29, column 2 to column 24)", + " (in 'old_integrate_interface.stan', line 30, column 2 to column 24)", + " (in 'old_integrate_interface.stan', line 31, column 2 to column 28)", + " (in 'old_integrate_interface.stan', line 32, column 2 to column 27)", + " (in 'old_integrate_interface.stan', line 35, column 2 to line 38, column 40)", + " (in 'old_integrate_interface.stan', line 41, column 2 to column 25)", + " (in 'old_integrate_interface.stan', line 42, column 2 to column 25)", + " (in 'old_integrate_interface.stan', line 43, column 2 to column 28)", + " (in 'old_integrate_interface.stan', line 44, column 2 to column 29)", + " (in 'old_integrate_interface.stan', line 45, column 2 to column 27)", + " (in 'old_integrate_interface.stan', line 46, column 2 to column 33)", + " (in 'old_integrate_interface.stan', line 48, column 4 to column 52)", + " (in 'old_integrate_interface.stan', line 49, column 4 to column 47)", + " (in 'old_integrate_interface.stan', line 47, column 17 to line 50, column 3)", + " (in 'old_integrate_interface.stan', line 47, column 2 to line 50, column 3)", + " (in 'old_integrate_interface.stan', line 21, column 2 to column 19)", + " (in 'old_integrate_interface.stan', line 22, column 10 to column 11)", + " (in 'old_integrate_interface.stan', line 22, column 2 to column 13)", + " (in 'old_integrate_interface.stan', line 23, column 2 to column 17)", + " (in 'old_integrate_interface.stan', line 24, column 20 to column 21)", + " (in 'old_integrate_interface.stan', line 24, column 2 to column 26)", + " (in 'old_integrate_interface.stan', line 35, column 9 to column 10)", + " (in 'old_integrate_interface.stan', line 7, column 4 to column 18)", + " (in 'old_integrate_interface.stan', line 8, column 4 to column 18)", + " (in 'old_integrate_interface.stan', line 10, column 4 to column 26)", + " (in 'old_integrate_interface.stan', line 11, column 4 to column 25)", + " (in 'old_integrate_interface.stan', line 12, column 4 to column 26)", + " (in 'old_integrate_interface.stan', line 13, column 4 to column 26)", + " (in 'old_integrate_interface.stan', line 15, column 4 to column 40)", + " (in 'old_integrate_interface.stan', line 16, column 4 to column 42)", + " (in 'old_integrate_interface.stan', line 17, column 4 to column 28)", + " (in 'old_integrate_interface.stan', line 6, column 26 to line 18, column 3)"}; + +template +std::vector> +dz_dt(const T0__& t, const std::vector& z, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) ; + +struct dz_dt_functor__ { +template +std::vector> +operator()(const T0__& t, const std::vector& z, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) const +{ +return dz_dt(t, z, theta, x_r, x_i, pstream__); +} +}; + +template +std::vector> +dz_dt(const T0__& t, const std::vector& z, + const std::vector& theta, const std::vector& x_r, + const std::vector& x_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 205; - return 0.0; + local_scalar_t__ u; + u = DUMMY_VAR__; + + current_statement__ = 25; + u = rvalue(z, "z", index_uni(1)); + local_scalar_t__ v; + v = DUMMY_VAR__; + + current_statement__ = 26; + v = rvalue(z, "z", index_uni(2)); + local_scalar_t__ alpha; + alpha = DUMMY_VAR__; + + current_statement__ = 27; + alpha = rvalue(theta, "theta", index_uni(1)); + local_scalar_t__ beta; + beta = DUMMY_VAR__; + + current_statement__ = 28; + beta = rvalue(theta, "theta", index_uni(2)); + local_scalar_t__ gamma; + gamma = DUMMY_VAR__; + + current_statement__ = 29; + gamma = rvalue(theta, "theta", index_uni(3)); + local_scalar_t__ delta; + delta = DUMMY_VAR__; + + current_statement__ = 30; + delta = rvalue(theta, "theta", index_uni(4)); + local_scalar_t__ du_dt; + du_dt = DUMMY_VAR__; + + current_statement__ = 31; + du_dt = ((alpha - (beta * v)) * u); + local_scalar_t__ dv_dt; + dv_dt = DUMMY_VAR__; + + current_statement__ = 32; + dv_dt = ((-gamma + (delta * u)) * v); + current_statement__ = 33; + return std::vector{du_dt, dv_dt}; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -30611,1324 +17937,2400 @@ g5(const std::vector& y_slice, const int& start, const int& end, } } -template -stan::promote_args_t -g6(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 207; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); +class old_integrate_interface_model final : public model_base_crtp { + + private: + int N; + std::vector ts; + std::vector y_init; + std::vector> y; + + + public: + ~old_integrate_interface_model() { } + + inline std::string model_name() const final { return "old_integrate_interface_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } -} -template -stan::promote_args_t -g7(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 209; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + + old_integrate_interface_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "old_integrate_interface_model_namespace::old_integrate_interface_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 18; + context__.validate_dims("data initialization","N","int", + std::vector{}); + N = std::numeric_limits::min(); + + current_statement__ = 18; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 18; + check_greater_or_equal(function__, "N", N, 0); + current_statement__ = 19; + validate_non_negative_index("ts", "N", N); + current_statement__ = 20; + context__.validate_dims("data initialization","ts","double", + std::vector{static_cast(N)}); + ts = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 20; + ts = context__.vals_r("ts"); + current_statement__ = 21; + context__.validate_dims("data initialization","y_init","double", + std::vector{static_cast(2)}); + y_init = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 21; + y_init = context__.vals_r("y_init"); + current_statement__ = 22; + validate_non_negative_index("y", "N", N); + current_statement__ = 23; + context__.validate_dims("data initialization","y","double", + std::vector{static_cast(N), + static_cast(2)}); + y = std::vector>(N, std::vector(2, std::numeric_limits::quiet_NaN())); + + + { + std::vector y_flat__; + current_statement__ = 23; + y_flat__ = context__.vals_r("y"); + current_statement__ = 23; + pos__ = 1; + current_statement__ = 23; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 23; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 23; + assign(y, y_flat__[(pos__ - 1)], + "assigning variable y", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 23; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 23; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 23; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 23; + check_greater_or_equal(function__, "y[sym1__, sym2__]", + y[(sym1__ - 1)][(sym2__ - 1)], 0); + } + } + current_statement__ = 24; + validate_non_negative_index("z", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 1 + 1 + 1 + 1 + 2 + 2; + } -} -template -stan::promote_args_t -g8(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 211; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "old_integrate_interface_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + local_scalar_t__ alpha; + alpha = DUMMY_VAR__; + + current_statement__ = 1; + alpha = in__.template read_constrain_lb( + 0, lp__); + local_scalar_t__ beta; + beta = DUMMY_VAR__; + + current_statement__ = 2; + beta = in__.template read_constrain_lb(0, + lp__); + local_scalar_t__ gamma; + gamma = DUMMY_VAR__; + + current_statement__ = 3; + gamma = in__.template read_constrain_lb( + 0, lp__); + local_scalar_t__ delta; + delta = DUMMY_VAR__; + + current_statement__ = 4; + delta = in__.template read_constrain_lb( + 0, lp__); + std::vector z_init; + z_init = std::vector(2, DUMMY_VAR__); + + current_statement__ = 5; + z_init = in__.template read_constrain_lb, jacobian__>( + 0, lp__, 2); + std::vector sigma; + sigma = std::vector(2, DUMMY_VAR__); + + current_statement__ = 6; + sigma = in__.template read_constrain_lb, jacobian__>( + 0, lp__, 2); + std::vector> z; + z = std::vector>(N, std::vector(2, DUMMY_VAR__)); + + + current_statement__ = 7; + assign(z, + integrate_ode_bdf(dz_dt_functor__(), z_init, 0, ts, + std::vector{alpha, beta, gamma, delta}, + rep_array(0.0, 0), rep_array(0, 0), pstream__, 1e-5, 1e-3, 5e2), + "assigning variable z"); + { + current_statement__ = 8; + lp_accum__.add(normal_lpdf(alpha, 1, 0.5)); + current_statement__ = 9; + lp_accum__.add(normal_lpdf(gamma, 1, 0.5)); + current_statement__ = 10; + lp_accum__.add(normal_lpdf(beta, 0.05, 0.05)); + current_statement__ = 11; + lp_accum__.add(normal_lpdf(delta, 0.05, 0.05)); + current_statement__ = 12; + lp_accum__.add(lognormal_lpdf(sigma, -1, 1)); + current_statement__ = 13; + lp_accum__.add( + lognormal_lpdf(z_init, stan::math::log(10), 1)); + current_statement__ = 17; + for (int k = 1; k <= 2; ++k) { + current_statement__ = 14; + lp_accum__.add( + lognormal_lpdf(rvalue(y_init, "y_init", index_uni(k)), + stan::math::log(rvalue(z_init, "z_init", index_uni(k))), + rvalue(sigma, "sigma", index_uni(k)))); + current_statement__ = 15; + lp_accum__.add( + lognormal_lpdf( + rvalue(y, "y", index_omni(), index_uni(k)), + stan::math::log(rvalue(z, "z", index_omni(), index_uni(k))), + rvalue(sigma, "sigma", index_uni(k)))); + } + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g9(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 213; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "old_integrate_interface_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + alpha = in__.template read_constrain_lb( + 0, lp__); + double beta; + beta = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + beta = in__.template read_constrain_lb(0, + lp__); + double gamma; + gamma = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + gamma = in__.template read_constrain_lb( + 0, lp__); + double delta; + delta = std::numeric_limits::quiet_NaN(); + + current_statement__ = 4; + delta = in__.template read_constrain_lb( + 0, lp__); + std::vector z_init; + z_init = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 5; + z_init = in__.template read_constrain_lb, jacobian__>( + 0, lp__, 2); + std::vector sigma; + sigma = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 6; + sigma = in__.template read_constrain_lb, jacobian__>( + 0, lp__, 2); + std::vector> z; + z = std::vector>(N, std::vector(2, std::numeric_limits::quiet_NaN())); + + + vars__.emplace_back(alpha); + vars__.emplace_back(beta); + vars__.emplace_back(gamma); + vars__.emplace_back(delta); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(z_init[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(sigma[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + current_statement__ = 7; + assign(z, + integrate_ode_bdf(dz_dt_functor__(), z_init, 0, ts, + std::vector{alpha, beta, gamma, delta}, + rep_array(0.0, 0), rep_array(0, 0), pstream__, 1e-5, 1e-3, 5e2), + "assigning variable z"); + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(z[(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -g10(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 215; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + alpha = context__.vals_r("alpha")[(1 - 1)]; + double alpha_free__; + alpha_free__ = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + alpha_free__ = stan::math::lb_free(alpha, 0); + double beta; + beta = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + beta = context__.vals_r("beta")[(1 - 1)]; + double beta_free__; + beta_free__ = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + beta_free__ = stan::math::lb_free(beta, 0); + double gamma; + gamma = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + gamma = context__.vals_r("gamma")[(1 - 1)]; + double gamma_free__; + gamma_free__ = std::numeric_limits::quiet_NaN(); + + current_statement__ = 3; + gamma_free__ = stan::math::lb_free(gamma, 0); + double delta; + delta = std::numeric_limits::quiet_NaN(); + + current_statement__ = 4; + delta = context__.vals_r("delta")[(1 - 1)]; + double delta_free__; + delta_free__ = std::numeric_limits::quiet_NaN(); + + current_statement__ = 4; + delta_free__ = stan::math::lb_free(delta, 0); + std::vector z_init; + z_init = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 5; + z_init = context__.vals_r("z_init"); + std::vector z_init_free__; + z_init_free__ = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 5; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 5; + assign(z_init_free__, stan::math::lb_free(z_init[(sym1__ - 1)], 0), + "assigning variable z_init_free__", index_uni(sym1__)); + } + std::vector sigma; + sigma = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 6; + sigma = context__.vals_r("sigma"); + std::vector sigma_free__; + sigma_free__ = std::vector(2, std::numeric_limits::quiet_NaN()); + + + current_statement__ = 6; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 6; + assign(sigma_free__, stan::math::lb_free(sigma[(sym1__ - 1)], 0), + "assigning variable sigma_free__", index_uni(sym1__)); + } + vars__.emplace_back(alpha_free__); + vars__.emplace_back(beta_free__); + vars__.emplace_back(gamma_free__); + vars__.emplace_back(delta_free__); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(z_init_free__[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(sigma_free__[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"alpha", "beta", "gamma", "delta", + "z_init", "sigma", "z"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{}, + std::vector{}, std::vector{}, std::vector{ + }, std::vector{static_cast(2)}, + std::vector{static_cast(2)}, + std::vector{static_cast(N), static_cast(2)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "alpha"); + param_names__.emplace_back(std::string() + "beta"); + param_names__.emplace_back(std::string() + "gamma"); + param_names__.emplace_back(std::string() + "delta"); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "z_init" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "sigma" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "alpha"); + param_names__.emplace_back(std::string() + "beta"); + param_names__.emplace_back(std::string() + "gamma"); + param_names__.emplace_back(std::string() + "delta"); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "z_init" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "sigma" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "z" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"gamma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"delta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"z_init\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"gamma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"delta\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"z_init\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"z\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(2) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"transformed_parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; } -template -stan::promote_args_t -g11(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 217; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } + +using stan_model = old_integrate_interface_model_namespace::old_integrate_interface_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return old_integrate_interface_model_namespace::profiles__; +} + +#endif + + + +Warning in 'old_integrate_interface.stan', line 36, column 4: integrate_ode_bdf is deprecated and will be removed in the future. Use ode_bdf instead. +The new interface is slightly different, see: +https://mc-stan.org/users/documentation/case-studies/convert_odes.html + $ ../../../../../install/default/bin/stanc --print-cpp optimize_glm.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace optimize_glm_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'optimize_glm.stan', line 27, column 2 to column 20)", + " (in 'optimize_glm.stan', line 28, column 2 to column 17)", + " (in 'optimize_glm.stan', line 29, column 2 to column 17)", + " (in 'optimize_glm.stan', line 30, column 2 to column 22)", + " (in 'optimize_glm.stan', line 31, column 2 to column 13)", + " (in 'optimize_glm.stan', line 32, column 2 to column 11)", + " (in 'optimize_glm.stan', line 33, column 2 to column 19)", + " (in 'optimize_glm.stan', line 34, column 2 to column 22)", + " (in 'optimize_glm.stan', line 35, column 2 to column 23)", + " (in 'optimize_glm.stan', line 39, column 2 to column 64)", + " (in 'optimize_glm.stan', line 40, column 2 to column 49)", + " (in 'optimize_glm.stan', line 42, column 2 to column 64)", + " (in 'optimize_glm.stan', line 43, column 2 to column 49)", + " (in 'optimize_glm.stan', line 45, column 2 to column 63)", + " (in 'optimize_glm.stan', line 46, column 2 to column 48)", + " (in 'optimize_glm.stan', line 48, column 2 to column 63)", + " (in 'optimize_glm.stan', line 49, column 2 to column 48)", + " (in 'optimize_glm.stan', line 51, column 2 to column 66)", + " (in 'optimize_glm.stan', line 52, column 2 to column 51)", + " (in 'optimize_glm.stan', line 54, column 2 to column 66)", + " (in 'optimize_glm.stan', line 55, column 2 to column 51)", + " (in 'optimize_glm.stan', line 57, column 2 to column 70)", + " (in 'optimize_glm.stan', line 58, column 2 to column 55)", + " (in 'optimize_glm.stan', line 60, column 2 to column 67)", + " (in 'optimize_glm.stan', line 61, column 2 to column 52)", + " (in 'optimize_glm.stan', line 63, column 2 to column 69)", + " (in 'optimize_glm.stan', line 64, column 2 to column 54)", + " (in 'optimize_glm.stan', line 66, column 2 to column 66)", + " (in 'optimize_glm.stan', line 67, column 2 to column 51)", + " (in 'optimize_glm.stan', line 69, column 2 to column 72)", + " (in 'optimize_glm.stan', line 70, column 2 to column 57)", + " (in 'optimize_glm.stan', line 72, column 2 to column 69)", + " (in 'optimize_glm.stan', line 73, column 2 to column 54)", + " (in 'optimize_glm.stan', line 75, column 2 to column 63)", + " (in 'optimize_glm.stan', line 76, column 2 to column 49)", + " (in 'optimize_glm.stan', line 78, column 2 to column 63)", + " (in 'optimize_glm.stan', line 79, column 2 to column 49)", + " (in 'optimize_glm.stan', line 81, column 2 to column 66)", + " (in 'optimize_glm.stan', line 82, column 2 to column 52)", + " (in 'optimize_glm.stan', line 84, column 2 to column 66)", + " (in 'optimize_glm.stan', line 85, column 2 to column 52)", + " (in 'optimize_glm.stan', line 87, column 2 to column 62)", + " (in 'optimize_glm.stan', line 88, column 2 to column 48)", + " (in 'optimize_glm.stan', line 90, column 2 to column 62)", + " (in 'optimize_glm.stan', line 91, column 2 to column 48)", + " (in 'optimize_glm.stan', line 93, column 2 to column 69)", + " (in 'optimize_glm.stan', line 94, column 2 to column 55)", + " (in 'optimize_glm.stan', line 96, column 2 to column 66)", + " (in 'optimize_glm.stan', line 97, column 2 to column 52)", + " (in 'optimize_glm.stan', line 99, column 2 to column 72)", + " (in 'optimize_glm.stan', line 100, column 2 to column 58)", + " (in 'optimize_glm.stan', line 102, column 2 to column 69)", + " (in 'optimize_glm.stan', line 103, column 2 to column 55)", + " (in 'optimize_glm.stan', line 105, column 2 to column 68)", + " (in 'optimize_glm.stan', line 106, column 2 to column 54)", + " (in 'optimize_glm.stan', line 108, column 2 to column 65)", + " (in 'optimize_glm.stan', line 109, column 2 to column 51)", + " (in 'optimize_glm.stan', line 111, column 2 to column 59)", + " (in 'optimize_glm.stan', line 112, column 2 to column 45)", + " (in 'optimize_glm.stan', line 114, column 2 to column 59)", + " (in 'optimize_glm.stan', line 115, column 2 to column 45)", + " (in 'optimize_glm.stan', line 117, column 2 to column 58)", + " (in 'optimize_glm.stan', line 118, column 2 to column 44)", + " (in 'optimize_glm.stan', line 120, column 2 to column 58)", + " (in 'optimize_glm.stan', line 121, column 2 to column 44)", + " (in 'optimize_glm.stan', line 123, column 2 to column 62)", + " (in 'optimize_glm.stan', line 124, column 2 to column 48)", + " (in 'optimize_glm.stan', line 126, column 2 to column 62)", + " (in 'optimize_glm.stan', line 127, column 2 to column 48)", + " (in 'optimize_glm.stan', line 129, column 2 to column 65)", + " (in 'optimize_glm.stan', line 130, column 2 to column 51)", + " (in 'optimize_glm.stan', line 132, column 2 to column 62)", + " (in 'optimize_glm.stan', line 133, column 2 to column 48)", + " (in 'optimize_glm.stan', line 135, column 2 to column 64)", + " (in 'optimize_glm.stan', line 136, column 2 to column 50)", + " (in 'optimize_glm.stan', line 138, column 2 to column 61)", + " (in 'optimize_glm.stan', line 139, column 2 to column 47)", + " (in 'optimize_glm.stan', line 141, column 2 to column 68)", + " (in 'optimize_glm.stan', line 142, column 2 to column 54)", + " (in 'optimize_glm.stan', line 144, column 2 to column 65)", + " (in 'optimize_glm.stan', line 145, column 2 to column 51)", + " (in 'optimize_glm.stan', line 147, column 2 to column 71)", + " (in 'optimize_glm.stan', line 148, column 2 to column 57)", + " (in 'optimize_glm.stan', line 150, column 2 to column 71)", + " (in 'optimize_glm.stan', line 151, column 2 to column 57)", + " (in 'optimize_glm.stan', line 153, column 2 to column 70)", + " (in 'optimize_glm.stan', line 154, column 2 to column 56)", + " (in 'optimize_glm.stan', line 156, column 2 to column 70)", + " (in 'optimize_glm.stan', line 157, column 2 to column 56)", + " (in 'optimize_glm.stan', line 159, column 2 to column 74)", + " (in 'optimize_glm.stan', line 160, column 2 to column 60)", + " (in 'optimize_glm.stan', line 162, column 2 to column 74)", + " (in 'optimize_glm.stan', line 163, column 2 to column 60)", + " (in 'optimize_glm.stan', line 165, column 2 to column 77)", + " (in 'optimize_glm.stan', line 166, column 2 to column 63)", + " (in 'optimize_glm.stan', line 168, column 2 to column 74)", + " (in 'optimize_glm.stan', line 169, column 2 to column 60)", + " (in 'optimize_glm.stan', line 171, column 2 to column 76)", + " (in 'optimize_glm.stan', line 172, column 2 to column 62)", + " (in 'optimize_glm.stan', line 174, column 2 to column 73)", + " (in 'optimize_glm.stan', line 175, column 2 to column 59)", + " (in 'optimize_glm.stan', line 177, column 2 to column 80)", + " (in 'optimize_glm.stan', line 178, column 2 to column 66)", + " (in 'optimize_glm.stan', line 180, column 2 to column 77)", + " (in 'optimize_glm.stan', line 181, column 2 to column 63)", + " (in 'optimize_glm.stan', line 183, column 2 to column 62)", + " (in 'optimize_glm.stan', line 184, column 2 to column 48)", + " (in 'optimize_glm.stan', line 186, column 2 to column 62)", + " (in 'optimize_glm.stan', line 187, column 2 to column 48)", + " (in 'optimize_glm.stan', line 189, column 2 to column 68)", + " (in 'optimize_glm.stan', line 190, column 2 to column 54)", + " (in 'optimize_glm.stan', line 192, column 2 to column 65)", + " (in 'optimize_glm.stan', line 193, column 2 to column 51)", + " (in 'optimize_glm.stan', line 195, column 2 to column 62)", + " (in 'optimize_glm.stan', line 196, column 2 to column 48)", + " (in 'optimize_glm.stan', line 198, column 2 to column 62)", + " (in 'optimize_glm.stan', line 199, column 2 to column 48)", + " (in 'optimize_glm.stan', line 201, column 2 to column 68)", + " (in 'optimize_glm.stan', line 202, column 2 to column 54)", + " (in 'optimize_glm.stan', line 204, column 2 to column 65)", + " (in 'optimize_glm.stan', line 205, column 2 to column 51)", + " (in 'optimize_glm.stan', line 207, column 2 to column 65)", + " (in 'optimize_glm.stan', line 208, column 2 to column 51)", + " (in 'optimize_glm.stan', line 210, column 2 to column 65)", + " (in 'optimize_glm.stan', line 211, column 2 to column 51)", + " (in 'optimize_glm.stan', line 213, column 2 to column 63)", + " (in 'optimize_glm.stan', line 214, column 2 to column 49)", + " (in 'optimize_glm.stan', line 216, column 2 to column 63)", + " (in 'optimize_glm.stan', line 217, column 2 to column 49)", + " (in 'optimize_glm.stan', line 219, column 2 to column 69)", + " (in 'optimize_glm.stan', line 220, column 2 to column 55)", + " (in 'optimize_glm.stan', line 222, column 2 to column 66)", + " (in 'optimize_glm.stan', line 223, column 2 to column 53)", + " (in 'optimize_glm.stan', line 225, column 2 to column 66)", + " (in 'optimize_glm.stan', line 226, column 2 to column 52)", + " (in 'optimize_glm.stan', line 228, column 2 to column 66)", + " (in 'optimize_glm.stan', line 229, column 2 to column 52)", + " (in 'optimize_glm.stan', line 231, column 2 to column 68)", + " (in 'optimize_glm.stan', line 232, column 2 to column 54)", + " (in 'optimize_glm.stan', line 234, column 2 to column 68)", + " (in 'optimize_glm.stan', line 235, column 2 to column 54)", + " (in 'optimize_glm.stan', line 237, column 2 to column 74)", + " (in 'optimize_glm.stan', line 238, column 2 to column 60)", + " (in 'optimize_glm.stan', line 240, column 2 to column 71)", + " (in 'optimize_glm.stan', line 241, column 2 to column 57)", + " (in 'optimize_glm.stan', line 243, column 2 to column 71)", + " (in 'optimize_glm.stan', line 244, column 2 to column 57)", + " (in 'optimize_glm.stan', line 246, column 2 to column 71)", + " (in 'optimize_glm.stan', line 247, column 2 to column 57)", + " (in 'optimize_glm.stan', line 249, column 2 to column 77)", + " (in 'optimize_glm.stan', line 250, column 2 to column 63)", + " (in 'optimize_glm.stan', line 252, column 2 to column 74)", + " (in 'optimize_glm.stan', line 253, column 2 to column 60)", + " (in 'optimize_glm.stan', line 255, column 2 to column 69)", + " (in 'optimize_glm.stan', line 256, column 2 to column 55)", + " (in 'optimize_glm.stan', line 258, column 2 to column 69)", + " (in 'optimize_glm.stan', line 259, column 2 to column 55)", + " (in 'optimize_glm.stan', line 261, column 2 to column 75)", + " (in 'optimize_glm.stan', line 262, column 2 to column 61)", + " (in 'optimize_glm.stan', line 264, column 2 to column 72)", + " (in 'optimize_glm.stan', line 265, column 2 to column 58)", + " (in 'optimize_glm.stan', line 267, column 2 to column 72)", + " (in 'optimize_glm.stan', line 268, column 2 to column 58)", + " (in 'optimize_glm.stan', line 270, column 2 to column 72)", + " (in 'optimize_glm.stan', line 271, column 2 to column 58)", + " (in 'optimize_glm.stan', line 273, column 2 to column 78)", + " (in 'optimize_glm.stan', line 274, column 2 to column 64)", + " (in 'optimize_glm.stan', line 276, column 2 to column 75)", + " (in 'optimize_glm.stan', line 277, column 2 to column 61)", + " (in 'optimize_glm.stan', line 279, column 2 to column 73)", + " (in 'optimize_glm.stan', line 280, column 2 to column 59)", + " (in 'optimize_glm.stan', line 282, column 2 to column 76)", + " (in 'optimize_glm.stan', line 283, column 2 to column 62)", + " (in 'optimize_glm.stan', line 285, column 2 to column 69)", + " (in 'optimize_glm.stan', line 286, column 2 to column 54)", + " (in 'optimize_glm.stan', line 2, column 2 to column 17)", + " (in 'optimize_glm.stan', line 3, column 2 to column 17)", + " (in 'optimize_glm.stan', line 4, column 9 to column 10)", + " (in 'optimize_glm.stan', line 4, column 12 to column 13)", + " (in 'optimize_glm.stan', line 4, column 2 to column 19)", + " (in 'optimize_glm.stan', line 5, column 9 to column 10)", + " (in 'optimize_glm.stan', line 5, column 12 to column 13)", + " (in 'optimize_glm.stan', line 5, column 2 to column 24)", + " (in 'optimize_glm.stan', line 6, column 9 to column 10)", + " (in 'optimize_glm.stan', line 6, column 2 to column 18)", + " (in 'optimize_glm.stan', line 7, column 13 to column 14)", + " (in 'optimize_glm.stan', line 7, column 2 to column 23)", + " (in 'optimize_glm.stan', line 8, column 13 to column 14)", + " (in 'optimize_glm.stan', line 8, column 2 to column 16)", + " (in 'optimize_glm.stan', line 9, column 14 to column 15)", + " (in 'optimize_glm.stan', line 9, column 2 to column 17)", + " (in 'optimize_glm.stan', line 10, column 2 to column 12)", + " (in 'optimize_glm.stan', line 11, column 2 to column 13)", + " (in 'optimize_glm.stan', line 15, column 2 to column 20)", + " (in 'optimize_glm.stan', line 16, column 2 to column 20)", + " (in 'optimize_glm.stan', line 17, column 9 to column 10)", + " (in 'optimize_glm.stan', line 17, column 12 to column 13)", + " (in 'optimize_glm.stan', line 17, column 2 to column 22)", + " (in 'optimize_glm.stan', line 18, column 9 to column 10)", + " (in 'optimize_glm.stan', line 18, column 2 to column 21)", + " (in 'optimize_glm.stan', line 19, column 13 to column 14)", + " (in 'optimize_glm.stan', line 19, column 2 to column 26)", + " (in 'optimize_glm.stan', line 20, column 16 to column 17)", + " (in 'optimize_glm.stan', line 20, column 2 to column 19)", + " (in 'optimize_glm.stan', line 21, column 17 to column 18)", + " (in 'optimize_glm.stan', line 21, column 2 to column 20)", + " (in 'optimize_glm.stan', line 22, column 2 to column 15)", + " (in 'optimize_glm.stan', line 23, column 2 to column 16)", + " (in 'optimize_glm.stan', line 27, column 9 to column 10)", + " (in 'optimize_glm.stan', line 28, column 9 to column 10)", + " (in 'optimize_glm.stan', line 29, column 9 to column 10)", + " (in 'optimize_glm.stan', line 33, column 9 to column 10)", + " (in 'optimize_glm.stan', line 33, column 12 to column 13)", + " (in 'optimize_glm.stan', line 34, column 9 to column 10)", + " (in 'optimize_glm.stan', line 34, column 12 to column 13)", + " (in 'optimize_glm.stan', line 35, column 13 to column 14)"}; + + + +class optimize_glm_model final : public model_base_crtp { + + private: + int k; + int n; + Eigen::Matrix X_d__; + std::vector> X_d_a; + Eigen::Matrix y_v_d__; + Eigen::Matrix X_rv_d__; + std::vector y_vi_d; + std::vector y2_vi_d; + int y_s_d; + double y_r_d; + int k_td; + int n_td; + Eigen::Matrix X_d_td__; + Eigen::Matrix y_v_d_td__; + Eigen::Matrix X_rv_d_td__; + std::vector y_vi_d_td; + std::vector y2_vi_d_td; + int y_s_d_td; + double y_r_d_td; + Eigen::Map> X_d{nullptr, 0, 0}; + Eigen::Map> y_v_d{nullptr, 0}; + Eigen::Map> X_rv_d{nullptr, 0}; + Eigen::Map> X_d_td{nullptr, 0, 0}; + Eigen::Map> y_v_d_td{nullptr, 0}; + Eigen::Map> X_rv_d_td{nullptr, 0}; + + public: + ~optimize_glm_model() { } -} -template -stan::promote_args_t -g12(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 219; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + inline std::string model_name() const final { return "optimize_glm_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } -} -template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t, stan::promote_args_t>> -s(const std::vector& y_slice, const int& start, const int& end, - const int& a, const T4__& b, const T5__& c_arg__, const T6__& d_arg__, - const T7__& e_arg__, const std::vector& f, const std::vector& g, - const std::vector>& h, - const std::vector>& i, - const std::vector>& j, - const std::vector>& k, - const std::vector>& l, - const std::vector>>& m, - const std::vector>>& n, - const std::vector>>& o, - const std::vector>>& p, - const std::vector>>& q, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - stan::value_type_t, stan::promote_args_t>>; - int current_statement__ = 0; - const auto& c = to_ref(c_arg__); - const auto& d = to_ref(d_arg__); - const auto& e = to_ref(e_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 221; - return reduce_sum(y_slice, 1, pstream__, a, b, c, d, e, f, - g, h, i, j, k, l, m, n, o, p, q); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + + optimize_glm_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "optimize_glm_model_namespace::optimize_glm_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 176; + context__.validate_dims("data initialization","k","int", + std::vector{}); + k = std::numeric_limits::min(); + + current_statement__ = 176; + k = context__.vals_i("k")[(1 - 1)]; + current_statement__ = 176; + check_greater_or_equal(function__, "k", k, 1); + current_statement__ = 177; + context__.validate_dims("data initialization","n","int", + std::vector{}); + n = std::numeric_limits::min(); + + current_statement__ = 177; + n = context__.vals_i("n")[(1 - 1)]; + current_statement__ = 177; + check_greater_or_equal(function__, "n", n, 0); + current_statement__ = 178; + validate_non_negative_index("X_d", "n", n); + current_statement__ = 179; + validate_non_negative_index("X_d", "k", k); + current_statement__ = 180; + context__.validate_dims("data initialization","X_d","double", + std::vector{static_cast(n), + static_cast(k)}); + X_d__ = Eigen::Matrix(n, k); + new (&X_d) Eigen::Map>(X_d__.data(), n, k); + + + { + std::vector X_d_flat__; + current_statement__ = 180; + X_d_flat__ = context__.vals_r("X_d"); + current_statement__ = 180; + pos__ = 1; + current_statement__ = 180; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 180; + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + current_statement__ = 180; + assign(X_d, X_d_flat__[(pos__ - 1)], + "assigning variable X_d", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 180; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 181; + validate_non_negative_index("X_d_a", "n", n); + current_statement__ = 182; + validate_non_negative_index("X_d_a", "k", k); + current_statement__ = 183; + context__.validate_dims("data initialization","X_d_a","double", + std::vector{static_cast(2), + static_cast(n), static_cast(k)}); + X_d_a = std::vector>(2, Eigen::Matrix(n, k)); + + + { + std::vector X_d_a_flat__; + current_statement__ = 183; + X_d_a_flat__ = context__.vals_r("X_d_a"); + current_statement__ = 183; + pos__ = 1; + current_statement__ = 183; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 183; + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + current_statement__ = 183; + for (int sym3__ = 1; sym3__ <= 2; ++sym3__) { + current_statement__ = 183; + assign(X_d_a, X_d_a_flat__[(pos__ - 1)], + "assigning variable X_d_a", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 183; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 184; + validate_non_negative_index("y_v_d", "n", n); + current_statement__ = 185; + context__.validate_dims("data initialization","y_v_d","double", + std::vector{static_cast(n)}); + y_v_d__ = Eigen::Matrix(n); + new (&y_v_d) Eigen::Map>(y_v_d__.data(), n); + + + { + std::vector y_v_d_flat__; + current_statement__ = 185; + y_v_d_flat__ = context__.vals_r("y_v_d"); + current_statement__ = 185; + pos__ = 1; + current_statement__ = 185; + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + current_statement__ = 185; + assign(y_v_d, y_v_d_flat__[(pos__ - 1)], + "assigning variable y_v_d", index_uni(sym1__)); + current_statement__ = 185; + pos__ = (pos__ + 1); + } + } + current_statement__ = 186; + validate_non_negative_index("X_rv_d", "n", n); + current_statement__ = 187; + context__.validate_dims("data initialization","X_rv_d","double", + std::vector{static_cast(n)}); + X_rv_d__ = Eigen::Matrix(n); + new (&X_rv_d) Eigen::Map>(X_rv_d__.data(), n); + + + { + std::vector X_rv_d_flat__; + current_statement__ = 187; + X_rv_d_flat__ = context__.vals_r("X_rv_d"); + current_statement__ = 187; + pos__ = 1; + current_statement__ = 187; + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + current_statement__ = 187; + assign(X_rv_d, X_rv_d_flat__[(pos__ - 1)], + "assigning variable X_rv_d", index_uni(sym1__)); + current_statement__ = 187; + pos__ = (pos__ + 1); + } + } + current_statement__ = 188; + validate_non_negative_index("y_vi_d", "n", n); + current_statement__ = 189; + context__.validate_dims("data initialization","y_vi_d","int", + std::vector{static_cast(n)}); + y_vi_d = std::vector(n, std::numeric_limits::min()); + + current_statement__ = 189; + y_vi_d = context__.vals_i("y_vi_d"); + current_statement__ = 190; + validate_non_negative_index("y2_vi_d", "n", n); + current_statement__ = 191; + context__.validate_dims("data initialization","y2_vi_d","int", + std::vector{static_cast(n)}); + y2_vi_d = std::vector(n, std::numeric_limits::min()); + + current_statement__ = 191; + y2_vi_d = context__.vals_i("y2_vi_d"); + current_statement__ = 192; + context__.validate_dims("data initialization","y_s_d","int", + std::vector{}); + y_s_d = std::numeric_limits::min(); + + current_statement__ = 192; + y_s_d = context__.vals_i("y_s_d")[(1 - 1)]; + current_statement__ = 193; + context__.validate_dims("data initialization","y_r_d","double", + std::vector{}); + y_r_d = std::numeric_limits::quiet_NaN(); + + current_statement__ = 193; + y_r_d = context__.vals_r("y_r_d")[(1 - 1)]; + current_statement__ = 194; + k_td = std::numeric_limits::min(); + + current_statement__ = 195; + n_td = std::numeric_limits::min(); + + current_statement__ = 196; + validate_non_negative_index("X_d_td", "n", n); + current_statement__ = 197; + validate_non_negative_index("X_d_td", "k", k); + current_statement__ = 198; + X_d_td__ = Eigen::Matrix(n, k); + new (&X_d_td) Eigen::Map>(X_d_td__.data(), n, k); + stan::math::fill(X_d_td, std::numeric_limits::quiet_NaN()); + + current_statement__ = 199; + validate_non_negative_index("y_v_d_td", "n", n); + current_statement__ = 200; + y_v_d_td__ = Eigen::Matrix(n); + new (&y_v_d_td) Eigen::Map>(y_v_d_td__.data(), n); + stan::math::fill(y_v_d_td, std::numeric_limits::quiet_NaN()); + + current_statement__ = 201; + validate_non_negative_index("X_rv_d_td", "n", n); + current_statement__ = 202; + X_rv_d_td__ = Eigen::Matrix(n); + new (&X_rv_d_td) Eigen::Map>(X_rv_d_td__.data(), n); + stan::math::fill(X_rv_d_td, std::numeric_limits::quiet_NaN()); + + current_statement__ = 203; + validate_non_negative_index("y_vi_d_td", "n", n); + current_statement__ = 204; + y_vi_d_td = std::vector(n, std::numeric_limits::min()); + + current_statement__ = 205; + validate_non_negative_index("y2_vi_d_td", "n", n); + current_statement__ = 206; + y2_vi_d_td = std::vector(n, std::numeric_limits::min()); + + current_statement__ = 207; + y_s_d_td = std::numeric_limits::min(); + + current_statement__ = 208; + y_r_d_td = std::numeric_limits::quiet_NaN(); + + current_statement__ = 194; + check_greater_or_equal(function__, "k_td", k_td, 1); + current_statement__ = 195; + check_greater_or_equal(function__, "n_td", n_td, 0); + current_statement__ = 209; + validate_non_negative_index("alpha_v", "k", k); + current_statement__ = 210; + validate_non_negative_index("beta", "k", k); + current_statement__ = 211; + validate_non_negative_index("cuts", "k", k); + current_statement__ = 212; + validate_non_negative_index("X_p", "n", n); + current_statement__ = 213; + validate_non_negative_index("X_p", "k", k); + current_statement__ = 214; + validate_non_negative_index("beta_m", "n", n); + current_statement__ = 215; + validate_non_negative_index("beta_m", "k", k); + current_statement__ = 216; + validate_non_negative_index("X_rv_p", "n", n); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = k + k + k + 1 + 1 + 1 + (n * k) + (n * k) + n; + } -} -double -r(std::ostream* pstream__) { - using local_scalar_t__ = double; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - int N; - N = std::numeric_limits::min(); - - current_statement__ = 224; - validate_non_negative_index("y1d", "N", N); - std::vector y1d; - y1d = std::vector(N, DUMMY_VAR__); - - current_statement__ = 226; - validate_non_negative_index("y2d", "N", N); - current_statement__ = 227; - validate_non_negative_index("y2d", "N", N); - std::vector> y2d; - y2d = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2d, DUMMY_VAR__); - - current_statement__ = 229; - validate_non_negative_index("y3d", "N", N); - current_statement__ = 230; - validate_non_negative_index("y3d", "N", N); - std::vector> y3d; - y3d = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3d, DUMMY_VAR__); - - current_statement__ = 232; - validate_non_negative_index("y4d", "N", N); - current_statement__ = 233; - validate_non_negative_index("y4d", "N", N); - current_statement__ = 234; - validate_non_negative_index("y4d", "N", N); - std::vector> y4d; - y4d = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4d, DUMMY_VAR__); - - current_statement__ = 236; - validate_non_negative_index("y5d", "N", N); - current_statement__ = 237; - validate_non_negative_index("y5d", "N", N); - std::vector> y5d; - y5d = std::vector>(N, std::vector(N, DUMMY_VAR__)); - - - current_statement__ = 239; - validate_non_negative_index("y6d", "N", N); - current_statement__ = 240; - validate_non_negative_index("y6d", "N", N); - current_statement__ = 241; - validate_non_negative_index("y6d", "N", N); - std::vector>> y6d; - y6d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6d, DUMMY_VAR__); - - current_statement__ = 243; - validate_non_negative_index("y7d", "N", N); - current_statement__ = 244; - validate_non_negative_index("y7d", "N", N); - current_statement__ = 245; - validate_non_negative_index("y7d", "N", N); - std::vector>> y7d; - y7d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7d, DUMMY_VAR__); - - current_statement__ = 247; - validate_non_negative_index("y8d", "N", N); - current_statement__ = 248; - validate_non_negative_index("y8d", "N", N); - current_statement__ = 249; - validate_non_negative_index("y8d", "N", N); - current_statement__ = 250; - validate_non_negative_index("y8d", "N", N); - std::vector>> y8d; - y8d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8d, DUMMY_VAR__); - - local_scalar_t__ y9d; - y9d = DUMMY_VAR__; - - current_statement__ = 253; - validate_non_negative_index("y10d", "N", N); - Eigen::Matrix y10d; - y10d = Eigen::Matrix(N); - stan::math::fill(y10d, DUMMY_VAR__); - - current_statement__ = 255; - validate_non_negative_index("y11d", "N", N); - Eigen::Matrix y11d; - y11d = Eigen::Matrix(N); - stan::math::fill(y11d, DUMMY_VAR__); - - current_statement__ = 257; - validate_non_negative_index("y12d", "N", N); - current_statement__ = 258; - validate_non_negative_index("y12d", "N", N); - Eigen::Matrix y12d; - y12d = Eigen::Matrix(N, N); - stan::math::fill(y12d, DUMMY_VAR__); - - int y13d; - y13d = std::numeric_limits::min(); - - current_statement__ = 261; - validate_non_negative_index("y14d", "N", N); - std::vector y14d; - y14d = std::vector(N, std::numeric_limits::min()); - - current_statement__ = 263; - validate_non_negative_index("y15d", "N", N); - current_statement__ = 264; - validate_non_negative_index("y15d", "N", N); - std::vector> y15d; - y15d = std::vector>(N, std::vector(N, std::numeric_limits::min())); - - - current_statement__ = 266; - validate_non_negative_index("y16d", "N", N); - current_statement__ = 267; - validate_non_negative_index("y16d", "N", N); - current_statement__ = 268; - validate_non_negative_index("y16d", "N", N); - std::vector>> y16d; - y16d = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::min()))); - - - current_statement__ = 270; - validate_non_negative_index("y17d", "N", N); - current_statement__ = 271; - validate_non_negative_index("y17d", "N", N); - current_statement__ = 272; - validate_non_negative_index("y17d", "N", N); - std::vector>> y17d; - y17d = std::vector>>(N, std::vector>(N, std::vector(N, DUMMY_VAR__))); - - - current_statement__ = 274; - validate_non_negative_index("y1", "N", N); - std::vector y1; - y1 = std::vector(N, DUMMY_VAR__); - - current_statement__ = 276; - validate_non_negative_index("y2", "N", N); - current_statement__ = 277; - validate_non_negative_index("y2", "N", N); - std::vector> y2; - y2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2, DUMMY_VAR__); - - current_statement__ = 279; - validate_non_negative_index("y3", "N", N); - current_statement__ = 280; - validate_non_negative_index("y3", "N", N); - std::vector> y3; - y3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3, DUMMY_VAR__); - - current_statement__ = 282; - validate_non_negative_index("y4", "N", N); - current_statement__ = 283; - validate_non_negative_index("y4", "N", N); - current_statement__ = 284; - validate_non_negative_index("y4", "N", N); - std::vector> y4; - y4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4, DUMMY_VAR__); - - current_statement__ = 286; - validate_non_negative_index("y5", "N", N); - current_statement__ = 287; - validate_non_negative_index("y5", "N", N); - std::vector> y5; - y5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); - - - current_statement__ = 289; - validate_non_negative_index("y6", "N", N); - current_statement__ = 290; - validate_non_negative_index("y6", "N", N); - current_statement__ = 291; - validate_non_negative_index("y6", "N", N); - std::vector>> y6; - y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6, DUMMY_VAR__); - - current_statement__ = 293; - validate_non_negative_index("y7", "N", N); - current_statement__ = 294; - validate_non_negative_index("y7", "N", N); - current_statement__ = 295; - validate_non_negative_index("y7", "N", N); - std::vector>> y7; - y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7, DUMMY_VAR__); - - current_statement__ = 297; - validate_non_negative_index("y8", "N", N); - current_statement__ = 298; - validate_non_negative_index("y8", "N", N); - current_statement__ = 299; - validate_non_negative_index("y8", "N", N); - current_statement__ = 300; - validate_non_negative_index("y8", "N", N); - std::vector>> y8; - y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8, DUMMY_VAR__); - - local_scalar_t__ y9; - y9 = DUMMY_VAR__; - - current_statement__ = 303; - validate_non_negative_index("y10", "N", N); - Eigen::Matrix y10; - y10 = Eigen::Matrix(N); - stan::math::fill(y10, DUMMY_VAR__); - - current_statement__ = 305; - validate_non_negative_index("y11", "N", N); - Eigen::Matrix y11; - y11 = Eigen::Matrix(N); - stan::math::fill(y11, DUMMY_VAR__); - - current_statement__ = 307; - validate_non_negative_index("y12", "N", N); - current_statement__ = 308; - validate_non_negative_index("y12", "N", N); - Eigen::Matrix y12; - y12 = Eigen::Matrix(N, N); - stan::math::fill(y12, DUMMY_VAR__); - - current_statement__ = 310; - validate_non_negative_index("y17", "N", N); - current_statement__ = 311; - validate_non_negative_index("y17", "N", N); - current_statement__ = 312; - validate_non_negative_index("y17", "N", N); - std::vector>> y17; - y17 = std::vector>>(N, std::vector>(N, std::vector(N, DUMMY_VAR__))); - - - local_scalar_t__ t1; - t1 = DUMMY_VAR__; - - current_statement__ = 314; - t1 = reduce_sum(y1, 1, pstream__); - local_scalar_t__ t1a; - t1a = DUMMY_VAR__; - - current_statement__ = 315; - t1a = (reduce_sum(y1, 1, pstream__) + - reduce_sum(y1, 1, pstream__)); - local_scalar_t__ t2; - t2 = DUMMY_VAR__; - - current_statement__ = 316; - t2 = reduce_sum(y2, 1, pstream__); - local_scalar_t__ t3; - t3 = DUMMY_VAR__; - - current_statement__ = 317; - t3 = reduce_sum(y3, 1, pstream__); - local_scalar_t__ t4; - t4 = DUMMY_VAR__; - - current_statement__ = 318; - t4 = reduce_sum(y4, 1, pstream__); - local_scalar_t__ t5; - t5 = DUMMY_VAR__; - - current_statement__ = 319; - t5 = reduce_sum(y5, 1, pstream__); - local_scalar_t__ t6; - t6 = DUMMY_VAR__; - - current_statement__ = 320; - t6 = reduce_sum(y6, 1, pstream__); - local_scalar_t__ t7; - t7 = DUMMY_VAR__; - - current_statement__ = 321; - t7 = reduce_sum(y7, 1, pstream__); - local_scalar_t__ t8; - t8 = DUMMY_VAR__; - - current_statement__ = 322; - t8 = reduce_sum(y8, 1, pstream__); - local_scalar_t__ t9; - t9 = DUMMY_VAR__; - - current_statement__ = 323; - t9 = reduce_sum(y14d, 1, pstream__); - local_scalar_t__ t10; - t10 = DUMMY_VAR__; - - current_statement__ = 324; - t10 = reduce_sum(y15d, 1, pstream__); - local_scalar_t__ t11; - t11 = DUMMY_VAR__; - - current_statement__ = 325; - t11 = reduce_sum(y16d, 1, pstream__); - local_scalar_t__ t12; - t12 = DUMMY_VAR__; - - current_statement__ = 326; - t12 = reduce_sum(y17, 1, pstream__); - local_scalar_t__ tg1; - tg1 = DUMMY_VAR__; - - current_statement__ = 327; - tg1 = reduce_sum(y1, 1, pstream__, y9); - local_scalar_t__ tg2; - tg2 = DUMMY_VAR__; - - current_statement__ = 328; - tg2 = reduce_sum(y1, 1, pstream__, y10); - local_scalar_t__ tg3; - tg3 = DUMMY_VAR__; - - current_statement__ = 329; - tg3 = reduce_sum(y1, 1, pstream__, y11); - local_scalar_t__ tg4; - tg4 = DUMMY_VAR__; - - current_statement__ = 330; - tg4 = reduce_sum(y1, 1, pstream__, y12); - local_scalar_t__ tg5; - tg5 = DUMMY_VAR__; - - current_statement__ = 331; - tg5 = reduce_sum(y1, 1, pstream__, y1); - local_scalar_t__ tg6; - tg6 = DUMMY_VAR__; - - current_statement__ = 332; - tg6 = reduce_sum(y1, 1, pstream__, y2); - local_scalar_t__ tg7; - tg7 = DUMMY_VAR__; - - current_statement__ = 333; - tg7 = reduce_sum(y1, 1, pstream__, y3); - local_scalar_t__ tg8; - tg8 = DUMMY_VAR__; - - current_statement__ = 334; - tg8 = reduce_sum(y1, 1, pstream__, y4); - local_scalar_t__ tg9; - tg9 = DUMMY_VAR__; - - current_statement__ = 335; - tg9 = reduce_sum(y1, 1, pstream__, y5); - local_scalar_t__ tg10; - tg10 = DUMMY_VAR__; - - current_statement__ = 336; - tg10 = reduce_sum(y1, 1, pstream__, y6); - local_scalar_t__ tg11; - tg11 = DUMMY_VAR__; - - current_statement__ = 337; - tg11 = reduce_sum(y1, 1, pstream__, y7); - local_scalar_t__ tg12; - tg12 = DUMMY_VAR__; - - current_statement__ = 338; - tg12 = reduce_sum(y1, 1, pstream__, y8); - local_scalar_t__ ts; - ts = DUMMY_VAR__; - - current_statement__ = 339; - ts = reduce_sum(y1d, 1, pstream__, y13d, y9, y10, y11, - y12, y14d, y1, y2, y3, y4, y15d, y5, y6, y7, y8, y16d, y17); - current_statement__ = 340; - return 0.0; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "optimize_glm_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + Eigen::Matrix alpha_v; + alpha_v = Eigen::Matrix(k); + stan::math::fill(alpha_v, DUMMY_VAR__); + + current_statement__ = 1; + alpha_v = in__.template read>(k); + Eigen::Matrix beta; + beta = Eigen::Matrix(k); + stan::math::fill(beta, DUMMY_VAR__); + + current_statement__ = 2; + beta = in__.template read>(k); + Eigen::Matrix cuts; + cuts = Eigen::Matrix(k); + stan::math::fill(cuts, DUMMY_VAR__); + + current_statement__ = 3; + cuts = in__.template read>(k); + local_scalar_t__ sigma; + sigma = DUMMY_VAR__; + + current_statement__ = 4; + sigma = in__.template read_constrain_lb( + 0, lp__); + local_scalar_t__ alpha; + alpha = DUMMY_VAR__; + + current_statement__ = 5; + alpha = in__.template read(); + local_scalar_t__ phi; + phi = DUMMY_VAR__; + + current_statement__ = 6; + phi = in__.template read(); + Eigen::Matrix X_p; + X_p = Eigen::Matrix(n, k); + stan::math::fill(X_p, DUMMY_VAR__); + + current_statement__ = 7; + X_p = in__.template read>(n, k); + Eigen::Matrix beta_m; + beta_m = Eigen::Matrix(n, k); + stan::math::fill(beta_m, DUMMY_VAR__); + + current_statement__ = 8; + beta_m = in__.template read>(n, + k); + Eigen::Matrix X_rv_p; + X_rv_p = Eigen::Matrix(n); + stan::math::fill(X_rv_p, DUMMY_VAR__); + + current_statement__ = 9; + X_rv_p = in__.template read>(n); + { + current_statement__ = 10; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_d, alpha, beta, sigma)); + current_statement__ = 11; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_d, alpha, beta, sigma)); + current_statement__ = 12; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_p, alpha, beta, sigma)); + current_statement__ = 13; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_p, alpha, beta, sigma)); + current_statement__ = 14; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d, X_d, alpha, beta, beta)); + current_statement__ = 15; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d, X_d, alpha, beta, beta)); + current_statement__ = 16; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d, X_p, alpha, beta, beta)); + current_statement__ = 17; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d, X_p, alpha, beta, beta)); + current_statement__ = 18; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_rv_d, alpha, beta, beta)); + current_statement__ = 19; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_rv_d, alpha, beta, beta)); + current_statement__ = 20; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_rv_p, alpha, beta, beta)); + current_statement__ = 21; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, X_rv_p, alpha, beta, beta)); + current_statement__ = 22; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_d_td, alpha, beta, sigma)); + current_statement__ = 23; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_d_td, alpha, beta, sigma)); + current_statement__ = 24; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_p, alpha, beta, sigma)); + current_statement__ = 25; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_p, alpha, beta, sigma)); + current_statement__ = 26; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d_td, X_d_td, alpha, beta, beta)); + current_statement__ = 27; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d_td, X_d_td, alpha, beta, beta)); + current_statement__ = 28; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d_td, X_p, alpha, beta, beta)); + current_statement__ = 29; + lp_accum__.add( + normal_id_glm_lpdf(y_r_d_td, X_p, alpha, beta, beta)); + current_statement__ = 30; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_rv_d_td, alpha, beta, beta)); + current_statement__ = 31; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_rv_d_td, alpha, beta, + beta)); + current_statement__ = 32; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_rv_p, alpha, beta, beta)); + current_statement__ = 33; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d_td, X_rv_p, alpha, beta, beta)); + current_statement__ = 34; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_d, alpha, beta)); + current_statement__ = 35; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_d, alpha, beta)); + current_statement__ = 36; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_p, alpha, beta)); + current_statement__ = 37; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_p, alpha, beta)); + current_statement__ = 38; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); + current_statement__ = 39; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); + current_statement__ = 40; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); + current_statement__ = 41; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); + current_statement__ = 42; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d, X_d, alpha, beta)); + current_statement__ = 43; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d, X_d, alpha, beta)); + current_statement__ = 44; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d, X_p, alpha, beta)); + current_statement__ = 45; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d, X_p, alpha, beta)); + current_statement__ = 46; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); + current_statement__ = 47; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); + current_statement__ = 48; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); + current_statement__ = 49; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); + current_statement__ = 50; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, beta)); + current_statement__ = 51; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, + beta)); + current_statement__ = 52; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); + current_statement__ = 53; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); + current_statement__ = 54; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); + current_statement__ = 55; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); + current_statement__ = 56; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d_td, X_p, alpha, beta)); + current_statement__ = 57; + lp_accum__.add( + bernoulli_logit_glm_lpmf(y_s_d_td, X_p, alpha, beta)); + current_statement__ = 58; + lp_accum__.add(poisson_log_glm_lpmf(y_vi_d, X_d, alpha, beta)); + current_statement__ = 59; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d, X_d, alpha, beta)); + current_statement__ = 60; + lp_accum__.add(poisson_log_glm_lpmf(y_vi_d, X_p, alpha, beta)); + current_statement__ = 61; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d, X_p, alpha, beta)); + current_statement__ = 62; + lp_accum__.add(poisson_log_glm_lpmf(y_s_d, X_d, alpha, beta)); + current_statement__ = 63; + lp_accum__.add( + poisson_log_glm_lpmf(y_s_d, X_d, alpha, beta)); + current_statement__ = 64; + lp_accum__.add(poisson_log_glm_lpmf(y_s_d, X_p, alpha, beta)); + current_statement__ = 65; + lp_accum__.add( + poisson_log_glm_lpmf(y_s_d, X_p, alpha, beta)); + current_statement__ = 66; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); + current_statement__ = 67; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta)); + current_statement__ = 68; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); + current_statement__ = 69; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta)); + current_statement__ = 70; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); + current_statement__ = 71; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta)); + current_statement__ = 72; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); + current_statement__ = 73; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta)); + current_statement__ = 74; + lp_accum__.add( + poisson_log_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); + current_statement__ = 75; + lp_accum__.add( + poisson_log_glm_lpmf(y_s_d_td, X_d_td, alpha, beta)); + current_statement__ = 76; + lp_accum__.add( + poisson_log_glm_lpmf(y_s_d_td, X_p, alpha, beta)); + current_statement__ = 77; + lp_accum__.add( + poisson_log_glm_lpmf(y_s_d_td, X_p, alpha, beta)); + current_statement__ = 78; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, beta)); + current_statement__ = 79; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, beta)); + current_statement__ = 80; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); + current_statement__ = 81; + lp_accum__.add( + poisson_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta)); + current_statement__ = 82; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_d, alpha, beta, phi)); + current_statement__ = 83; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_d, alpha, beta, + phi)); + current_statement__ = 84; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_p, alpha, beta, phi)); + current_statement__ = 85; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_p, alpha, beta, + phi)); + current_statement__ = 86; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d, X_d, alpha, beta, phi)); + current_statement__ = 87; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d, X_d, alpha, beta, phi)); + current_statement__ = 88; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d, X_p, alpha, beta, phi)); + current_statement__ = 89; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d, X_p, alpha, beta, phi)); + current_statement__ = 90; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta, + phi)); + current_statement__ = 91; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_d, alpha, beta, + phi)); + current_statement__ = 92; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta, + phi)); + current_statement__ = 93; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d, X_rv_p, alpha, beta, + phi)); + current_statement__ = 94; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, beta, + phi)); + current_statement__ = 95; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_d_td, alpha, + beta, phi)); + current_statement__ = 96; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta, + phi)); + current_statement__ = 97; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_p, alpha, beta, + phi)); + current_statement__ = 98; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d_td, X_d_td, alpha, beta, + phi)); + current_statement__ = 99; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d_td, X_d_td, alpha, + beta, phi)); + current_statement__ = 100; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d_td, X_p, alpha, beta, phi)); + current_statement__ = 101; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_s_d_td, X_p, alpha, beta, + phi)); + current_statement__ = 102; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, + beta, phi)); + current_statement__ = 103; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha, + beta, phi)); + current_statement__ = 104; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, beta, + phi)); + current_statement__ = 105; + lp_accum__.add( + neg_binomial_2_log_glm_lpmf(y_vi_d_td, X_rv_p, alpha, + beta, phi)); + current_statement__ = 106; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); + current_statement__ = 107; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); + current_statement__ = 108; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); + current_statement__ = 109; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); + current_statement__ = 110; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); + current_statement__ = 111; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); + current_statement__ = 112; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); + current_statement__ = 113; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); + current_statement__ = 114; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); + current_statement__ = 115; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_d, beta, cuts)); + current_statement__ = 116; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); + current_statement__ = 117; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_p, beta, cuts)); + current_statement__ = 118; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); + current_statement__ = 119; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_d_td, beta, cuts)); + current_statement__ = 120; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); + current_statement__ = 121; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d_td, X_p, beta, cuts)); + current_statement__ = 122; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_rv_d, beta, cuts)); + current_statement__ = 123; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_rv_d, beta, cuts)); + current_statement__ = 124; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_rv_p, beta, cuts)); + current_statement__ = 125; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_s_d, X_rv_p, beta, cuts)); + current_statement__ = 126; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_d, beta, cuts)); + current_statement__ = 127; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_d, beta, cuts)); + current_statement__ = 128; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_p, beta, cuts)); + current_statement__ = 129; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_p, beta, cuts)); + current_statement__ = 130; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d_td, X_d_td, beta, cuts)); + current_statement__ = 131; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d_td, X_d_td, beta, cuts)); + current_statement__ = 132; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d_td, X_p, beta, cuts)); + current_statement__ = 133; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d_td, X_p, beta, cuts)); + current_statement__ = 134; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_rv_d, beta, cuts)); + current_statement__ = 135; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_rv_d, beta, cuts)); + current_statement__ = 136; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_rv_p, beta, cuts)); + current_statement__ = 137; + lp_accum__.add( + ordered_logistic_glm_lpmf(y_vi_d, X_rv_p, beta, cuts)); + current_statement__ = 138; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_d, alpha_v, beta_m)); + current_statement__ = 139; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_d, alpha_v, beta_m)); + current_statement__ = 140; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_p, alpha_v, beta_m)); + current_statement__ = 141; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_p, alpha_v, beta_m)); + current_statement__ = 142; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_d_td, alpha_v, + beta_m)); + current_statement__ = 143; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_d_td, alpha_v, + beta_m)); + current_statement__ = 144; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_p, alpha_v, beta_m)); + current_statement__ = 145; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_p, alpha_v, + beta_m)); + current_statement__ = 146; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_rv_d, alpha_v, beta_m)); + current_statement__ = 147; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_rv_d, alpha_v, + beta_m)); + current_statement__ = 148; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_rv_p, alpha_v, beta_m)); + current_statement__ = 149; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 150; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_rv_d_td, alpha_v, + beta_m)); + current_statement__ = 151; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_rv_d_td, alpha_v, + beta_m)); + current_statement__ = 152; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 153; + lp_accum__.add( + categorical_logit_glm_lpmf(y_s_d_td, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 154; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_d, alpha_v, beta_m)); + current_statement__ = 155; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_d, alpha_v, beta_m)); + current_statement__ = 156; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_p, alpha_v, beta_m)); + current_statement__ = 157; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_p, alpha_v, beta_m)); + current_statement__ = 158; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha_v, + beta_m)); + current_statement__ = 159; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_d_td, alpha_v, + beta_m)); + current_statement__ = 160; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_p, alpha_v, beta_m)); + current_statement__ = 161; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_p, alpha_v, + beta_m)); + current_statement__ = 162; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_rv_d, alpha_v, beta_m)); + current_statement__ = 163; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_rv_d, alpha_v, + beta_m)); + current_statement__ = 164; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_rv_p, alpha_v, beta_m)); + current_statement__ = 165; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 166; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha_v, + beta_m)); + current_statement__ = 167; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_rv_d_td, alpha_v, + beta_m)); + current_statement__ = 168; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 169; + lp_accum__.add( + categorical_logit_glm_lpmf(y_vi_d_td, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 170; + lp_accum__.add( + categorical_logit_glm_lpmf(y2_vi_d, X_rv_p, alpha_v, beta_m)); + current_statement__ = 171; + lp_accum__.add( + categorical_logit_glm_lpmf(y2_vi_d, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 172; + lp_accum__.add( + categorical_logit_glm_lpmf(y2_vi_d_td, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 173; + lp_accum__.add( + categorical_logit_glm_lpmf(y2_vi_d_td, X_rv_p, alpha_v, + beta_m)); + current_statement__ = 174; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, + rvalue(X_d_a, "X_d_a", index_uni(1)), alpha, beta, sigma)); + current_statement__ = 175; + lp_accum__.add( + normal_id_glm_lpdf(y_v_d, + rvalue(X_d_a, "X_d_a", index_uni(1)), alpha, beta, sigma)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -class reduce_sum_m3_model final : public model_base_crtp { - - private: - int N; - std::vector y1d; - std::vector> y2d; - std::vector> y3d; - std::vector> y4d; - std::vector> y5d; - std::vector>> y6d; - std::vector>> y7d; - std::vector>> y8d; - double y9d; - Eigen::Matrix y10d__; - Eigen::Matrix y11d__; - Eigen::Matrix y12d__; - int y13d; - std::vector y14d; - std::vector> y15d; - std::vector>> y16d; - std::vector>> y17d; - double td1; - double td1a; - double td2; - double td3; - double td4; - double td5; - double td6; - double td7; - double td8; - double td9; - double td10; - double td11; - double td12; - double tgd1; - double tgd2; - double tgd3; - double tgd4; - double tgd5; - double tgd6; - double tgd7; - double tgd8; - double tgd9; - double tgd10; - double tgd11; - double tgd12; - double tsd; - Eigen::Map> y10d{nullptr, 0}; - Eigen::Map> y11d{nullptr, 0}; - Eigen::Map> y12d{nullptr, 0, 0}; - - public: - ~reduce_sum_m3_model() { } - - inline std::string model_name() const final { return "reduce_sum_m3_model"; } - - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } - - - reduce_sum_m3_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m3_model_namespace::reduce_sum_m3_model"; - (void) function__; // suppress unused var warning + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "optimize_glm_model_namespace::write_array"; + (void) function__; // suppress unused var warning + try { - int pos__; - pos__ = std::numeric_limits::min(); - - pos__ = 1; - current_statement__ = 67; - context__.validate_dims("data initialization","N","int", - std::vector{}); - N = std::numeric_limits::min(); - - current_statement__ = 67; - N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 68; - validate_non_negative_index("y1d", "N", N); - current_statement__ = 69; - context__.validate_dims("data initialization","y1d","double", - std::vector{static_cast(N)}); - y1d = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 69; - y1d = context__.vals_r("y1d"); - current_statement__ = 70; - validate_non_negative_index("y2d", "N", N); - current_statement__ = 71; - validate_non_negative_index("y2d", "N", N); - current_statement__ = 72; - context__.validate_dims("data initialization","y2d","double", - std::vector{static_cast(N), - static_cast(N)}); - y2d = std::vector>(N, Eigen::Matrix(N)); - - - { - std::vector y2d_flat__; - current_statement__ = 72; - y2d_flat__ = context__.vals_r("y2d"); - current_statement__ = 72; - pos__ = 1; - current_statement__ = 72; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 72; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 72; - assign(y2d, y2d_flat__[(pos__ - 1)], - "assigning variable y2d", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 72; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 73; - validate_non_negative_index("y3d", "N", N); - current_statement__ = 74; - validate_non_negative_index("y3d", "N", N); - current_statement__ = 75; - context__.validate_dims("data initialization","y3d","double", - std::vector{static_cast(N), - static_cast(N)}); - y3d = std::vector>(N, Eigen::Matrix(N)); - + Eigen::Matrix alpha_v; + alpha_v = Eigen::Matrix(k); + stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); - { - std::vector y3d_flat__; - current_statement__ = 75; - y3d_flat__ = context__.vals_r("y3d"); - current_statement__ = 75; - pos__ = 1; - current_statement__ = 75; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 75; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 75; - assign(y3d, y3d_flat__[(pos__ - 1)], - "assigning variable y3d", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 75; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 76; - validate_non_negative_index("y4d", "N", N); - current_statement__ = 77; - validate_non_negative_index("y4d", "N", N); - current_statement__ = 78; - validate_non_negative_index("y4d", "N", N); - current_statement__ = 79; - context__.validate_dims("data initialization","y4d","double", - std::vector{static_cast(N), - static_cast(N), static_cast(N)}); - y4d = std::vector>(N, Eigen::Matrix(N, N)); + current_statement__ = 1; + alpha_v = in__.template read>(k); + Eigen::Matrix beta; + beta = Eigen::Matrix(k); + stan::math::fill(beta, std::numeric_limits::quiet_NaN()); + current_statement__ = 2; + beta = in__.template read>(k); + Eigen::Matrix cuts; + cuts = Eigen::Matrix(k); + stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); - { - std::vector y4d_flat__; - current_statement__ = 79; - y4d_flat__ = context__.vals_r("y4d"); - current_statement__ = 79; - pos__ = 1; - current_statement__ = 79; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 79; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 79; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 79; - assign(y4d, y4d_flat__[(pos__ - 1)], - "assigning variable y4d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 79; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 80; - validate_non_negative_index("y5d", "N", N); - current_statement__ = 81; - validate_non_negative_index("y5d", "N", N); - current_statement__ = 82; - context__.validate_dims("data initialization","y5d","double", - std::vector{static_cast(N), - static_cast(N)}); - y5d = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + current_statement__ = 3; + cuts = in__.template read>(k); + double sigma; + sigma = std::numeric_limits::quiet_NaN(); + current_statement__ = 4; + sigma = in__.template read_constrain_lb( + 0, lp__); + double alpha; + alpha = std::numeric_limits::quiet_NaN(); - { - std::vector y5d_flat__; - current_statement__ = 82; - y5d_flat__ = context__.vals_r("y5d"); - current_statement__ = 82; - pos__ = 1; - current_statement__ = 82; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 82; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 82; - assign(y5d, y5d_flat__[(pos__ - 1)], - "assigning variable y5d", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 82; - pos__ = (pos__ + 1); - } - } - } - current_statement__ = 83; - validate_non_negative_index("y6d", "N", N); - current_statement__ = 84; - validate_non_negative_index("y6d", "N", N); - current_statement__ = 85; - validate_non_negative_index("y6d", "N", N); - current_statement__ = 86; - context__.validate_dims("data initialization","y6d","double", - std::vector{static_cast(N), - static_cast(N), static_cast(N)}); - y6d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + current_statement__ = 5; + alpha = in__.template read(); + double phi; + phi = std::numeric_limits::quiet_NaN(); + current_statement__ = 6; + phi = in__.template read(); + Eigen::Matrix X_p; + X_p = Eigen::Matrix(n, k); + stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); - { - std::vector y6d_flat__; - current_statement__ = 86; - y6d_flat__ = context__.vals_r("y6d"); - current_statement__ = 86; - pos__ = 1; - current_statement__ = 86; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 86; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 86; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 86; - assign(y6d, y6d_flat__[(pos__ - 1)], - "assigning variable y6d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 86; - pos__ = (pos__ + 1); - } - } - } - } - current_statement__ = 87; - validate_non_negative_index("y7d", "N", N); - current_statement__ = 88; - validate_non_negative_index("y7d", "N", N); - current_statement__ = 89; - validate_non_negative_index("y7d", "N", N); - current_statement__ = 90; - context__.validate_dims("data initialization","y7d","double", - std::vector{static_cast(N), - static_cast(N), static_cast(N)}); - y7d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + current_statement__ = 7; + X_p = in__.template read>(n, k); + Eigen::Matrix beta_m; + beta_m = Eigen::Matrix(n, k); + stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); + current_statement__ = 8; + beta_m = in__.template read>(n, + k); + Eigen::Matrix X_rv_p; + X_rv_p = Eigen::Matrix(n); + stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); - { - std::vector y7d_flat__; - current_statement__ = 90; - y7d_flat__ = context__.vals_r("y7d"); - current_statement__ = 90; - pos__ = 1; - current_statement__ = 90; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 90; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 90; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 90; - assign(y7d, y7d_flat__[(pos__ - 1)], - "assigning variable y7d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 90; - pos__ = (pos__ + 1); - } - } + current_statement__ = 9; + X_rv_p = in__.template read>(n); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(alpha_v[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(beta[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(cuts[(sym1__ - 1)]); + } + vars__.emplace_back(sigma); + vars__.emplace_back(alpha); + vars__.emplace_back(phi); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(X_p, "X_p", index_uni(sym2__), index_uni(sym1__))); } } - current_statement__ = 91; - validate_non_negative_index("y8d", "N", N); - current_statement__ = 92; - validate_non_negative_index("y8d", "N", N); - current_statement__ = 93; - validate_non_negative_index("y8d", "N", N); - current_statement__ = 94; - validate_non_negative_index("y8d", "N", N); - current_statement__ = 95; - context__.validate_dims("data initialization","y8d","double", - std::vector{static_cast(N), - static_cast(N), static_cast(N), - static_cast(N)}); - y8d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - - - { - std::vector y8d_flat__; - current_statement__ = 95; - y8d_flat__ = context__.vals_r("y8d"); - current_statement__ = 95; - pos__ = 1; - current_statement__ = 95; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 95; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 95; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 95; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 95; - assign(y8d, y8d_flat__[(pos__ - 1)], - "assigning variable y8d", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 95; - pos__ = (pos__ + 1); - } - } - } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(beta_m, "beta_m", index_uni(sym2__), index_uni(sym1__))); } } - current_statement__ = 96; - context__.validate_dims("data initialization","y9d","double", - std::vector{}); - y9d = std::numeric_limits::quiet_NaN(); + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + vars__.emplace_back(X_rv_p[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); - current_statement__ = 96; - y9d = context__.vals_r("y9d")[(1 - 1)]; - current_statement__ = 97; - validate_non_negative_index("y10d", "N", N); - current_statement__ = 98; - context__.validate_dims("data initialization","y10d","double", - std::vector{static_cast(N)}); - y10d__ = Eigen::Matrix(N); - new (&y10d) Eigen::Map>(y10d__.data(), N); + pos__ = 1; + Eigen::Matrix alpha_v; + alpha_v = Eigen::Matrix(k); + stan::math::fill(alpha_v, std::numeric_limits::quiet_NaN()); { - std::vector y10d_flat__; - current_statement__ = 98; - y10d_flat__ = context__.vals_r("y10d"); - current_statement__ = 98; + std::vector alpha_v_flat__; + current_statement__ = 1; + alpha_v_flat__ = context__.vals_r("alpha_v"); + current_statement__ = 1; pos__ = 1; - current_statement__ = 98; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 98; - assign(y10d, y10d_flat__[(pos__ - 1)], - "assigning variable y10d", index_uni(sym1__)); - current_statement__ = 98; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 1; + assign(alpha_v, alpha_v_flat__[(pos__ - 1)], + "assigning variable alpha_v", index_uni(sym1__)); + current_statement__ = 1; pos__ = (pos__ + 1); } } - current_statement__ = 99; - validate_non_negative_index("y11d", "N", N); - current_statement__ = 100; - context__.validate_dims("data initialization","y11d","double", - std::vector{static_cast(N)}); - y11d__ = Eigen::Matrix(N); - new (&y11d) Eigen::Map>(y11d__.data(), N); + Eigen::Matrix beta; + beta = Eigen::Matrix(k); + stan::math::fill(beta, std::numeric_limits::quiet_NaN()); { - std::vector y11d_flat__; - current_statement__ = 100; - y11d_flat__ = context__.vals_r("y11d"); - current_statement__ = 100; + std::vector beta_flat__; + current_statement__ = 2; + beta_flat__ = context__.vals_r("beta"); + current_statement__ = 2; pos__ = 1; - current_statement__ = 100; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 100; - assign(y11d, y11d_flat__[(pos__ - 1)], - "assigning variable y11d", index_uni(sym1__)); - current_statement__ = 100; + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 2; + assign(beta, beta_flat__[(pos__ - 1)], + "assigning variable beta", index_uni(sym1__)); + current_statement__ = 2; pos__ = (pos__ + 1); } } - current_statement__ = 101; - validate_non_negative_index("y12d", "N", N); - current_statement__ = 102; - validate_non_negative_index("y12d", "N", N); - current_statement__ = 103; - context__.validate_dims("data initialization","y12d","double", - std::vector{static_cast(N), - static_cast(N)}); - y12d__ = Eigen::Matrix(N, N); - new (&y12d) Eigen::Map>(y12d__.data(), N, N); - + Eigen::Matrix cuts; + cuts = Eigen::Matrix(k); + stan::math::fill(cuts, std::numeric_limits::quiet_NaN()); { - std::vector y12d_flat__; - current_statement__ = 103; - y12d_flat__ = context__.vals_r("y12d"); - current_statement__ = 103; + std::vector cuts_flat__; + current_statement__ = 3; + cuts_flat__ = context__.vals_r("cuts"); + current_statement__ = 3; pos__ = 1; - current_statement__ = 103; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 103; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 103; - assign(y12d, y12d_flat__[(pos__ - 1)], - "assigning variable y12d", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 103; - pos__ = (pos__ + 1); - } + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 3; + assign(cuts, cuts_flat__[(pos__ - 1)], + "assigning variable cuts", index_uni(sym1__)); + current_statement__ = 3; + pos__ = (pos__ + 1); } } - current_statement__ = 104; - context__.validate_dims("data initialization","y13d","int", - std::vector{}); - y13d = std::numeric_limits::min(); + double sigma; + sigma = std::numeric_limits::quiet_NaN(); - current_statement__ = 104; - y13d = context__.vals_i("y13d")[(1 - 1)]; - current_statement__ = 105; - validate_non_negative_index("y14d", "N", N); - current_statement__ = 106; - context__.validate_dims("data initialization","y14d","int", - std::vector{static_cast(N)}); - y14d = std::vector(N, std::numeric_limits::min()); + current_statement__ = 4; + sigma = context__.vals_r("sigma")[(1 - 1)]; + double sigma_free__; + sigma_free__ = std::numeric_limits::quiet_NaN(); - current_statement__ = 106; - y14d = context__.vals_i("y14d"); - current_statement__ = 107; - validate_non_negative_index("y15d", "N", N); - current_statement__ = 108; - validate_non_negative_index("y15d", "N", N); - current_statement__ = 109; - context__.validate_dims("data initialization","y15d","int", - std::vector{static_cast(N), - static_cast(N)}); - y15d = std::vector>(N, std::vector(N, std::numeric_limits::min())); + current_statement__ = 4; + sigma_free__ = stan::math::lb_free(sigma, 0); + double alpha; + alpha = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + alpha = context__.vals_r("alpha")[(1 - 1)]; + double phi; + phi = std::numeric_limits::quiet_NaN(); + current_statement__ = 6; + phi = context__.vals_r("phi")[(1 - 1)]; + Eigen::Matrix X_p; + X_p = Eigen::Matrix(n, k); + stan::math::fill(X_p, std::numeric_limits::quiet_NaN()); { - std::vector y15d_flat__; - current_statement__ = 109; - y15d_flat__ = context__.vals_i("y15d"); - current_statement__ = 109; + std::vector X_p_flat__; + current_statement__ = 7; + X_p_flat__ = context__.vals_r("X_p"); + current_statement__ = 7; pos__ = 1; - current_statement__ = 109; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 109; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 109; - assign(y15d, y15d_flat__[(pos__ - 1)], - "assigning variable y15d", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 109; + current_statement__ = 7; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 7; + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + current_statement__ = 7; + assign(X_p, X_p_flat__[(pos__ - 1)], + "assigning variable X_p", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 7; pos__ = (pos__ + 1); } } } - current_statement__ = 110; - validate_non_negative_index("y16d", "N", N); - current_statement__ = 111; - validate_non_negative_index("y16d", "N", N); - current_statement__ = 112; - validate_non_negative_index("y16d", "N", N); - current_statement__ = 113; - context__.validate_dims("data initialization","y16d","int", - std::vector{static_cast(N), - static_cast(N), static_cast(N)}); - y16d = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::min()))); - + Eigen::Matrix beta_m; + beta_m = Eigen::Matrix(n, k); + stan::math::fill(beta_m, std::numeric_limits::quiet_NaN()); { - std::vector y16d_flat__; - current_statement__ = 113; - y16d_flat__ = context__.vals_i("y16d"); - current_statement__ = 113; + std::vector beta_m_flat__; + current_statement__ = 8; + beta_m_flat__ = context__.vals_r("beta_m"); + current_statement__ = 8; pos__ = 1; - current_statement__ = 113; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 113; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 113; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 113; - assign(y16d, y16d_flat__[(pos__ - 1)], - "assigning variable y16d", index_uni(sym3__), - index_uni(sym2__), + current_statement__ = 8; + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + current_statement__ = 8; + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + current_statement__ = 8; + assign(beta_m, beta_m_flat__[(pos__ - 1)], + "assigning variable beta_m", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 113; - pos__ = (pos__ + 1); - } + current_statement__ = 8; + pos__ = (pos__ + 1); } } } - current_statement__ = 114; - validate_non_negative_index("y17d", "N", N); - current_statement__ = 115; - validate_non_negative_index("y17d", "N", N); - current_statement__ = 116; - validate_non_negative_index("y17d", "N", N); - current_statement__ = 117; - context__.validate_dims("data initialization","y17d","double", - std::vector{static_cast(N), - static_cast(N), static_cast(N)}); - y17d = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN()))); - + Eigen::Matrix X_rv_p; + X_rv_p = Eigen::Matrix(n); + stan::math::fill(X_rv_p, std::numeric_limits::quiet_NaN()); { - std::vector y17d_flat__; - current_statement__ = 117; - y17d_flat__ = context__.vals_r("y17d"); - current_statement__ = 117; + std::vector X_rv_p_flat__; + current_statement__ = 9; + X_rv_p_flat__ = context__.vals_r("X_rv_p"); + current_statement__ = 9; pos__ = 1; - current_statement__ = 117; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 117; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 117; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 117; - assign(y17d, y17d_flat__[(pos__ - 1)], - "assigning variable y17d", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 117; - pos__ = (pos__ + 1); - } - } + current_statement__ = 9; + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + current_statement__ = 9; + assign(X_rv_p, X_rv_p_flat__[(pos__ - 1)], + "assigning variable X_rv_p", index_uni(sym1__)); + current_statement__ = 9; + pos__ = (pos__ + 1); } } - current_statement__ = 118; - td1 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 118; - td1 = reduce_sum(y1d, 1, pstream__); - current_statement__ = 119; - td1a = std::numeric_limits::quiet_NaN(); - - current_statement__ = 119; - td1a = (reduce_sum(y1d, 1, pstream__) + - reduce_sum(y1d, 1, pstream__)); - current_statement__ = 120; - td2 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 120; - td2 = reduce_sum(y2d, 1, pstream__); - current_statement__ = 121; - td3 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 121; - td3 = reduce_sum(y3d, 1, pstream__); - current_statement__ = 122; - td4 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 122; - td4 = reduce_sum(y4d, 1, pstream__); - current_statement__ = 123; - td5 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 123; - td5 = reduce_sum(y5d, 1, pstream__); - current_statement__ = 124; - td6 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 124; - td6 = reduce_sum(y6d, 1, pstream__); - current_statement__ = 125; - td7 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 125; - td7 = reduce_sum(y7d, 1, pstream__); - current_statement__ = 126; - td8 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 126; - td8 = reduce_sum(y8d, 1, pstream__); - current_statement__ = 127; - td9 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 127; - td9 = reduce_sum(y14d, 1, pstream__); - current_statement__ = 128; - td10 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 128; - td10 = reduce_sum(y15d, 1, pstream__); - current_statement__ = 129; - td11 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 129; - td11 = reduce_sum(y16d, 1, pstream__); - current_statement__ = 130; - td12 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 130; - td12 = reduce_sum(y17d, 1, pstream__); - current_statement__ = 131; - tgd1 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 131; - tgd1 = reduce_sum(y1d, 1, pstream__, y9d); - current_statement__ = 132; - tgd2 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 132; - tgd2 = reduce_sum(y1d, 1, pstream__, y10d); - current_statement__ = 133; - tgd3 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 133; - tgd3 = reduce_sum(y1d, 1, pstream__, y11d); - current_statement__ = 134; - tgd4 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 134; - tgd4 = reduce_sum(y1d, 1, pstream__, y12d); - current_statement__ = 135; - tgd5 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 135; - tgd5 = reduce_sum(y1d, 1, pstream__, y1d); - current_statement__ = 136; - tgd6 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 136; - tgd6 = reduce_sum(y1d, 1, pstream__, y2d); - current_statement__ = 137; - tgd7 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 137; - tgd7 = reduce_sum(y1d, 1, pstream__, y3d); - current_statement__ = 138; - tgd8 = std::numeric_limits::quiet_NaN(); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(alpha_v[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(beta[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + vars__.emplace_back(cuts[(sym1__ - 1)]); + } + vars__.emplace_back(sigma_free__); + vars__.emplace_back(alpha); + vars__.emplace_back(phi); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(X_p, "X_p", index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + vars__.emplace_back( + rvalue(beta_m, "beta_m", index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + vars__.emplace_back(X_rv_p[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"alpha_v", "beta", "cuts", "sigma", + "alpha", "phi", "X_p", "beta_m", "X_rv_p"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{ + static_cast(k) + }, + std::vector{static_cast(k)}, + std::vector{static_cast(k)}, std::vector{ + }, std::vector{}, std::vector{}, + std::vector{static_cast(n), static_cast(k)}, + std::vector{static_cast(n), static_cast(k)}, + std::vector{static_cast(n)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); + } + } + param_names__.emplace_back(std::string() + "sigma"); + param_names__.emplace_back(std::string() + "alpha"); + param_names__.emplace_back(std::string() + "phi"); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + { + param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { - current_statement__ = 138; - tgd8 = reduce_sum(y1d, 1, pstream__, y4d); - current_statement__ = 139; - tgd9 = std::numeric_limits::quiet_NaN(); + } + + if (emit_generated_quantities__) { - current_statement__ = 139; - tgd9 = reduce_sum(y1d, 1, pstream__, y5d); - current_statement__ = 140; - tgd10 = std::numeric_limits::quiet_NaN(); + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "alpha_v" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "beta" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + param_names__.emplace_back(std::string() + "cuts" + '.' + std::to_string(sym1__)); + } + } + param_names__.emplace_back(std::string() + "sigma"); + param_names__.emplace_back(std::string() + "alpha"); + param_names__.emplace_back(std::string() + "phi"); + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "X_p" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= k; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= n; ++sym2__) { + { + param_names__.emplace_back(std::string() + "beta_m" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= n; ++sym1__) { + { + param_names__.emplace_back(std::string() + "X_rv_p" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { - current_statement__ = 140; - tgd10 = reduce_sum(y1d, 1, pstream__, y6d); - current_statement__ = 141; - tgd11 = std::numeric_limits::quiet_NaN(); + } + + if (emit_generated_quantities__) { - current_statement__ = 141; - tgd11 = reduce_sum(y1d, 1, pstream__, y7d); - current_statement__ = 142; - tgd12 = std::numeric_limits::quiet_NaN(); + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(n) + "},\"block\":\"parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"alpha_v\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"cuts\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"sigma\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"alpha\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"phi\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"X_p\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"beta_m\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(n) + ",\"cols\":" + std::to_string(k) + "},\"block\":\"parameters\"},{\"name\":\"X_rv_p\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(n) + "},\"block\":\"parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = optimize_glm_model_namespace::optimize_glm_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return optimize_glm_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../install/default/bin/stanc --print-cpp param-constraint.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace param_constraint_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'param-constraint.stan', line 7, column 2 to column 38)", + " (in 'param-constraint.stan', line 8, column 2 to column 38)", + " (in 'param-constraint.stan', line 2, column 2 to column 9)", + " (in 'param-constraint.stan', line 3, column 2 to column 9)", + " (in 'param-constraint.stan', line 7, column 34 to column 36)", + " (in 'param-constraint.stan', line 8, column 31 to column 33)"}; + + + +class param_constraint_model final : public model_base_crtp { + + private: + int nt; + int NS; + + + public: + ~param_constraint_model() { } + + inline std::string model_name() const final { return "param_constraint_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + param_constraint_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "param_constraint_model_namespace::param_constraint_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); - current_statement__ = 142; - tgd12 = reduce_sum(y1d, 1, pstream__, y8d); - current_statement__ = 143; - tsd = std::numeric_limits::quiet_NaN(); + pos__ = 1; + current_statement__ = 3; + context__.validate_dims("data initialization","nt","int", + std::vector{}); + nt = std::numeric_limits::min(); - current_statement__ = 143; - tsd = reduce_sum(y1d, 1, pstream__, y13d, y9d, y10d, - y11d, y12d, y14d, y1d, y2d, y3d, y4d, y15d, y5d, y6d, y7d, y8d, - y16d, y17d); - current_statement__ = 144; - validate_non_negative_index("y1", "N", N); - current_statement__ = 145; - validate_non_negative_index("y2", "N", N); - current_statement__ = 146; - validate_non_negative_index("y2", "N", N); - current_statement__ = 147; - validate_non_negative_index("y3", "N", N); - current_statement__ = 148; - validate_non_negative_index("y3", "N", N); - current_statement__ = 149; - validate_non_negative_index("y4", "N", N); - current_statement__ = 150; - validate_non_negative_index("y4", "N", N); - current_statement__ = 151; - validate_non_negative_index("y4", "N", N); - current_statement__ = 152; - validate_non_negative_index("y5", "N", N); - current_statement__ = 153; - validate_non_negative_index("y5", "N", N); - current_statement__ = 154; - validate_non_negative_index("y6", "N", N); - current_statement__ = 155; - validate_non_negative_index("y6", "N", N); - current_statement__ = 156; - validate_non_negative_index("y6", "N", N); - current_statement__ = 157; - validate_non_negative_index("y7", "N", N); - current_statement__ = 158; - validate_non_negative_index("y7", "N", N); - current_statement__ = 159; - validate_non_negative_index("y7", "N", N); - current_statement__ = 160; - validate_non_negative_index("y8", "N", N); - current_statement__ = 161; - validate_non_negative_index("y8", "N", N); - current_statement__ = 162; - validate_non_negative_index("y8", "N", N); - current_statement__ = 163; - validate_non_negative_index("y8", "N", N); - current_statement__ = 164; - validate_non_negative_index("y10", "N", N); - current_statement__ = 165; - validate_non_negative_index("y11", "N", N); - current_statement__ = 166; - validate_non_negative_index("y12", "N", N); - current_statement__ = 167; - validate_non_negative_index("y12", "N", N); - current_statement__ = 168; - validate_non_negative_index("y17", "N", N); - current_statement__ = 169; - validate_non_negative_index("y17", "N", N); - current_statement__ = 170; - validate_non_negative_index("y17", "N", N); + current_statement__ = 3; + nt = context__.vals_i("nt")[(1 - 1)]; + current_statement__ = 4; + context__.validate_dims("data initialization","NS","int", + std::vector{}); + NS = std::numeric_limits::min(); + + current_statement__ = 4; + NS = context__.vals_i("NS")[(1 - 1)]; + current_statement__ = 5; + validate_non_negative_index("L_Omega", "nt", nt); + current_statement__ = 6; + validate_non_negative_index("z1", "NS", NS); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - num_params_r__ = N + (N * N) + (N * N) + (N * N * N) + (N * N) - + (N * N * N) + (N * N * N) + (N * N * N * N) + 1 + N + N + (N * N) - + (N * N * N); + num_params_r__ = (nt * ((2 * (2 - 1)) / 2)) + NS; } @@ -31946,233 +20348,25 @@ class reduce_sum_m3_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m3_model_namespace::log_prob"; + static constexpr const char* function__ = "param_constraint_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { - std::vector y1; - y1 = std::vector(N, DUMMY_VAR__); + std::vector> L_Omega; + L_Omega = std::vector>(nt, Eigen::Matrix(2, 2)); + stan::math::fill(L_Omega, DUMMY_VAR__); current_statement__ = 1; - y1 = in__.template read>(N); - std::vector> y2; - y2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2, DUMMY_VAR__); + L_Omega = in__.template read_constrain_cholesky_factor_corr>, jacobian__>( + lp__, nt, 2); + Eigen::Matrix z1; + z1 = Eigen::Matrix(NS); + stan::math::fill(z1, DUMMY_VAR__); current_statement__ = 2; - y2 = in__.template read>>( - N, N); - std::vector> y3; - y3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3, DUMMY_VAR__); - - current_statement__ = 3; - y3 = in__.template read>>( - N, N); - std::vector> y4; - y4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4, DUMMY_VAR__); - - current_statement__ = 4; - y4 = in__.template read>>( - N, N, N); - std::vector> y5; - y5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); - - - current_statement__ = 5; - y5 = in__.template read>>(N, - N); - std::vector>> y6; - y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6, DUMMY_VAR__); - - current_statement__ = 6; - y6 = in__.template read>>>( - N, N, N); - std::vector>> y7; - y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7, DUMMY_VAR__); - - current_statement__ = 7; - y7 = in__.template read>>>( - N, N, N); - std::vector>> y8; - y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8, DUMMY_VAR__); - - current_statement__ = 8; - y8 = in__.template read>>>( - N, N, N, N); - local_scalar_t__ y9; - y9 = DUMMY_VAR__; - - current_statement__ = 9; - y9 = in__.template read(); - Eigen::Matrix y10; - y10 = Eigen::Matrix(N); - stan::math::fill(y10, DUMMY_VAR__); - - current_statement__ = 10; - y10 = in__.template read>(N); - Eigen::Matrix y11; - y11 = Eigen::Matrix(N); - stan::math::fill(y11, DUMMY_VAR__); - - current_statement__ = 11; - y11 = in__.template read>(N); - Eigen::Matrix y12; - y12 = Eigen::Matrix(N, N); - stan::math::fill(y12, DUMMY_VAR__); - - current_statement__ = 12; - y12 = in__.template read>(N, N); - std::vector>> y17; - y17 = std::vector>>(N, std::vector>(N, std::vector(N, DUMMY_VAR__))); - - - current_statement__ = 13; - y17 = in__.template read>>>( - N, N, N); - { - local_scalar_t__ t1; - t1 = DUMMY_VAR__; - - current_statement__ = 40; - t1 = reduce_sum(y1, 1, pstream__); - local_scalar_t__ t1a; - t1a = DUMMY_VAR__; - - current_statement__ = 41; - t1a = (reduce_sum(y1, 1, pstream__) + - reduce_sum(y1, 1, pstream__)); - local_scalar_t__ t2; - t2 = DUMMY_VAR__; - - current_statement__ = 42; - t2 = reduce_sum(y2, 1, pstream__); - local_scalar_t__ t3; - t3 = DUMMY_VAR__; - - current_statement__ = 43; - t3 = reduce_sum(y3, 1, pstream__); - local_scalar_t__ t4; - t4 = DUMMY_VAR__; - - current_statement__ = 44; - t4 = reduce_sum(y4, 1, pstream__); - local_scalar_t__ t5; - t5 = DUMMY_VAR__; - - current_statement__ = 45; - t5 = reduce_sum(y5, 1, pstream__); - local_scalar_t__ t6; - t6 = DUMMY_VAR__; - - current_statement__ = 46; - t6 = reduce_sum(y6, 1, pstream__); - local_scalar_t__ t7; - t7 = DUMMY_VAR__; - - current_statement__ = 47; - t7 = reduce_sum(y7, 1, pstream__); - local_scalar_t__ t8; - t8 = DUMMY_VAR__; - - current_statement__ = 48; - t8 = reduce_sum(y8, 1, pstream__); - local_scalar_t__ t9; - t9 = DUMMY_VAR__; - - current_statement__ = 49; - t9 = reduce_sum(y14d, 1, pstream__); - local_scalar_t__ t10; - t10 = DUMMY_VAR__; - - current_statement__ = 50; - t10 = reduce_sum(y15d, 1, pstream__); - local_scalar_t__ t11; - t11 = DUMMY_VAR__; - - current_statement__ = 51; - t11 = reduce_sum(y16d, 1, pstream__); - local_scalar_t__ t12; - t12 = DUMMY_VAR__; - - current_statement__ = 52; - t12 = reduce_sum(y17, 1, pstream__); - local_scalar_t__ tg1; - tg1 = DUMMY_VAR__; - - current_statement__ = 53; - tg1 = reduce_sum(y1, 1, pstream__, y9); - local_scalar_t__ tg2; - tg2 = DUMMY_VAR__; - - current_statement__ = 54; - tg2 = reduce_sum(y1, 1, pstream__, y10); - local_scalar_t__ tg3; - tg3 = DUMMY_VAR__; - - current_statement__ = 55; - tg3 = reduce_sum(y1, 1, pstream__, y11); - local_scalar_t__ tg4; - tg4 = DUMMY_VAR__; - - current_statement__ = 56; - tg4 = reduce_sum(y1, 1, pstream__, y12); - local_scalar_t__ tg5; - tg5 = DUMMY_VAR__; - - current_statement__ = 57; - tg5 = reduce_sum(y1, 1, pstream__, y1); - local_scalar_t__ tg6; - tg6 = DUMMY_VAR__; - - current_statement__ = 58; - tg6 = reduce_sum(y1, 1, pstream__, y2); - local_scalar_t__ tg7; - tg7 = DUMMY_VAR__; - - current_statement__ = 59; - tg7 = reduce_sum(y1, 1, pstream__, y3); - local_scalar_t__ tg8; - tg8 = DUMMY_VAR__; - - current_statement__ = 60; - tg8 = reduce_sum(y1, 1, pstream__, y4); - local_scalar_t__ tg9; - tg9 = DUMMY_VAR__; - - current_statement__ = 61; - tg9 = reduce_sum(y1, 1, pstream__, y5); - local_scalar_t__ tg10; - tg10 = DUMMY_VAR__; - - current_statement__ = 62; - tg10 = reduce_sum(y1, 1, pstream__, y6); - local_scalar_t__ tg11; - tg11 = DUMMY_VAR__; - - current_statement__ = 63; - tg11 = reduce_sum(y1, 1, pstream__, y7); - local_scalar_t__ tg12; - tg12 = DUMMY_VAR__; - - current_statement__ = 64; - tg12 = reduce_sum(y1, 1, pstream__, y8); - local_scalar_t__ ts; - ts = DUMMY_VAR__; - - current_statement__ = 65; - ts = reduce_sum(y1d, 1, pstream__, y13d, y9, y10, y11, - y12, y14d, y1, y2, y3, y4, y15d, y5, y6, y7, y8, y16d, y17); - local_scalar_t__ tt; - tt = DUMMY_VAR__; - - current_statement__ = 66; - tt = r(pstream__); - } + z1 = in__.template read_constrain_lb, jacobian__>( + rvalue(L_Omega, "L_Omega", + index_uni(1), index_uni(1), index_uni(2)), lp__, NS); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -32203,336 +20397,44 @@ class reduce_sum_m3_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "reduce_sum_m3_model_namespace::write_array"; + static constexpr const char* function__ = "param_constraint_model_namespace::write_array"; (void) function__; // suppress unused var warning try { - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + std::vector> L_Omega; + L_Omega = std::vector>(nt, Eigen::Matrix(2, 2)); + stan::math::fill(L_Omega, std::numeric_limits::quiet_NaN()); current_statement__ = 1; - y1 = in__.template read>(N); - std::vector> y2; - y2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2, std::numeric_limits::quiet_NaN()); + L_Omega = in__.template read_constrain_cholesky_factor_corr>, jacobian__>( + lp__, nt, 2); + Eigen::Matrix z1; + z1 = Eigen::Matrix(NS); + stan::math::fill(z1, std::numeric_limits::quiet_NaN()); current_statement__ = 2; - y2 = in__.template read>>( - N, N); - std::vector> y3; - y3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3, std::numeric_limits::quiet_NaN()); - - current_statement__ = 3; - y3 = in__.template read>>( - N, N); - std::vector> y4; - y4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4, std::numeric_limits::quiet_NaN()); - - current_statement__ = 4; - y4 = in__.template read>>( - N, N, N); - std::vector> y5; - y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); - - - current_statement__ = 5; - y5 = in__.template read>>(N, - N); - std::vector>> y6; - y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6, std::numeric_limits::quiet_NaN()); - - current_statement__ = 6; - y6 = in__.template read>>>( - N, N, N); - std::vector>> y7; - y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7, std::numeric_limits::quiet_NaN()); - - current_statement__ = 7; - y7 = in__.template read>>>( - N, N, N); - std::vector>> y8; - y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8, std::numeric_limits::quiet_NaN()); - - current_statement__ = 8; - y8 = in__.template read>>>( - N, N, N, N); - double y9; - y9 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 9; - y9 = in__.template read(); - Eigen::Matrix y10; - y10 = Eigen::Matrix(N); - stan::math::fill(y10, std::numeric_limits::quiet_NaN()); - - current_statement__ = 10; - y10 = in__.template read>(N); - Eigen::Matrix y11; - y11 = Eigen::Matrix(N); - stan::math::fill(y11, std::numeric_limits::quiet_NaN()); - - current_statement__ = 11; - y11 = in__.template read>(N); - Eigen::Matrix y12; - y12 = Eigen::Matrix(N, N); - stan::math::fill(y12, std::numeric_limits::quiet_NaN()); - - current_statement__ = 12; - y12 = in__.template read>(N, N); - std::vector>> y17; - y17 = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN()))); - - - current_statement__ = 13; - y17 = in__.template read>>>( - N, N, N); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y2[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y3[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + z1 = in__.template read_constrain_lb, jacobian__>( + rvalue(L_Omega, "L_Omega", + index_uni(1), index_uni(1), index_uni(2)), lp__, NS); + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + for (int sym3__ = 1; sym3__ <= nt; ++sym3__) { vars__.emplace_back( - rvalue(y4, "y4", + rvalue(L_Omega, "L_Omega", index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y5[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y6[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y7[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - rvalue(y8, "y8", - index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), - index_uni(sym1__))); - } - } - } - } - vars__.emplace_back(y9); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y10[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y11[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back( - rvalue(y12, "y12", index_uni(sym2__), index_uni(sym1__))); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y17[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); - } - } + for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { + vars__.emplace_back(z1[(sym1__ - 1)]); } if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; - } - if (logical_negation(emit_generated_quantities__)) { - return ; - } - double t1; - t1 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 14; - t1 = reduce_sum(y1, 1, pstream__); - double t1a; - t1a = std::numeric_limits::quiet_NaN(); - - current_statement__ = 15; - t1a = (reduce_sum(y1, 1, pstream__) + - reduce_sum(y1, 1, pstream__)); - double t2; - t2 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 16; - t2 = reduce_sum(y2, 1, pstream__); - double t3; - t3 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 17; - t3 = reduce_sum(y3, 1, pstream__); - double t4; - t4 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 18; - t4 = reduce_sum(y4, 1, pstream__); - double t5; - t5 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 19; - t5 = reduce_sum(y5, 1, pstream__); - double t6; - t6 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 20; - t6 = reduce_sum(y6, 1, pstream__); - double t7; - t7 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 21; - t7 = reduce_sum(y7, 1, pstream__); - double t8; - t8 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 22; - t8 = reduce_sum(y8, 1, pstream__); - double t9; - t9 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 23; - t9 = reduce_sum(y14d, 1, pstream__); - double t10; - t10 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 24; - t10 = reduce_sum(y15d, 1, pstream__); - double t11; - t11 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 25; - t11 = reduce_sum(y16d, 1, pstream__); - double t12; - t12 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 26; - t12 = reduce_sum(y17, 1, pstream__); - double tg1; - tg1 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 27; - tg1 = reduce_sum(y1, 1, pstream__, y9); - double tg2; - tg2 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 28; - tg2 = reduce_sum(y1, 1, pstream__, y10); - double tg3; - tg3 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 29; - tg3 = reduce_sum(y1, 1, pstream__, y11); - double tg4; - tg4 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 30; - tg4 = reduce_sum(y1, 1, pstream__, y12); - double tg5; - tg5 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 31; - tg5 = reduce_sum(y1, 1, pstream__, y1); - double tg6; - tg6 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 32; - tg6 = reduce_sum(y1, 1, pstream__, y2); - double tg7; - tg7 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 33; - tg7 = reduce_sum(y1, 1, pstream__, y3); - double tg8; - tg8 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 34; - tg8 = reduce_sum(y1, 1, pstream__, y4); - double tg9; - tg9 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 35; - tg9 = reduce_sum(y1, 1, pstream__, y5); - double tg10; - tg10 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 36; - tg10 = reduce_sum(y1, 1, pstream__, y6); - double tg11; - tg11 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 37; - tg11 = reduce_sum(y1, 1, pstream__, y7); - double tg12; - tg12 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 38; - tg12 = reduce_sum(y1, 1, pstream__, y8); - double tgs; - tgs = std::numeric_limits::quiet_NaN(); - - current_statement__ = 39; - tgs = reduce_sum(y1d, 1, pstream__, y13d, y9d, y10d, - y11d, y12d, y14d, y1d, y2d, y3d, y4d, y15d, y5d, y6d, y7d, y8d, - y16d, y17); - vars__.emplace_back(t1); - vars__.emplace_back(t1a); - vars__.emplace_back(t2); - vars__.emplace_back(t3); - vars__.emplace_back(t4); - vars__.emplace_back(t5); - vars__.emplace_back(t6); - vars__.emplace_back(t7); - vars__.emplace_back(t8); - vars__.emplace_back(t9); - vars__.emplace_back(t10); - vars__.emplace_back(t11); - vars__.emplace_back(t12); - vars__.emplace_back(tg1); - vars__.emplace_back(tg2); - vars__.emplace_back(tg3); - vars__.emplace_back(tg4); - vars__.emplace_back(tg5); - vars__.emplace_back(tg6); - vars__.emplace_back(tg7); - vars__.emplace_back(tg8); - vars__.emplace_back(tg9); - vars__.emplace_back(tg10); - vars__.emplace_back(tg11); - vars__.emplace_back(tg12); - vars__.emplace_back(tgs); + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -32556,356 +20458,85 @@ class reduce_sum_m3_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - std::vector y1; - y1 = std::vector(N, std::numeric_limits::quiet_NaN()); - - current_statement__ = 1; - y1 = context__.vals_r("y1"); - std::vector> y2; - y2 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y2, std::numeric_limits::quiet_NaN()); - - { - std::vector y2_flat__; - current_statement__ = 2; - y2_flat__ = context__.vals_r("y2"); - current_statement__ = 2; - pos__ = 1; - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 2; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 2; - assign(y2, y2_flat__[(pos__ - 1)], - "assigning variable y2", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 2; - pos__ = (pos__ + 1); - } - } - } - std::vector> y3; - y3 = std::vector>(N, Eigen::Matrix(N)); - stan::math::fill(y3, std::numeric_limits::quiet_NaN()); - - { - std::vector y3_flat__; - current_statement__ = 3; - y3_flat__ = context__.vals_r("y3"); - current_statement__ = 3; - pos__ = 1; - current_statement__ = 3; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 3; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 3; - assign(y3, y3_flat__[(pos__ - 1)], - "assigning variable y3", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 3; - pos__ = (pos__ + 1); - } - } - } - std::vector> y4; - y4 = std::vector>(N, Eigen::Matrix(N, N)); - stan::math::fill(y4, std::numeric_limits::quiet_NaN()); - - { - std::vector y4_flat__; - current_statement__ = 4; - y4_flat__ = context__.vals_r("y4"); - current_statement__ = 4; - pos__ = 1; - current_statement__ = 4; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 4; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 4; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 4; - assign(y4, y4_flat__[(pos__ - 1)], - "assigning variable y4", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 4; - pos__ = (pos__ + 1); - } - } - } - } - std::vector> y5; - y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); - - - { - std::vector y5_flat__; - current_statement__ = 5; - y5_flat__ = context__.vals_r("y5"); - current_statement__ = 5; - pos__ = 1; - current_statement__ = 5; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 5; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 5; - assign(y5, y5_flat__[(pos__ - 1)], - "assigning variable y5", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 5; - pos__ = (pos__ + 1); - } - } - } - std::vector>> y6; - y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y6, std::numeric_limits::quiet_NaN()); - - { - std::vector y6_flat__; - current_statement__ = 6; - y6_flat__ = context__.vals_r("y6"); - current_statement__ = 6; - pos__ = 1; - current_statement__ = 6; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 6; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 6; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 6; - assign(y6, y6_flat__[(pos__ - 1)], - "assigning variable y6", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 6; - pos__ = (pos__ + 1); - } - } - } - } - std::vector>> y7; - y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); - stan::math::fill(y7, std::numeric_limits::quiet_NaN()); + std::vector> L_Omega; + L_Omega = std::vector>(nt, Eigen::Matrix(2, 2)); + stan::math::fill(L_Omega, std::numeric_limits::quiet_NaN()); { - std::vector y7_flat__; - current_statement__ = 7; - y7_flat__ = context__.vals_r("y7"); - current_statement__ = 7; + std::vector L_Omega_flat__; + current_statement__ = 1; + L_Omega_flat__ = context__.vals_r("L_Omega"); + current_statement__ = 1; pos__ = 1; - current_statement__ = 7; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 7; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 7; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 7; - assign(y7, y7_flat__[(pos__ - 1)], - "assigning variable y7", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 7; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 1; + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + current_statement__ = 1; + for (int sym3__ = 1; sym3__ <= nt; ++sym3__) { + current_statement__ = 1; + assign(L_Omega, L_Omega_flat__[(pos__ - 1)], + "assigning variable L_Omega", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 1; pos__ = (pos__ + 1); } } } } - std::vector>> y8; - y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); - stan::math::fill(y8, std::numeric_limits::quiet_NaN()); - - { - std::vector y8_flat__; - current_statement__ = 8; - y8_flat__ = context__.vals_r("y8"); - current_statement__ = 8; - pos__ = 1; - current_statement__ = 8; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 8; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 8; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 8; - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - current_statement__ = 8; - assign(y8, y8_flat__[(pos__ - 1)], - "assigning variable y8", index_uni(sym4__), - index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 8; - pos__ = (pos__ + 1); - } - } - } - } - } - double y9; - y9 = std::numeric_limits::quiet_NaN(); - - current_statement__ = 9; - y9 = context__.vals_r("y9")[(1 - 1)]; - Eigen::Matrix y10; - y10 = Eigen::Matrix(N); - stan::math::fill(y10, std::numeric_limits::quiet_NaN()); - - { - std::vector y10_flat__; - current_statement__ = 10; - y10_flat__ = context__.vals_r("y10"); - current_statement__ = 10; - pos__ = 1; - current_statement__ = 10; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 10; - assign(y10, y10_flat__[(pos__ - 1)], - "assigning variable y10", index_uni(sym1__)); - current_statement__ = 10; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix y11; - y11 = Eigen::Matrix(N); - stan::math::fill(y11, std::numeric_limits::quiet_NaN()); + std::vector> L_Omega_free__; + L_Omega_free__ = std::vector>(nt, Eigen::Matrix( + ((2 * (2 - 1)) / 2))); + stan::math::fill(L_Omega_free__, std::numeric_limits::quiet_NaN()); - { - std::vector y11_flat__; - current_statement__ = 11; - y11_flat__ = context__.vals_r("y11"); - current_statement__ = 11; - pos__ = 1; - current_statement__ = 11; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 11; - assign(y11, y11_flat__[(pos__ - 1)], - "assigning variable y11", index_uni(sym1__)); - current_statement__ = 11; - pos__ = (pos__ + 1); - } - } - Eigen::Matrix y12; - y12 = Eigen::Matrix(N, N); - stan::math::fill(y12, std::numeric_limits::quiet_NaN()); - { - std::vector y12_flat__; - current_statement__ = 12; - y12_flat__ = context__.vals_r("y12"); - current_statement__ = 12; - pos__ = 1; - current_statement__ = 12; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 12; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 12; - assign(y12, y12_flat__[(pos__ - 1)], - "assigning variable y12", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 12; - pos__ = (pos__ + 1); - } - } + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= nt; ++sym1__) { + current_statement__ = 1; + assign(L_Omega_free__, + stan::math::cholesky_corr_free(L_Omega[(sym1__ - 1)]), + "assigning variable L_Omega_free__", index_uni(sym1__)); } - std::vector>> y17; - y17 = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN()))); - + Eigen::Matrix z1; + z1 = Eigen::Matrix(NS); + stan::math::fill(z1, std::numeric_limits::quiet_NaN()); { - std::vector y17_flat__; - current_statement__ = 13; - y17_flat__ = context__.vals_r("y17"); - current_statement__ = 13; + std::vector z1_flat__; + current_statement__ = 2; + z1_flat__ = context__.vals_r("z1"); + current_statement__ = 2; pos__ = 1; - current_statement__ = 13; - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - current_statement__ = 13; - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - current_statement__ = 13; - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - current_statement__ = 13; - assign(y17, y17_flat__[(pos__ - 1)], - "assigning variable y17", index_uni(sym3__), - index_uni(sym2__), - index_uni(sym1__)); - current_statement__ = 13; - pos__ = (pos__ + 1); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y1[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y2[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y3[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - rvalue(y4, "y4", - index_uni(sym1__), index_uni(sym3__), index_uni(sym2__))); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back(y5[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y6[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y7[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - vars__.emplace_back( - rvalue(y8, "y8", - index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), - index_uni(sym3__))); - } - } + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { + current_statement__ = 2; + assign(z1, z1_flat__[(pos__ - 1)], + "assigning variable z1", index_uni(sym1__)); + current_statement__ = 2; + pos__ = (pos__ + 1); } } - vars__.emplace_back(y9); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y10[(sym1__ - 1)]); - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(y11[(sym1__ - 1)]); + Eigen::Matrix z1_free__; + z1_free__ = Eigen::Matrix(NS); + stan::math::fill(z1_free__, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { + current_statement__ = 2; + assign(z1_free__, + stan::math::lb_free(z1[(sym1__ - 1)], + rvalue(L_Omega, "L_Omega", + index_uni(1), index_uni(1), index_uni(2))), + "assigning variable z1_free__", index_uni(sym1__)); } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - vars__.emplace_back( - rvalue(y12, "y12", index_uni(sym2__), index_uni(sym1__))); + for (int sym1__ = 1; sym1__ <= nt; ++sym1__) { + for (int sym2__ = 1; sym2__ <= ((2 * (2 - 1)) / 2); ++sym2__) { + vars__.emplace_back(L_Omega_free__[(sym1__ - 1)][(sym2__ - 1)]); } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - vars__.emplace_back( - y17[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); - } - } + for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { + vars__.emplace_back(z1_free__[(sym1__ - 1)]); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -32916,44 +20547,20 @@ class reduce_sum_m3_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { - names__ = std::vector{"y1", "y2", "y3", "y4", "y5", "y6", - "y7", "y8", "y9", "y10", "y11", "y12", "y17", "t1", "t1a", "t2", "t3", - "t4", "t5", "t6", "t7", "t8", "t9", "t10", "t11", "t12", "tg1", "tg2", - "tg3", "tg4", "tg5", "tg6", "tg7", "tg8", "tg9", "tg10", "tg11", - "tg12", "tgs"}; + names__ = std::vector{"L_Omega", "z1"}; } // get_param_names() inline void get_dims(std::vector>& dimss__) const { dimss__ = std::vector>{std::vector{ - static_cast(N) + static_cast(nt) + , + static_cast(2) + , + static_cast(2) }, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N), static_cast(N)}, - std::vector{}, std::vector{static_cast(N)}, - std::vector{static_cast(N)}, - std::vector{static_cast(N), static_cast(N)}, - std::vector{static_cast(N), static_cast(N), - static_cast(N)}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}, std::vector{}, std::vector{ - }, std::vector{}}; + std::vector{static_cast(NS)}}; } // get_dims() @@ -32963,125 +20570,22 @@ class reduce_sum_m3_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym3__ = 1; sym3__ <= nt; ++sym3__) { { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } + param_names__.emplace_back(std::string() + "L_Omega" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } } } } - param_names__.emplace_back(std::string() + "y9"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y10" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y11" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y12" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y17" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + param_names__.emplace_back(std::string() + "z1" + '.' + std::to_string(sym1__)); } } if (emit_transformed_parameters__) { @@ -33089,32 +20593,7 @@ class reduce_sum_m3_model final : public model_base_crtp { } if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "t1"); - param_names__.emplace_back(std::string() + "t1a"); - param_names__.emplace_back(std::string() + "t2"); - param_names__.emplace_back(std::string() + "t3"); - param_names__.emplace_back(std::string() + "t4"); - param_names__.emplace_back(std::string() + "t5"); - param_names__.emplace_back(std::string() + "t6"); - param_names__.emplace_back(std::string() + "t7"); - param_names__.emplace_back(std::string() + "t8"); - param_names__.emplace_back(std::string() + "t9"); - param_names__.emplace_back(std::string() + "t10"); - param_names__.emplace_back(std::string() + "t11"); - param_names__.emplace_back(std::string() + "t12"); - param_names__.emplace_back(std::string() + "tg1"); - param_names__.emplace_back(std::string() + "tg2"); - param_names__.emplace_back(std::string() + "tg3"); - param_names__.emplace_back(std::string() + "tg4"); - param_names__.emplace_back(std::string() + "tg5"); - param_names__.emplace_back(std::string() + "tg6"); - param_names__.emplace_back(std::string() + "tg7"); - param_names__.emplace_back(std::string() + "tg8"); - param_names__.emplace_back(std::string() + "tg9"); - param_names__.emplace_back(std::string() + "tg10"); - param_names__.emplace_back(std::string() + "tg11"); - param_names__.emplace_back(std::string() + "tg12"); - param_names__.emplace_back(std::string() + "tgs"); + } } // constrained_param_names() @@ -33125,125 +20604,18 @@ class reduce_sum_m3_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - for (int sym4__ = 1; sym4__ <= N; ++sym4__) { - { - param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - } - } - } - } - param_names__.emplace_back(std::string() + "y9"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y10" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - { - param_names__.emplace_back(std::string() + "y11" + '.' + std::to_string(sym1__)); - } - } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= ((2 * (2 - 1)) / 2); ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym2__ = 1; sym2__ <= nt; ++sym2__) { { - param_names__.emplace_back(std::string() + "y12" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + param_names__.emplace_back(std::string() + "L_Omega" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); } } } } - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= NS; ++sym1__) { { - for (int sym2__ = 1; sym2__ <= N; ++sym2__) { - { - for (int sym3__ = 1; sym3__ <= N; ++sym3__) { - { - param_names__.emplace_back(std::string() + "y17" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + param_names__.emplace_back(std::string() + "z1" + '.' + std::to_string(sym1__)); } } if (emit_transformed_parameters__) { @@ -33251,45 +20623,20 @@ class reduce_sum_m3_model final : public model_base_crtp { } if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "t1"); - param_names__.emplace_back(std::string() + "t1a"); - param_names__.emplace_back(std::string() + "t2"); - param_names__.emplace_back(std::string() + "t3"); - param_names__.emplace_back(std::string() + "t4"); - param_names__.emplace_back(std::string() + "t5"); - param_names__.emplace_back(std::string() + "t6"); - param_names__.emplace_back(std::string() + "t7"); - param_names__.emplace_back(std::string() + "t8"); - param_names__.emplace_back(std::string() + "t9"); - param_names__.emplace_back(std::string() + "t10"); - param_names__.emplace_back(std::string() + "t11"); - param_names__.emplace_back(std::string() + "t12"); - param_names__.emplace_back(std::string() + "tg1"); - param_names__.emplace_back(std::string() + "tg2"); - param_names__.emplace_back(std::string() + "tg3"); - param_names__.emplace_back(std::string() + "tg4"); - param_names__.emplace_back(std::string() + "tg5"); - param_names__.emplace_back(std::string() + "tg6"); - param_names__.emplace_back(std::string() + "tg7"); - param_names__.emplace_back(std::string() + "tg8"); - param_names__.emplace_back(std::string() + "tg9"); - param_names__.emplace_back(std::string() + "tg10"); - param_names__.emplace_back(std::string() + "tg11"); - param_names__.emplace_back(std::string() + "tg12"); - param_names__.emplace_back(std::string() + "tgs"); + } } // unconstrained_param_names() inline std::string get_constrained_sizedtypes() const { - return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y9\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"y10\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y11\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y12\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y17\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"t1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t1a\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tgs\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); + return std::string("[{\"name\":\"L_Omega\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(nt) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(2) + ",\"cols\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"z1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(NS) + "},\"block\":\"parameters\"}]"); } // get_constrained_sizedtypes() inline std::string get_unconstrained_sizedtypes() const { - return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y9\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"y10\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y11\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y12\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y17\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"t1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t1a\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tgs\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); + return std::string("[{\"name\":\"L_Omega\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(nt) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(((2 * (2 - 1)) / 2)) + "}},\"block\":\"parameters\"},{\"name\":\"z1\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(NS) + "},\"block\":\"parameters\"}]"); } // get_unconstrained_sizedtypes() @@ -33356,7 +20703,7 @@ class reduce_sum_m3_model final : public model_base_crtp { }; } -using stan_model = reduce_sum_m3_model_namespace::reduce_sum_m3_model; +using stan_model = param_constraint_model_namespace::param_constraint_model; #ifndef USING_R @@ -33370,7 +20717,7 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return reduce_sum_m3_model_namespace::profiles__; + return param_constraint_model_namespace::profiles__; } #endif diff --git a/test/integration/bad/reduce_sum/bad_non_matching_arg_types_static.stan b/test/integration/good/code-gen/reduce_sum/arg_type_convert.stan similarity index 100% rename from test/integration/bad/reduce_sum/bad_non_matching_arg_types_static.stan rename to test/integration/good/code-gen/reduce_sum/arg_type_convert.stan diff --git a/test/integration/good/code-gen/reduce_sum/cpp.expected b/test/integration/good/code-gen/reduce_sum/cpp.expected new file mode 100644 index 0000000000..29b9ed00fe --- /dev/null +++ b/test/integration/good/code-gen/reduce_sum/cpp.expected @@ -0,0 +1,8105 @@ + $ ../../../../../../install/default/bin/stanc --print-cpp arg_type_convert.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace arg_type_convert_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'arg_type_convert.stan', line 12, column 4 to column 14)", + " (in 'arg_type_convert.stan', line 16, column 4 to column 55)", + " (in 'arg_type_convert.stan', line 8, column 4 to column 10)", + " (in 'arg_type_convert.stan', line 3, column 4 to column 44)", + " (in 'arg_type_convert.stan', line 2, column 72 to line 4, column 3)"}; +struct my_func_rsfunctor__; +template +stan::promote_args_t +my_func(const std::vector& y_slice, const int& start, const int& end, + const T3__& mu, const T4__& sigma, std::ostream* pstream__) ; + +struct my_func_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const T3__& mu, + const T4__& sigma) const +{ +return my_func(y_slice, start + 1, end + 1, mu, sigma, pstream__); +} +}; + + +struct my_func_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const T3__& mu, const T4__& sigma, + std::ostream* pstream__) const +{ +return my_func(y_slice, start, end, mu, sigma, pstream__); +} +}; + +template +stan::promote_args_t +my_func(const std::vector& y_slice, const int& start, const int& end, + const T3__& mu, const T4__& sigma, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 4; + return normal_lpdf(y_slice, mu, sigma); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class arg_type_convert_model final : public model_base_crtp { + + private: + int b; + + + public: + ~arg_type_convert_model() { } + + inline std::string model_name() const final { return "arg_type_convert_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + arg_type_convert_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "arg_type_convert_model_namespace::arg_type_convert_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 3; + context__.validate_dims("data initialization","b","int", + std::vector{}); + b = std::numeric_limits::min(); + + current_statement__ = 3; + b = context__.vals_i("b")[(1 - 1)]; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = 5; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "arg_type_convert_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + std::vector a; + a = std::vector(5, DUMMY_VAR__); + + current_statement__ = 1; + a = in__.template read>(5); + { + current_statement__ = 2; + lp_accum__.add( + reduce_sum_static(a, 1, pstream__, 0.0, b)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "arg_type_convert_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + std::vector a; + a = std::vector(5, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + a = in__.template read>(5); + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(a[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + std::vector a; + a = std::vector(5, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + a = context__.vals_r("a"); + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + vars__.emplace_back(a[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"a"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{ + static_cast(5) + }}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + { + param_names__.emplace_back(std::string() + "a" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= 5; ++sym1__) { + { + param_names__.emplace_back(std::string() + "a" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"a\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"a\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = arg_type_convert_model_namespace::arg_type_convert_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return arg_type_convert_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp reduce_sum_m1.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace reduce_sum_m1_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'reduce_sum_m1.stan', line 26, column 2 to column 13)", + " (in 'reduce_sum_m1.stan', line 27, column 2 to column 13)", + " (in 'reduce_sum_m1.stan', line 28, column 2 to column 13)", + " (in 'reduce_sum_m1.stan', line 32, column 2 to column 33)", + " (in 'reduce_sum_m1.stan', line 33, column 2 to column 37)", + " (in 'reduce_sum_m1.stan', line 34, column 2 to column 40)", + " (in 'reduce_sum_m1.stan', line 35, column 2 to column 41)", + " (in 'reduce_sum_m1.stan', line 22, column 2 to column 14)", + " (in 'reduce_sum_m1.stan', line 26, column 10 to column 11)", + " (in 'reduce_sum_m1.stan', line 27, column 10 to column 11)", + " (in 'reduce_sum_m1.stan', line 28, column 10 to column 11)", + " (in 'reduce_sum_m1.stan', line 6, column 6 to column 41)", + " (in 'reduce_sum_m1.stan', line 5, column 11 to line 7, column 5)", + " (in 'reduce_sum_m1.stan', line 4, column 6 to column 39)", + " (in 'reduce_sum_m1.stan', line 3, column 26 to line 5, column 5)", + " (in 'reduce_sum_m1.stan', line 3, column 4 to line 7, column 5)", + " (in 'reduce_sum_m1.stan', line 2, column 45 to line 8, column 3)", + " (in 'reduce_sum_m1.stan', line 13, column 6 to column 35)", + " (in 'reduce_sum_m1.stan', line 12, column 11 to line 14, column 5)", + " (in 'reduce_sum_m1.stan', line 11, column 6 to column 53)", + " (in 'reduce_sum_m1.stan', line 10, column 20 to line 12, column 5)", + " (in 'reduce_sum_m1.stan', line 10, column 4 to line 14, column 5)", + " (in 'reduce_sum_m1.stan', line 9, column 55 to line 15, column 3)", + " (in 'reduce_sum_m1.stan', line 17, column 4 to column 38)", + " (in 'reduce_sum_m1.stan', line 16, column 52 to line 18, column 3)"}; +struct g_rsfunctor__; +struct h_rsfunctor__; +template +struct foo_lpdf_rsfunctor__; +template +stan::promote_args_t +g(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct g_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +h(const std::vector& y_slice, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) ; + +struct h_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector& a) const +{ +return h(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct h_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) const +{ +return h(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +foo_lpdf(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +template +struct foo_lpdf_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return foo_lpdf(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct foo_lpdf_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return foo_lpdf(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 16; + if (logical_gt(size(y_slice), 1)) { + current_statement__ = 14; + return reduce_sum(y_slice, 1, pstream__); + } else { + current_statement__ = 12; + return normal_lpdf(y_slice, 0, 1); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h(const std::vector& y_slice, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 22; + if (logical_gt(size(a), 1)) { + current_statement__ = 20; + return reduce_sum(y_slice, 1, pstream__, + rvalue(a, "a", index_min_max(start, end))); + } else { + current_statement__ = 18; + return normal_lpdf(a, 0, 1); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lpdf(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 24; + return normal_lpdf(y_slice, 0, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class reduce_sum_m1_model final : public model_base_crtp { + + private: + int N; + + + public: + ~reduce_sum_m1_model() { } + + inline std::string model_name() const final { return "reduce_sum_m1_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + reduce_sum_m1_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m1_model_namespace::reduce_sum_m1_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 8; + N = std::numeric_limits::min(); + + current_statement__ = 8; + N = 100; + current_statement__ = 9; + validate_non_negative_index("y1", "N", N); + current_statement__ = 10; + validate_non_negative_index("y2", "N", N); + current_statement__ = 11; + validate_non_negative_index("y3", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = N + N + N; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m1_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + std::vector y1; + y1 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 1; + y1 = in__.template read>(N); + std::vector y2; + y2 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 2; + y2 = in__.template read>(N); + std::vector y3; + y3 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 3; + y3 = in__.template read>(N); + { + current_statement__ = 4; + lp_accum__.add(reduce_sum(y1, 1, pstream__)); + current_statement__ = 5; + lp_accum__.add(reduce_sum(y2, 1, pstream__, y2)); + current_statement__ = 6; + lp_accum__.add( + reduce_sum>(y3, 1, pstream__)); + current_statement__ = 7; + lp_accum__.add( + reduce_sum>(y3, 1, pstream__)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m1_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + y1 = in__.template read>(N); + std::vector y2; + y2 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + y2 = in__.template read>(N); + std::vector y3; + y3 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + y3 = in__.template read>(N); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y2[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y3[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + y1 = context__.vals_r("y1"); + std::vector y2; + y2 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + y2 = context__.vals_r("y2"); + std::vector y3; + y3 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + y3 = context__.vals_r("y3"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y2[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y3[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"y1", "y2", "y3"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{ + static_cast(N) + }, + std::vector{static_cast(N)}, + std::vector{static_cast(N)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = reduce_sum_m1_model_namespace::reduce_sum_m1_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return reduce_sum_m1_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp reduce_sum_m2.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace reduce_sum_m2_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'reduce_sum_m2.stan', line 130, column 2 to column 24)", + " (in 'reduce_sum_m2.stan', line 131, column 2 to column 25)", + " (in 'reduce_sum_m2.stan', line 132, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 133, column 2 to column 16)", + " (in 'reduce_sum_m2.stan', line 134, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 135, column 2 to column 22)", + " (in 'reduce_sum_m2.stan', line 136, column 2 to column 18)", + " (in 'reduce_sum_m2.stan', line 137, column 2 to column 13)", + " (in 'reduce_sum_m2.stan', line 139, column 2 to column 24)", + " (in 'reduce_sum_m2.stan', line 140, column 2 to column 25)", + " (in 'reduce_sum_m2.stan', line 141, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 142, column 2 to column 16)", + " (in 'reduce_sum_m2.stan', line 143, column 2 to column 21)", + " (in 'reduce_sum_m2.stan', line 144, column 2 to column 22)", + " (in 'reduce_sum_m2.stan', line 145, column 2 to column 18)", + " (in 'reduce_sum_m2.stan', line 146, column 2 to column 13)", + " (in 'reduce_sum_m2.stan', line 150, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 151, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 152, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 153, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 154, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 155, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 156, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 157, column 2 to column 37)", + " (in 'reduce_sum_m2.stan', line 159, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 160, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 161, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 162, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 163, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 164, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 165, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 166, column 2 to column 34)", + " (in 'reduce_sum_m2.stan', line 125, column 2 to column 12)", + " (in 'reduce_sum_m2.stan', line 126, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 126, column 2 to column 12)", + " (in 'reduce_sum_m2.stan', line 130, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 130, column 21 to column 22)", + " (in 'reduce_sum_m2.stan', line 130, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 130, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 131, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 131, column 22 to column 23)", + " (in 'reduce_sum_m2.stan', line 131, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 132, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 132, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 132, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 133, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 133, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 134, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 134, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 134, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 135, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 135, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 136, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 136, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 137, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 139, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 139, column 21 to column 22)", + " (in 'reduce_sum_m2.stan', line 139, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 139, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 140, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 140, column 22 to column 23)", + " (in 'reduce_sum_m2.stan', line 140, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 141, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 141, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 141, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 142, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 142, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 143, column 18 to column 19)", + " (in 'reduce_sum_m2.stan', line 143, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 143, column 12 to column 13)", + " (in 'reduce_sum_m2.stan', line 144, column 19 to column 20)", + " (in 'reduce_sum_m2.stan', line 144, column 13 to column 14)", + " (in 'reduce_sum_m2.stan', line 145, column 15 to column 16)", + " (in 'reduce_sum_m2.stan', line 145, column 9 to column 10)", + " (in 'reduce_sum_m2.stan', line 146, column 10 to column 11)", + " (in 'reduce_sum_m2.stan', line 3, column 4 to column 39)", + " (in 'reduce_sum_m2.stan', line 2, column 46 to line 4, column 3)", + " (in 'reduce_sum_m2.stan', line 6, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 8, column 6 to column 49)", + " (in 'reduce_sum_m2.stan', line 7, column 30 to line 9, column 5)", + " (in 'reduce_sum_m2.stan', line 7, column 4 to line 9, column 5)", + " (in 'reduce_sum_m2.stan', line 10, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 5, column 48 to line 11, column 3)", + " (in 'reduce_sum_m2.stan', line 13, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 15, column 6 to column 49)", + " (in 'reduce_sum_m2.stan', line 14, column 30 to line 16, column 5)", + " (in 'reduce_sum_m2.stan', line 14, column 4 to line 16, column 5)", + " (in 'reduce_sum_m2.stan', line 17, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 12, column 52 to line 18, column 3)", + " (in 'reduce_sum_m2.stan', line 20, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 22, column 6 to column 60)", + " (in 'reduce_sum_m2.stan', line 21, column 30 to line 23, column 5)", + " (in 'reduce_sum_m2.stan', line 21, column 4 to line 23, column 5)", + " (in 'reduce_sum_m2.stan', line 24, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 19, column 48 to line 25, column 3)", + " (in 'reduce_sum_m2.stan', line 27, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 30, column 8 to column 54)", + " (in 'reduce_sum_m2.stan', line 29, column 35 to line 31, column 7)", + " (in 'reduce_sum_m2.stan', line 29, column 6 to line 31, column 7)", + " (in 'reduce_sum_m2.stan', line 28, column 30 to line 32, column 5)", + " (in 'reduce_sum_m2.stan', line 28, column 4 to line 32, column 5)", + " (in 'reduce_sum_m2.stan', line 33, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 26, column 47 to line 34, column 3)", + " (in 'reduce_sum_m2.stan', line 36, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 39, column 8 to column 65)", + " (in 'reduce_sum_m2.stan', line 38, column 35 to line 40, column 7)", + " (in 'reduce_sum_m2.stan', line 38, column 6 to line 40, column 7)", + " (in 'reduce_sum_m2.stan', line 37, column 30 to line 41, column 5)", + " (in 'reduce_sum_m2.stan', line 37, column 4 to line 41, column 5)", + " (in 'reduce_sum_m2.stan', line 42, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 35, column 49 to line 43, column 3)", + " (in 'reduce_sum_m2.stan', line 45, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 48, column 8 to column 65)", + " (in 'reduce_sum_m2.stan', line 47, column 35 to line 49, column 7)", + " (in 'reduce_sum_m2.stan', line 47, column 6 to line 49, column 7)", + " (in 'reduce_sum_m2.stan', line 46, column 30 to line 50, column 5)", + " (in 'reduce_sum_m2.stan', line 46, column 4 to line 50, column 5)", + " (in 'reduce_sum_m2.stan', line 51, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 44, column 53 to line 52, column 3)", + " (in 'reduce_sum_m2.stan', line 54, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 57, column 8 to column 65)", + " (in 'reduce_sum_m2.stan', line 56, column 35 to line 58, column 7)", + " (in 'reduce_sum_m2.stan', line 56, column 6 to line 58, column 7)", + " (in 'reduce_sum_m2.stan', line 55, column 30 to line 59, column 5)", + " (in 'reduce_sum_m2.stan', line 55, column 4 to line 59, column 5)", + " (in 'reduce_sum_m2.stan', line 60, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 53, column 49 to line 61, column 3)", + " (in 'reduce_sum_m2.stan', line 63, column 4 to column 44)", + " (in 'reduce_sum_m2.stan', line 62, column 50 to line 64, column 3)", + " (in 'reduce_sum_m2.stan', line 66, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 68, column 6 to column 43)", + " (in 'reduce_sum_m2.stan', line 67, column 24 to line 69, column 5)", + " (in 'reduce_sum_m2.stan', line 67, column 4 to line 69, column 5)", + " (in 'reduce_sum_m2.stan', line 70, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 65, column 52 to line 71, column 3)", + " (in 'reduce_sum_m2.stan', line 73, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 75, column 6 to column 43)", + " (in 'reduce_sum_m2.stan', line 74, column 24 to line 76, column 5)", + " (in 'reduce_sum_m2.stan', line 74, column 4 to line 76, column 5)", + " (in 'reduce_sum_m2.stan', line 77, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 72, column 56 to line 78, column 3)", + " (in 'reduce_sum_m2.stan', line 80, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 82, column 6 to column 54)", + " (in 'reduce_sum_m2.stan', line 81, column 24 to line 83, column 5)", + " (in 'reduce_sum_m2.stan', line 81, column 4 to line 83, column 5)", + " (in 'reduce_sum_m2.stan', line 84, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 79, column 52 to line 85, column 3)", + " (in 'reduce_sum_m2.stan', line 87, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 90, column 8 to column 48)", + " (in 'reduce_sum_m2.stan', line 89, column 29 to line 91, column 7)", + " (in 'reduce_sum_m2.stan', line 89, column 6 to line 91, column 7)", + " (in 'reduce_sum_m2.stan', line 88, column 24 to line 92, column 5)", + " (in 'reduce_sum_m2.stan', line 88, column 4 to line 92, column 5)", + " (in 'reduce_sum_m2.stan', line 93, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 86, column 51 to line 94, column 3)", + " (in 'reduce_sum_m2.stan', line 96, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 99, column 8 to column 59)", + " (in 'reduce_sum_m2.stan', line 98, column 29 to line 100, column 7)", + " (in 'reduce_sum_m2.stan', line 98, column 6 to line 100, column 7)", + " (in 'reduce_sum_m2.stan', line 97, column 24 to line 101, column 5)", + " (in 'reduce_sum_m2.stan', line 97, column 4 to line 101, column 5)", + " (in 'reduce_sum_m2.stan', line 102, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 95, column 53 to line 103, column 3)", + " (in 'reduce_sum_m2.stan', line 105, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 108, column 8 to column 59)", + " (in 'reduce_sum_m2.stan', line 107, column 29 to line 109, column 7)", + " (in 'reduce_sum_m2.stan', line 107, column 6 to line 109, column 7)", + " (in 'reduce_sum_m2.stan', line 106, column 24 to line 110, column 5)", + " (in 'reduce_sum_m2.stan', line 106, column 4 to line 110, column 5)", + " (in 'reduce_sum_m2.stan', line 111, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 104, column 57 to line 112, column 3)", + " (in 'reduce_sum_m2.stan', line 114, column 4 to column 24)", + " (in 'reduce_sum_m2.stan', line 117, column 8 to column 59)", + " (in 'reduce_sum_m2.stan', line 116, column 29 to line 118, column 7)", + " (in 'reduce_sum_m2.stan', line 116, column 6 to line 118, column 7)", + " (in 'reduce_sum_m2.stan', line 115, column 24 to line 119, column 5)", + " (in 'reduce_sum_m2.stan', line 115, column 4 to line 119, column 5)", + " (in 'reduce_sum_m2.stan', line 120, column 4 to column 20)", + " (in 'reduce_sum_m2.stan', line 113, column 53 to line 121, column 3)"}; +struct g1_rsfunctor__; +struct g2_rsfunctor__; +struct g3_rsfunctor__; +struct g4_rsfunctor__; +struct g5_rsfunctor__; +struct g6_rsfunctor__; +struct g7_rsfunctor__; +struct g8_rsfunctor__; +struct h1_rsfunctor__; +struct h2_rsfunctor__; +struct h3_rsfunctor__; +struct h4_rsfunctor__; +struct h5_rsfunctor__; +struct h6_rsfunctor__; +struct h7_rsfunctor__; +struct h8_rsfunctor__; +template +stan::promote_args_t +g1(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct g1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g1(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g1(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g2(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct g2_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g2(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g2_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g2(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g3(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct g3_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g3(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g3_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g3(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g4(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct g4_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g4(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g4_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g4(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g5(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct g5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g5(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g5_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return g5(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g6(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct g6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g6(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g6_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g6(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g7(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct g7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g7(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g7_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g7(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g8(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct g8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g8(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct g8_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return g8(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +h1(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) ; + +struct h1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, const std::vector& a) const +{ +return h1(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) const +{ +return h1(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h2(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct h2_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>& a) const +{ +return h2(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h2_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, + std::ostream* pstream__) const +{ +return h2(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h3(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct h3_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>& a) const +{ +return h3(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h3_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, + std::ostream* pstream__) const +{ +return h3(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h4(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct h4_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>& a) const +{ +return h4(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h4_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, + std::ostream* pstream__) const +{ +return h4(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h5(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct h5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, const std::vector>& a) const +{ +return h5(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h5_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) const +{ +return h5(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h6(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct h6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>>& a) const +{ +return h6(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h6_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return h6(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h7(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct h7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>>& a) const +{ +return h7(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h7_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return h7(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +h8(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct h8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + std::ostream* pstream__, + const std::vector>>& a) const +{ +return h8(y, start + 1, end + 1, a, pstream__); +} +}; + + +struct h8_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return h8(y, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g1(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 76; + return normal_lpdf(y_slice, 0, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g2(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 78; + sum_lpdf = 0.0; + current_statement__ = 81; + for (int n = 1; n <= size(y_slice); ++n) { + current_statement__ = 79; + sum_lpdf = (sum_lpdf + + normal_lpdf( + rvalue(y_slice, "y_slice", index_uni(n)), 0, 1)); + } + current_statement__ = 82; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g3(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 84; + sum_lpdf = 0.0; + current_statement__ = 87; + for (int n = 1; n <= size(y_slice); ++n) { + current_statement__ = 85; + sum_lpdf = (sum_lpdf + + normal_lpdf( + rvalue(y_slice, "y_slice", index_uni(n)), 0, 1)); + } + current_statement__ = 88; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g4(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 90; + sum_lpdf = 0.0; + current_statement__ = 93; + for (int n = 1; n <= size(y_slice); ++n) { + current_statement__ = 91; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector(rvalue(y_slice, "y_slice", index_uni(n))), 0, + 1)); + } + current_statement__ = 94; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g5(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 96; + sum_lpdf = 0.0; + current_statement__ = 101; + for (int n = 1; n <= size(y_slice); ++n) { + current_statement__ = 99; + for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); + ++m) { + current_statement__ = 97; + sum_lpdf = (sum_lpdf + + normal_lpdf( + rvalue(y_slice, "y_slice", index_uni(n), index_uni(m)), + 0, 1)); + } + } + current_statement__ = 102; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g6(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 104; + sum_lpdf = 0.0; + current_statement__ = 109; + for (int n = 1; n <= size(y_slice); ++n) { + current_statement__ = 107; + for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); + ++m) { + current_statement__ = 105; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector( + rvalue(y_slice, "y_slice", + index_uni(n), index_uni(m))), 0, 1)); + } + } + current_statement__ = 110; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g7(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 112; + sum_lpdf = 0.0; + current_statement__ = 117; + for (int n = 1; n <= size(y_slice); ++n) { + current_statement__ = 115; + for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); + ++m) { + current_statement__ = 113; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector( + rvalue(y_slice, "y_slice", + index_uni(n), index_uni(m))), 0, 1)); + } + } + current_statement__ = 118; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g8(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 120; + sum_lpdf = 0.0; + current_statement__ = 125; + for (int n = 1; n <= size(y_slice); ++n) { + current_statement__ = 123; + for (int m = 1; m <= size(rvalue(y_slice, "y_slice", index_uni(n))); + ++m) { + current_statement__ = 121; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector( + rvalue(y_slice, "y_slice", + index_uni(n), index_uni(m))), 0, 1)); + } + } + current_statement__ = 126; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h1(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 128; + return normal_lpdf(rvalue(a, "a", index_min_max(start, end)), 0, + 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h2(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 130; + sum_lpdf = 0.0; + current_statement__ = 133; + for (int n = start; n <= end; ++n) { + current_statement__ = 131; + sum_lpdf = (sum_lpdf + + normal_lpdf(rvalue(a, "a", index_uni(n)), 0, 1)); + } + current_statement__ = 134; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h3(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 136; + sum_lpdf = 0.0; + current_statement__ = 139; + for (int n = start; n <= end; ++n) { + current_statement__ = 137; + sum_lpdf = (sum_lpdf + + normal_lpdf(rvalue(a, "a", index_uni(n)), 0, 1)); + } + current_statement__ = 140; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h4(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 142; + sum_lpdf = 0.0; + current_statement__ = 145; + for (int n = start; n <= end; ++n) { + current_statement__ = 143; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector(rvalue(a, "a", index_uni(n))), 0, 1)); + } + current_statement__ = 146; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h5(const std::vector& y, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 148; + sum_lpdf = 0.0; + current_statement__ = 153; + for (int n = start; n <= end; ++n) { + current_statement__ = 151; + for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { + current_statement__ = 149; + sum_lpdf = (sum_lpdf + + normal_lpdf( + rvalue(a, "a", index_uni(n), index_uni(m)), 0, 1)); + } + } + current_statement__ = 154; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h6(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 156; + sum_lpdf = 0.0; + current_statement__ = 161; + for (int n = start; n <= end; ++n) { + current_statement__ = 159; + for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { + current_statement__ = 157; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector(rvalue(a, "a", index_uni(n), index_uni(m))), + 0, 1)); + } + } + current_statement__ = 162; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h7(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 164; + sum_lpdf = 0.0; + current_statement__ = 169; + for (int n = start; n <= end; ++n) { + current_statement__ = 167; + for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { + current_statement__ = 165; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector(rvalue(a, "a", index_uni(n), index_uni(m))), + 0, 1)); + } + } + current_statement__ = 170; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +h8(const std::vector& y, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ sum_lpdf; + sum_lpdf = DUMMY_VAR__; + + current_statement__ = 172; + sum_lpdf = 0.0; + current_statement__ = 177; + for (int n = start; n <= end; ++n) { + current_statement__ = 175; + for (int m = 1; m <= size(rvalue(a, "a", index_uni(n))); ++m) { + current_statement__ = 173; + sum_lpdf = (sum_lpdf + + normal_lpdf( + to_vector(rvalue(a, "a", index_uni(n), index_uni(m))), + 0, 1)); + } + } + current_statement__ = 178; + return sum_lpdf; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class reduce_sum_m2_model final : public model_base_crtp { + + private: + int N; + std::vector x; + + + public: + ~reduce_sum_m2_model() { } + + inline std::string model_name() const final { return "reduce_sum_m2_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + reduce_sum_m2_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m2_model_namespace::reduce_sum_m2_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 33; + N = std::numeric_limits::min(); + + current_statement__ = 33; + N = 2; + current_statement__ = 34; + validate_non_negative_index("x", "N", N); + current_statement__ = 35; + x = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 36; + validate_non_negative_index("a8", "N", N); + current_statement__ = 37; + validate_non_negative_index("a8", "N", N); + current_statement__ = 38; + validate_non_negative_index("a8", "N", N); + current_statement__ = 39; + validate_non_negative_index("a8", "N", N); + current_statement__ = 40; + validate_non_negative_index("a7", "N", N); + current_statement__ = 41; + validate_non_negative_index("a7", "N", N); + current_statement__ = 42; + validate_non_negative_index("a7", "N", N); + current_statement__ = 43; + validate_non_negative_index("a6", "N", N); + current_statement__ = 44; + validate_non_negative_index("a6", "N", N); + current_statement__ = 45; + validate_non_negative_index("a6", "N", N); + current_statement__ = 46; + validate_non_negative_index("a5", "N", N); + current_statement__ = 47; + validate_non_negative_index("a5", "N", N); + current_statement__ = 48; + validate_non_negative_index("a4", "N", N); + current_statement__ = 49; + validate_non_negative_index("a4", "N", N); + current_statement__ = 50; + validate_non_negative_index("a4", "N", N); + current_statement__ = 51; + validate_non_negative_index("a3", "N", N); + current_statement__ = 52; + validate_non_negative_index("a3", "N", N); + current_statement__ = 53; + validate_non_negative_index("a2", "N", N); + current_statement__ = 54; + validate_non_negative_index("a2", "N", N); + current_statement__ = 55; + validate_non_negative_index("a1", "N", N); + current_statement__ = 56; + validate_non_negative_index("y8", "N", N); + current_statement__ = 57; + validate_non_negative_index("y8", "N", N); + current_statement__ = 58; + validate_non_negative_index("y8", "N", N); + current_statement__ = 59; + validate_non_negative_index("y8", "N", N); + current_statement__ = 60; + validate_non_negative_index("y7", "N", N); + current_statement__ = 61; + validate_non_negative_index("y7", "N", N); + current_statement__ = 62; + validate_non_negative_index("y7", "N", N); + current_statement__ = 63; + validate_non_negative_index("y6", "N", N); + current_statement__ = 64; + validate_non_negative_index("y6", "N", N); + current_statement__ = 65; + validate_non_negative_index("y6", "N", N); + current_statement__ = 66; + validate_non_negative_index("y5", "N", N); + current_statement__ = 67; + validate_non_negative_index("y5", "N", N); + current_statement__ = 68; + validate_non_negative_index("y4", "N", N); + current_statement__ = 69; + validate_non_negative_index("y4", "N", N); + current_statement__ = 70; + validate_non_negative_index("y4", "N", N); + current_statement__ = 71; + validate_non_negative_index("y3", "N", N); + current_statement__ = 72; + validate_non_negative_index("y3", "N", N); + current_statement__ = 73; + validate_non_negative_index("y2", "N", N); + current_statement__ = 74; + validate_non_negative_index("y2", "N", N); + current_statement__ = 75; + validate_non_negative_index("y1", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = (N * N * N * N) + (N * N * N) + (N * N * N) + (N * N) + + (N * N * N) + (N * N) + (N * N) + N + (N * N * N * N) + (N * N * N) + + (N * N * N) + (N * N) + (N * N * N) + (N * N) + (N * N) + N; + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m2_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + std::vector>> a8; + a8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(a8, DUMMY_VAR__); + + current_statement__ = 1; + a8 = in__.template read>>>( + N, N, N, N); + std::vector>> a7; + a7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(a7, DUMMY_VAR__); + + current_statement__ = 2; + a7 = in__.template read>>>( + N, N, N); + std::vector>> a6; + a6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(a6, DUMMY_VAR__); + + current_statement__ = 3; + a6 = in__.template read>>>( + N, N, N); + std::vector> a5; + a5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); + + + current_statement__ = 4; + a5 = in__.template read>>(N, + N); + std::vector> a4; + a4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(a4, DUMMY_VAR__); + + current_statement__ = 5; + a4 = in__.template read>>( + N, N, N); + std::vector> a3; + a3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(a3, DUMMY_VAR__); + + current_statement__ = 6; + a3 = in__.template read>>( + N, N); + std::vector> a2; + a2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(a2, DUMMY_VAR__); + + current_statement__ = 7; + a2 = in__.template read>>( + N, N); + std::vector a1; + a1 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 8; + a1 = in__.template read>(N); + std::vector>> y8; + y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8, DUMMY_VAR__); + + current_statement__ = 9; + y8 = in__.template read>>>( + N, N, N, N); + std::vector>> y7; + y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7, DUMMY_VAR__); + + current_statement__ = 10; + y7 = in__.template read>>>( + N, N, N); + std::vector>> y6; + y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6, DUMMY_VAR__); + + current_statement__ = 11; + y6 = in__.template read>>>( + N, N, N); + std::vector> y5; + y5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); + + + current_statement__ = 12; + y5 = in__.template read>>(N, + N); + std::vector> y4; + y4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4, DUMMY_VAR__); + + current_statement__ = 13; + y4 = in__.template read>>( + N, N, N); + std::vector> y3; + y3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3, DUMMY_VAR__); + + current_statement__ = 14; + y3 = in__.template read>>( + N, N); + std::vector> y2; + y2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2, DUMMY_VAR__); + + current_statement__ = 15; + y2 = in__.template read>>( + N, N); + std::vector y1; + y1 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 16; + y1 = in__.template read>(N); + { + current_statement__ = 17; + lp_accum__.add(reduce_sum(x, 1, pstream__, a8)); + current_statement__ = 18; + lp_accum__.add(reduce_sum(x, 1, pstream__, a7)); + current_statement__ = 19; + lp_accum__.add(reduce_sum(x, 1, pstream__, a6)); + current_statement__ = 20; + lp_accum__.add(reduce_sum(x, 1, pstream__, a5)); + current_statement__ = 21; + lp_accum__.add(reduce_sum(x, 1, pstream__, a4)); + current_statement__ = 22; + lp_accum__.add(reduce_sum(x, 1, pstream__, a3)); + current_statement__ = 23; + lp_accum__.add(reduce_sum(x, 1, pstream__, a2)); + current_statement__ = 24; + lp_accum__.add(reduce_sum(x, 1, pstream__, a1)); + current_statement__ = 25; + lp_accum__.add(reduce_sum(y8, 1, pstream__)); + current_statement__ = 26; + lp_accum__.add(reduce_sum(y7, 1, pstream__)); + current_statement__ = 27; + lp_accum__.add(reduce_sum(y6, 1, pstream__)); + current_statement__ = 28; + lp_accum__.add(reduce_sum(y5, 1, pstream__)); + current_statement__ = 29; + lp_accum__.add(reduce_sum(y4, 1, pstream__)); + current_statement__ = 30; + lp_accum__.add(reduce_sum(y3, 1, pstream__)); + current_statement__ = 31; + lp_accum__.add(reduce_sum(y2, 1, pstream__)); + current_statement__ = 32; + lp_accum__.add(reduce_sum(y1, 1, pstream__)); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m2_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + std::vector>> a8; + a8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(a8, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + a8 = in__.template read>>>( + N, N, N, N); + std::vector>> a7; + a7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(a7, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + a7 = in__.template read>>>( + N, N, N); + std::vector>> a6; + a6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(a6, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + a6 = in__.template read>>>( + N, N, N); + std::vector> a5; + a5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + + + current_statement__ = 4; + a5 = in__.template read>>(N, + N); + std::vector> a4; + a4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(a4, std::numeric_limits::quiet_NaN()); + + current_statement__ = 5; + a4 = in__.template read>>( + N, N, N); + std::vector> a3; + a3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(a3, std::numeric_limits::quiet_NaN()); + + current_statement__ = 6; + a3 = in__.template read>>( + N, N); + std::vector> a2; + a2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(a2, std::numeric_limits::quiet_NaN()); + + current_statement__ = 7; + a2 = in__.template read>>( + N, N); + std::vector a1; + a1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 8; + a1 = in__.template read>(N); + std::vector>> y8; + y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8, std::numeric_limits::quiet_NaN()); + + current_statement__ = 9; + y8 = in__.template read>>>( + N, N, N, N); + std::vector>> y7; + y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7, std::numeric_limits::quiet_NaN()); + + current_statement__ = 10; + y7 = in__.template read>>>( + N, N, N); + std::vector>> y6; + y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6, std::numeric_limits::quiet_NaN()); + + current_statement__ = 11; + y6 = in__.template read>>>( + N, N, N); + std::vector> y5; + y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + + + current_statement__ = 12; + y5 = in__.template read>>(N, + N); + std::vector> y4; + y4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4, std::numeric_limits::quiet_NaN()); + + current_statement__ = 13; + y4 = in__.template read>>( + N, N, N); + std::vector> y3; + y3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3, std::numeric_limits::quiet_NaN()); + + current_statement__ = 14; + y3 = in__.template read>>( + N, N); + std::vector> y2; + y2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2, std::numeric_limits::quiet_NaN()); + + current_statement__ = 15; + y2 = in__.template read>>( + N, N); + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 16; + y1 = in__.template read>(N); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + rvalue(a8, "a8", + index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), + index_uni(sym1__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + a7[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + a6[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(a5[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + rvalue(a4, "a4", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(a3[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(a2[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(a1[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + rvalue(y8, "y8", + index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), + index_uni(sym1__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y7[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y6[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y5[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + rvalue(y4, "y4", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y3[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y2[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]); + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + std::vector>> a8; + a8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(a8, std::numeric_limits::quiet_NaN()); + + { + std::vector a8_flat__; + current_statement__ = 1; + a8_flat__ = context__.vals_r("a8"); + current_statement__ = 1; + pos__ = 1; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 1; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 1; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 1; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 1; + assign(a8, a8_flat__[(pos__ - 1)], + "assigning variable a8", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 1; + pos__ = (pos__ + 1); + } + } + } + } + } + std::vector>> a7; + a7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(a7, std::numeric_limits::quiet_NaN()); + + { + std::vector a7_flat__; + current_statement__ = 2; + a7_flat__ = context__.vals_r("a7"); + current_statement__ = 2; + pos__ = 1; + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 2; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 2; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 2; + assign(a7, a7_flat__[(pos__ - 1)], + "assigning variable a7", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 2; + pos__ = (pos__ + 1); + } + } + } + } + std::vector>> a6; + a6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(a6, std::numeric_limits::quiet_NaN()); + + { + std::vector a6_flat__; + current_statement__ = 3; + a6_flat__ = context__.vals_r("a6"); + current_statement__ = 3; + pos__ = 1; + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 3; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 3; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 3; + assign(a6, a6_flat__[(pos__ - 1)], + "assigning variable a6", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 3; + pos__ = (pos__ + 1); + } + } + } + } + std::vector> a5; + a5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + + + { + std::vector a5_flat__; + current_statement__ = 4; + a5_flat__ = context__.vals_r("a5"); + current_statement__ = 4; + pos__ = 1; + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 4; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 4; + assign(a5, a5_flat__[(pos__ - 1)], + "assigning variable a5", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 4; + pos__ = (pos__ + 1); + } + } + } + std::vector> a4; + a4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(a4, std::numeric_limits::quiet_NaN()); + + { + std::vector a4_flat__; + current_statement__ = 5; + a4_flat__ = context__.vals_r("a4"); + current_statement__ = 5; + pos__ = 1; + current_statement__ = 5; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 5; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 5; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 5; + assign(a4, a4_flat__[(pos__ - 1)], + "assigning variable a4", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 5; + pos__ = (pos__ + 1); + } + } + } + } + std::vector> a3; + a3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(a3, std::numeric_limits::quiet_NaN()); + + { + std::vector a3_flat__; + current_statement__ = 6; + a3_flat__ = context__.vals_r("a3"); + current_statement__ = 6; + pos__ = 1; + current_statement__ = 6; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 6; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 6; + assign(a3, a3_flat__[(pos__ - 1)], + "assigning variable a3", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 6; + pos__ = (pos__ + 1); + } + } + } + std::vector> a2; + a2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(a2, std::numeric_limits::quiet_NaN()); + + { + std::vector a2_flat__; + current_statement__ = 7; + a2_flat__ = context__.vals_r("a2"); + current_statement__ = 7; + pos__ = 1; + current_statement__ = 7; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 7; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 7; + assign(a2, a2_flat__[(pos__ - 1)], + "assigning variable a2", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 7; + pos__ = (pos__ + 1); + } + } + } + std::vector a1; + a1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 8; + a1 = context__.vals_r("a1"); + std::vector>> y8; + y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8, std::numeric_limits::quiet_NaN()); + + { + std::vector y8_flat__; + current_statement__ = 9; + y8_flat__ = context__.vals_r("y8"); + current_statement__ = 9; + pos__ = 1; + current_statement__ = 9; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 9; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 9; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 9; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 9; + assign(y8, y8_flat__[(pos__ - 1)], + "assigning variable y8", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 9; + pos__ = (pos__ + 1); + } + } + } + } + } + std::vector>> y7; + y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7, std::numeric_limits::quiet_NaN()); + + { + std::vector y7_flat__; + current_statement__ = 10; + y7_flat__ = context__.vals_r("y7"); + current_statement__ = 10; + pos__ = 1; + current_statement__ = 10; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 10; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 10; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 10; + assign(y7, y7_flat__[(pos__ - 1)], + "assigning variable y7", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 10; + pos__ = (pos__ + 1); + } + } + } + } + std::vector>> y6; + y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6, std::numeric_limits::quiet_NaN()); + + { + std::vector y6_flat__; + current_statement__ = 11; + y6_flat__ = context__.vals_r("y6"); + current_statement__ = 11; + pos__ = 1; + current_statement__ = 11; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 11; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 11; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 11; + assign(y6, y6_flat__[(pos__ - 1)], + "assigning variable y6", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 11; + pos__ = (pos__ + 1); + } + } + } + } + std::vector> y5; + y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + + + { + std::vector y5_flat__; + current_statement__ = 12; + y5_flat__ = context__.vals_r("y5"); + current_statement__ = 12; + pos__ = 1; + current_statement__ = 12; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 12; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 12; + assign(y5, y5_flat__[(pos__ - 1)], + "assigning variable y5", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 12; + pos__ = (pos__ + 1); + } + } + } + std::vector> y4; + y4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4, std::numeric_limits::quiet_NaN()); + + { + std::vector y4_flat__; + current_statement__ = 13; + y4_flat__ = context__.vals_r("y4"); + current_statement__ = 13; + pos__ = 1; + current_statement__ = 13; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 13; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 13; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 13; + assign(y4, y4_flat__[(pos__ - 1)], + "assigning variable y4", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 13; + pos__ = (pos__ + 1); + } + } + } + } + std::vector> y3; + y3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3, std::numeric_limits::quiet_NaN()); + + { + std::vector y3_flat__; + current_statement__ = 14; + y3_flat__ = context__.vals_r("y3"); + current_statement__ = 14; + pos__ = 1; + current_statement__ = 14; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 14; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 14; + assign(y3, y3_flat__[(pos__ - 1)], + "assigning variable y3", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 14; + pos__ = (pos__ + 1); + } + } + } + std::vector> y2; + y2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2, std::numeric_limits::quiet_NaN()); + + { + std::vector y2_flat__; + current_statement__ = 15; + y2_flat__ = context__.vals_r("y2"); + current_statement__ = 15; + pos__ = 1; + current_statement__ = 15; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 15; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 15; + assign(y2, y2_flat__[(pos__ - 1)], + "assigning variable y2", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 15; + pos__ = (pos__ + 1); + } + } + } + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 16; + y1 = context__.vals_r("y1"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + rvalue(a8, "a8", + index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), + index_uni(sym3__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + a7[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + a6[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(a5[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + rvalue(a4, "a4", + index_uni(sym1__), index_uni(sym3__), index_uni(sym2__))); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(a3[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(a2[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(a1[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + rvalue(y8, "y8", + index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), + index_uni(sym3__))); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y7[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y6[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y5[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + rvalue(y4, "y4", + index_uni(sym1__), index_uni(sym3__), index_uni(sym2__))); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y3[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y2[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"a8", "a7", "a6", "a5", "a4", "a3", + "a2", "a1", "y8", "y7", "y6", "y5", "y4", "y3", "y2", "y1"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{ + static_cast(N) + , + static_cast(N) + , + static_cast(N) + , + static_cast(N) + }, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N)}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "a8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "a7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "a6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "a5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "a4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "a3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "a2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "a1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "a8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "a7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "a6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "a5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "a4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "a3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "a2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "a1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"a8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"a4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"a8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"a5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"a4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"a1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = reduce_sum_m2_model_namespace::reduce_sum_m2_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return reduce_sum_m2_model_namespace::profiles__; +} + +#endif + + + + $ ../../../../../../install/default/bin/stanc --print-cpp reduce_sum_m3.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace reduce_sum_m3_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'reduce_sum_m3.stan', line 210, column 2 to column 13)", + " (in 'reduce_sum_m3.stan', line 211, column 2 to column 18)", + " (in 'reduce_sum_m3.stan', line 212, column 2 to column 22)", + " (in 'reduce_sum_m3.stan', line 213, column 2 to column 21)", + " (in 'reduce_sum_m3.stan', line 214, column 2 to column 16)", + " (in 'reduce_sum_m3.stan', line 215, column 2 to column 21)", + " (in 'reduce_sum_m3.stan', line 216, column 2 to column 25)", + " (in 'reduce_sum_m3.stan', line 217, column 2 to column 24)", + " (in 'reduce_sum_m3.stan', line 218, column 2 to column 10)", + " (in 'reduce_sum_m3.stan', line 219, column 2 to column 16)", + " (in 'reduce_sum_m3.stan', line 220, column 2 to column 20)", + " (in 'reduce_sum_m3.stan', line 221, column 2 to column 19)", + " (in 'reduce_sum_m3.stan', line 222, column 2 to column 20)", + " (in 'reduce_sum_m3.stan', line 260, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 261, column 2 to column 60)", + " (in 'reduce_sum_m3.stan', line 262, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 263, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 264, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 265, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 266, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 267, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 268, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 269, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 270, column 2 to column 38)", + " (in 'reduce_sum_m3.stan', line 271, column 2 to column 38)", + " (in 'reduce_sum_m3.stan', line 272, column 2 to column 37)", + " (in 'reduce_sum_m3.stan', line 273, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 274, column 2 to column 40)", + " (in 'reduce_sum_m3.stan', line 275, column 2 to column 40)", + " (in 'reduce_sum_m3.stan', line 276, column 2 to column 40)", + " (in 'reduce_sum_m3.stan', line 277, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 278, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 279, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 280, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 281, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 282, column 2 to column 41)", + " (in 'reduce_sum_m3.stan', line 283, column 2 to column 41)", + " (in 'reduce_sum_m3.stan', line 284, column 2 to column 41)", + " (in 'reduce_sum_m3.stan', line 285, column 2 to line 288, column 35)", + " (in 'reduce_sum_m3.stan', line 226, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 227, column 2 to column 60)", + " (in 'reduce_sum_m3.stan', line 228, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 229, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 230, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 231, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 232, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 233, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 234, column 2 to column 34)", + " (in 'reduce_sum_m3.stan', line 235, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 236, column 2 to column 38)", + " (in 'reduce_sum_m3.stan', line 237, column 2 to column 38)", + " (in 'reduce_sum_m3.stan', line 238, column 2 to column 37)", + " (in 'reduce_sum_m3.stan', line 239, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 240, column 2 to column 40)", + " (in 'reduce_sum_m3.stan', line 241, column 2 to column 40)", + " (in 'reduce_sum_m3.stan', line 242, column 2 to column 40)", + " (in 'reduce_sum_m3.stan', line 243, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 244, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 245, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 246, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 247, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 248, column 2 to column 41)", + " (in 'reduce_sum_m3.stan', line 249, column 2 to column 41)", + " (in 'reduce_sum_m3.stan', line 250, column 2 to column 41)", + " (in 'reduce_sum_m3.stan', line 251, column 2 to line 254, column 34)", + " (in 'reduce_sum_m3.stan', line 256, column 2 to column 16)", + " (in 'reduce_sum_m3.stan', line 157, column 2 to column 8)", + " (in 'reduce_sum_m3.stan', line 158, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 158, column 2 to column 14)", + " (in 'reduce_sum_m3.stan', line 159, column 16 to column 17)", + " (in 'reduce_sum_m3.stan', line 159, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 159, column 2 to column 19)", + " (in 'reduce_sum_m3.stan', line 160, column 20 to column 21)", + " (in 'reduce_sum_m3.stan', line 160, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 160, column 2 to column 23)", + " (in 'reduce_sum_m3.stan', line 161, column 19 to column 20)", + " (in 'reduce_sum_m3.stan', line 161, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 161, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 161, column 2 to column 22)", + " (in 'reduce_sum_m3.stan', line 162, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 162, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 162, column 2 to column 17)", + " (in 'reduce_sum_m3.stan', line 163, column 16 to column 17)", + " (in 'reduce_sum_m3.stan', line 163, column 19 to column 20)", + " (in 'reduce_sum_m3.stan', line 163, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 163, column 2 to column 22)", + " (in 'reduce_sum_m3.stan', line 164, column 20 to column 21)", + " (in 'reduce_sum_m3.stan', line 164, column 23 to column 24)", + " (in 'reduce_sum_m3.stan', line 164, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 164, column 2 to column 26)", + " (in 'reduce_sum_m3.stan', line 165, column 19 to column 20)", + " (in 'reduce_sum_m3.stan', line 165, column 22 to column 23)", + " (in 'reduce_sum_m3.stan', line 165, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 165, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 165, column 2 to column 25)", + " (in 'reduce_sum_m3.stan', line 166, column 2 to column 11)", + " (in 'reduce_sum_m3.stan', line 167, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 167, column 2 to column 17)", + " (in 'reduce_sum_m3.stan', line 168, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 168, column 2 to column 21)", + " (in 'reduce_sum_m3.stan', line 169, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 169, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 169, column 2 to column 20)", + " (in 'reduce_sum_m3.stan', line 170, column 2 to column 11)", + " (in 'reduce_sum_m3.stan', line 171, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 171, column 2 to column 14)", + " (in 'reduce_sum_m3.stan', line 172, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 172, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 172, column 2 to column 17)", + " (in 'reduce_sum_m3.stan', line 173, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 173, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 173, column 17 to column 18)", + " (in 'reduce_sum_m3.stan', line 173, column 2 to column 20)", + " (in 'reduce_sum_m3.stan', line 174, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 174, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 174, column 18 to column 19)", + " (in 'reduce_sum_m3.stan', line 174, column 2 to column 21)", + " (in 'reduce_sum_m3.stan', line 178, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 179, column 2 to column 63)", + " (in 'reduce_sum_m3.stan', line 180, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 181, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 182, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 183, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 184, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 185, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 186, column 2 to column 36)", + " (in 'reduce_sum_m3.stan', line 187, column 2 to column 37)", + " (in 'reduce_sum_m3.stan', line 188, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 189, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 190, column 2 to column 39)", + " (in 'reduce_sum_m3.stan', line 191, column 2 to column 42)", + " (in 'reduce_sum_m3.stan', line 192, column 2 to column 43)", + " (in 'reduce_sum_m3.stan', line 193, column 2 to column 43)", + " (in 'reduce_sum_m3.stan', line 194, column 2 to column 43)", + " (in 'reduce_sum_m3.stan', line 195, column 2 to column 42)", + " (in 'reduce_sum_m3.stan', line 196, column 2 to column 42)", + " (in 'reduce_sum_m3.stan', line 197, column 2 to column 42)", + " (in 'reduce_sum_m3.stan', line 198, column 2 to column 42)", + " (in 'reduce_sum_m3.stan', line 199, column 2 to column 42)", + " (in 'reduce_sum_m3.stan', line 200, column 2 to column 44)", + " (in 'reduce_sum_m3.stan', line 201, column 2 to column 44)", + " (in 'reduce_sum_m3.stan', line 202, column 2 to column 44)", + " (in 'reduce_sum_m3.stan', line 203, column 2 to line 206, column 36)", + " (in 'reduce_sum_m3.stan', line 210, column 10 to column 11)", + " (in 'reduce_sum_m3.stan', line 211, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 211, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 212, column 19 to column 20)", + " (in 'reduce_sum_m3.stan', line 212, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 213, column 18 to column 19)", + " (in 'reduce_sum_m3.stan', line 213, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 213, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 214, column 10 to column 11)", + " (in 'reduce_sum_m3.stan', line 214, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 215, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 215, column 18 to column 19)", + " (in 'reduce_sum_m3.stan', line 215, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 216, column 19 to column 20)", + " (in 'reduce_sum_m3.stan', line 216, column 22 to column 23)", + " (in 'reduce_sum_m3.stan', line 216, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 217, column 18 to column 19)", + " (in 'reduce_sum_m3.stan', line 217, column 21 to column 22)", + " (in 'reduce_sum_m3.stan', line 217, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 217, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 219, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 220, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 221, column 9 to column 10)", + " (in 'reduce_sum_m3.stan', line 221, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 222, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 222, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 222, column 17 to column 18)", + " (in 'reduce_sum_m3.stan', line 3, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 2, column 46 to line 4, column 3)", + " (in 'reduce_sum_m3.stan', line 6, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 5, column 47 to line 7, column 3)", + " (in 'reduce_sum_m3.stan', line 9, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 8, column 48 to line 10, column 3)", + " (in 'reduce_sum_m3.stan', line 12, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 11, column 52 to line 13, column 3)", + " (in 'reduce_sum_m3.stan', line 15, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 14, column 48 to line 16, column 3)", + " (in 'reduce_sum_m3.stan', line 18, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 17, column 47 to line 19, column 3)", + " (in 'reduce_sum_m3.stan', line 21, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 20, column 49 to line 22, column 3)", + " (in 'reduce_sum_m3.stan', line 24, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 23, column 53 to line 25, column 3)", + " (in 'reduce_sum_m3.stan', line 27, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 26, column 49 to line 28, column 3)", + " (in 'reduce_sum_m3.stan', line 30, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 29, column 45 to line 31, column 3)", + " (in 'reduce_sum_m3.stan', line 33, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 32, column 47 to line 34, column 3)", + " (in 'reduce_sum_m3.stan', line 36, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 35, column 48 to line 37, column 3)", + " (in 'reduce_sum_m3.stan', line 39, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 38, column 49 to line 40, column 3)", + " (in 'reduce_sum_m3.stan', line 42, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 41, column 54 to line 43, column 3)", + " (in 'reduce_sum_m3.stan', line 45, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 44, column 56 to line 46, column 3)", + " (in 'reduce_sum_m3.stan', line 48, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 47, column 60 to line 49, column 3)", + " (in 'reduce_sum_m3.stan', line 51, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 50, column 56 to line 52, column 3)", + " (in 'reduce_sum_m3.stan', line 54, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 53, column 56 to line 55, column 3)", + " (in 'reduce_sum_m3.stan', line 57, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 56, column 58 to line 58, column 3)", + " (in 'reduce_sum_m3.stan', line 60, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 59, column 62 to line 61, column 3)", + " (in 'reduce_sum_m3.stan', line 63, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 62, column 58 to line 64, column 3)", + " (in 'reduce_sum_m3.stan', line 66, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 65, column 57 to line 67, column 3)", + " (in 'reduce_sum_m3.stan', line 69, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 68, column 60 to line 70, column 3)", + " (in 'reduce_sum_m3.stan', line 72, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 71, column 64 to line 73, column 3)", + " (in 'reduce_sum_m3.stan', line 75, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 74, column 60 to line 76, column 3)", + " (in 'reduce_sum_m3.stan', line 82, column 4 to line 86, column 28)", + " (in 'reduce_sum_m3.stan', line 81, column 32 to line 87, column 3)", + " (in 'reduce_sum_m3.stan', line 89, column 4 to column 10)", + " (in 'reduce_sum_m3.stan', line 90, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 90, column 4 to column 16)", + " (in 'reduce_sum_m3.stan', line 91, column 18 to column 19)", + " (in 'reduce_sum_m3.stan', line 91, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 91, column 4 to column 21)", + " (in 'reduce_sum_m3.stan', line 92, column 22 to column 23)", + " (in 'reduce_sum_m3.stan', line 92, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 92, column 4 to column 25)", + " (in 'reduce_sum_m3.stan', line 93, column 21 to column 22)", + " (in 'reduce_sum_m3.stan', line 93, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 93, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 93, column 4 to column 24)", + " (in 'reduce_sum_m3.stan', line 94, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 94, column 16 to column 17)", + " (in 'reduce_sum_m3.stan', line 94, column 4 to column 19)", + " (in 'reduce_sum_m3.stan', line 95, column 18 to column 19)", + " (in 'reduce_sum_m3.stan', line 95, column 21 to column 22)", + " (in 'reduce_sum_m3.stan', line 95, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 95, column 4 to column 24)", + " (in 'reduce_sum_m3.stan', line 96, column 22 to column 23)", + " (in 'reduce_sum_m3.stan', line 96, column 25 to column 26)", + " (in 'reduce_sum_m3.stan', line 96, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 96, column 4 to column 28)", + " (in 'reduce_sum_m3.stan', line 97, column 21 to column 22)", + " (in 'reduce_sum_m3.stan', line 97, column 24 to column 25)", + " (in 'reduce_sum_m3.stan', line 97, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 97, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 97, column 4 to column 27)", + " (in 'reduce_sum_m3.stan', line 98, column 4 to column 13)", + " (in 'reduce_sum_m3.stan', line 99, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 99, column 4 to column 19)", + " (in 'reduce_sum_m3.stan', line 100, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 100, column 4 to column 23)", + " (in 'reduce_sum_m3.stan', line 101, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 101, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 101, column 4 to column 22)", + " (in 'reduce_sum_m3.stan', line 102, column 4 to column 13)", + " (in 'reduce_sum_m3.stan', line 103, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 103, column 4 to column 16)", + " (in 'reduce_sum_m3.stan', line 104, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 104, column 16 to column 17)", + " (in 'reduce_sum_m3.stan', line 104, column 4 to column 19)", + " (in 'reduce_sum_m3.stan', line 105, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 105, column 16 to column 17)", + " (in 'reduce_sum_m3.stan', line 105, column 19 to column 20)", + " (in 'reduce_sum_m3.stan', line 105, column 4 to column 22)", + " (in 'reduce_sum_m3.stan', line 106, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 106, column 17 to column 18)", + " (in 'reduce_sum_m3.stan', line 106, column 20 to column 21)", + " (in 'reduce_sum_m3.stan', line 106, column 4 to column 23)", + " (in 'reduce_sum_m3.stan', line 108, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 108, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 109, column 17 to column 18)", + " (in 'reduce_sum_m3.stan', line 109, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 109, column 4 to column 20)", + " (in 'reduce_sum_m3.stan', line 110, column 21 to column 22)", + " (in 'reduce_sum_m3.stan', line 110, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 110, column 4 to column 24)", + " (in 'reduce_sum_m3.stan', line 111, column 20 to column 21)", + " (in 'reduce_sum_m3.stan', line 111, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 111, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 111, column 4 to column 23)", + " (in 'reduce_sum_m3.stan', line 112, column 12 to column 13)", + " (in 'reduce_sum_m3.stan', line 112, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 112, column 4 to column 18)", + " (in 'reduce_sum_m3.stan', line 113, column 17 to column 18)", + " (in 'reduce_sum_m3.stan', line 113, column 20 to column 21)", + " (in 'reduce_sum_m3.stan', line 113, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 113, column 4 to column 23)", + " (in 'reduce_sum_m3.stan', line 114, column 21 to column 22)", + " (in 'reduce_sum_m3.stan', line 114, column 24 to column 25)", + " (in 'reduce_sum_m3.stan', line 114, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 114, column 4 to column 27)", + " (in 'reduce_sum_m3.stan', line 115, column 20 to column 21)", + " (in 'reduce_sum_m3.stan', line 115, column 23 to column 24)", + " (in 'reduce_sum_m3.stan', line 115, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 115, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 115, column 4 to column 26)", + " (in 'reduce_sum_m3.stan', line 116, column 4 to column 12)", + " (in 'reduce_sum_m3.stan', line 117, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 117, column 4 to column 18)", + " (in 'reduce_sum_m3.stan', line 118, column 15 to column 16)", + " (in 'reduce_sum_m3.stan', line 118, column 4 to column 22)", + " (in 'reduce_sum_m3.stan', line 119, column 11 to column 12)", + " (in 'reduce_sum_m3.stan', line 119, column 14 to column 15)", + " (in 'reduce_sum_m3.stan', line 119, column 4 to column 21)", + " (in 'reduce_sum_m3.stan', line 120, column 13 to column 14)", + " (in 'reduce_sum_m3.stan', line 120, column 16 to column 17)", + " (in 'reduce_sum_m3.stan', line 120, column 19 to column 20)", + " (in 'reduce_sum_m3.stan', line 120, column 4 to column 22)", + " (in 'reduce_sum_m3.stan', line 122, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 123, column 4 to column 62)", + " (in 'reduce_sum_m3.stan', line 124, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 125, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 126, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 127, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 128, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 129, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 130, column 4 to column 36)", + " (in 'reduce_sum_m3.stan', line 131, column 4 to column 38)", + " (in 'reduce_sum_m3.stan', line 132, column 4 to column 40)", + " (in 'reduce_sum_m3.stan', line 133, column 4 to column 40)", + " (in 'reduce_sum_m3.stan', line 134, column 4 to column 39)", + " (in 'reduce_sum_m3.stan', line 135, column 4 to column 41)", + " (in 'reduce_sum_m3.stan', line 136, column 4 to column 42)", + " (in 'reduce_sum_m3.stan', line 137, column 4 to column 42)", + " (in 'reduce_sum_m3.stan', line 138, column 4 to column 42)", + " (in 'reduce_sum_m3.stan', line 139, column 4 to column 41)", + " (in 'reduce_sum_m3.stan', line 140, column 4 to column 41)", + " (in 'reduce_sum_m3.stan', line 141, column 4 to column 41)", + " (in 'reduce_sum_m3.stan', line 142, column 4 to column 41)", + " (in 'reduce_sum_m3.stan', line 143, column 4 to column 41)", + " (in 'reduce_sum_m3.stan', line 144, column 4 to column 43)", + " (in 'reduce_sum_m3.stan', line 145, column 4 to column 43)", + " (in 'reduce_sum_m3.stan', line 146, column 4 to column 43)", + " (in 'reduce_sum_m3.stan', line 147, column 4 to line 150, column 36)", + " (in 'reduce_sum_m3.stan', line 152, column 4 to column 15)", + " (in 'reduce_sum_m3.stan', line 88, column 11 to line 153, column 3)"}; +struct f10_rsfunctor__; +struct f11_rsfunctor__; +struct f12_rsfunctor__; +struct f1_rsfunctor__; +struct f1a_rsfunctor__; +struct f2_rsfunctor__; +struct f3_rsfunctor__; +struct f4_rsfunctor__; +struct f5_rsfunctor__; +struct f6_rsfunctor__; +struct f7_rsfunctor__; +struct f8_rsfunctor__; +struct f9_rsfunctor__; +struct g10_rsfunctor__; +struct g11_rsfunctor__; +struct g12_rsfunctor__; +struct g1_rsfunctor__; +struct g2_rsfunctor__; +struct g3_rsfunctor__; +struct g4_rsfunctor__; +struct g5_rsfunctor__; +struct g6_rsfunctor__; +struct g7_rsfunctor__; +struct g8_rsfunctor__; +struct g9_rsfunctor__; +struct s_rsfunctor__; +template +stan::promote_args_t +f1(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct f1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f1a(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct f1a_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1a(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f1a_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f1a(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f2(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f2_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f2(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f2_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f2(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f3(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f3_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f3(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f3_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f3(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f4(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f4_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f4(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f4_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f4(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f5(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f5(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f5_functor__ { +template +stan::promote_args_t +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f5(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f6(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f6(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f6_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f6(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f7(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f7(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f7_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f7(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f8(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f8(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f8_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f8(y_slice, start, end, pstream__); +} +}; + +double +f9(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) ; + +struct f9_rsfunctor__ { +double +operator()(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) const +{ +return f9(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f9_functor__ { +double +operator()(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) const +{ +return f9(y_slice, start, end, pstream__); +} +}; + +double +f10(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) ; + +struct f10_rsfunctor__ { +double +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f10(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f10_functor__ { +double +operator()(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) const +{ +return f10(y_slice, start, end, pstream__); +} +}; + +double +f11(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f11_rsfunctor__ { +double +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f11(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f11_functor__ { +double +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f11(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +f12(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) ; + +struct f12_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f12(y_slice, start + 1, end + 1, pstream__); +} +}; + + +struct f12_functor__ { +template +stan::promote_args_t +operator()(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) const +{ +return f12(y_slice, start, end, pstream__); +} +}; + +template +stan::promote_args_t +g1(const std::vector& y_slice, const int& start, const int& end, + const T3__& a, std::ostream* pstream__) ; + +struct g1_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const T3__& a) const +{ +return g1(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g1_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const T3__& a, std::ostream* pstream__) const +{ +return g1(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t> +g2(const std::vector& y_slice, const int& start, const int& end, + const T3__& a, std::ostream* pstream__) ; + +struct g2_rsfunctor__ { +template +stan::promote_args_t> +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const T3__& a) const +{ +return g2(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g2_functor__ { +template +stan::promote_args_t> +operator()(const std::vector& y_slice, const int& start, + const int& end, const T3__& a, std::ostream* pstream__) const +{ +return g2(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t> +g3(const std::vector& y_slice, const int& start, const int& end, + const T3__& a, std::ostream* pstream__) ; + +struct g3_rsfunctor__ { +template +stan::promote_args_t> +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const T3__& a) const +{ +return g3(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g3_functor__ { +template +stan::promote_args_t> +operator()(const std::vector& y_slice, const int& start, + const int& end, const T3__& a, std::ostream* pstream__) const +{ +return g3(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t> +g4(const std::vector& y_slice, const int& start, const int& end, + const T3__& a, std::ostream* pstream__) ; + +struct g4_rsfunctor__ { +template +stan::promote_args_t> +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const T3__& a) const +{ +return g4(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g4_functor__ { +template +stan::promote_args_t> +operator()(const std::vector& y_slice, const int& start, + const int& end, const T3__& a, std::ostream* pstream__) const +{ +return g4(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g5(const std::vector& y_slice, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) ; + +struct g5_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector& a) const +{ +return g5(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g5_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) const +{ +return g5(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g6(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g6_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>& a) const +{ +return g6(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g6_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector>& a, + std::ostream* pstream__) const +{ +return g6(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g7(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g7_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>& a) const +{ +return g7(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g7_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector>& a, + std::ostream* pstream__) const +{ +return g7(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g8(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g8_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>& a) const +{ +return g8(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g8_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector>& a, + std::ostream* pstream__) const +{ +return g8(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g9(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) ; + +struct g9_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>& a) const +{ +return g9(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g9_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, const std::vector>& a, + std::ostream* pstream__) const +{ +return g9(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g10(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct g10_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>>& a) const +{ +return g10(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g10_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return g10(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g11(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct g11_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>>& a) const +{ +return g11(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g11_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return g11(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t +g12(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) ; + +struct g12_rsfunctor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, + const std::vector>>& a) const +{ +return g12(y_slice, start + 1, end + 1, a, pstream__); +} +}; + + +struct g12_functor__ { +template +stan::promote_args_t +operator()(const std::vector& y_slice, const int& start, + const int& end, + const std::vector>>& a, + std::ostream* pstream__) const +{ +return g12(y_slice, start, end, a, pstream__); +} +}; + +template +stan::promote_args_t, +stan::value_type_t, +stan::value_type_t, stan::promote_args_t>> +s(const std::vector& y_slice, const int& start, const int& end, + const int& a, const T4__& b, const T5__& c, const T6__& d, const T7__& e, + const std::vector& f, const std::vector& g, + const std::vector>& h, + const std::vector>& i, + const std::vector>& j, + const std::vector>& k, + const std::vector>& l, + const std::vector>>& m, + const std::vector>>& n, + const std::vector>>& o, + const std::vector>>& p, + const std::vector>>& q, + std::ostream* pstream__) ; + +struct s_rsfunctor__ { +template +stan::promote_args_t, +stan::value_type_t, +stan::value_type_t, stan::promote_args_t>> +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__, const int& a, + const T4__& b, const T5__& c, const T6__& d, const T7__& e, + const std::vector& f, const std::vector& g, + const std::vector>& h, + const std::vector>& i, + const std::vector>& j, + const std::vector>& k, + const std::vector>& l, + const std::vector>>& m, + const std::vector>>& n, + const std::vector>>& o, + const std::vector>>& p, + const std::vector>>& q) const +{ +return s(y_slice, start + 1, end + 1, a, b, c, d, e, f, g, h, i, j, k, l, m, + n, o, p, q, pstream__); +} +}; + + +struct s_functor__ { +template +stan::promote_args_t, +stan::value_type_t, +stan::value_type_t, stan::promote_args_t>> +operator()(const std::vector& y_slice, const int& start, + const int& end, const int& a, const T4__& b, const T5__& c, + const T6__& d, const T7__& e, const std::vector& f, + const std::vector& g, + const std::vector>& h, + const std::vector>& i, + const std::vector>& j, + const std::vector>& k, + const std::vector>& l, + const std::vector>>& m, + const std::vector>>& n, + const std::vector>>& o, + const std::vector>>& p, + const std::vector>>& q, + std::ostream* pstream__) const +{ +return s(y_slice, start, end, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, + q, pstream__); +} +}; + +double +r(std::ostream* pstream__) ; + +struct r_functor__ { +double +operator()(std::ostream* pstream__) const +{ +return r(pstream__); +} +}; + +template +stan::promote_args_t +f1(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 171; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f1a(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 173; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f2(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 175; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f3(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 177; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f4(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 179; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f5(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 181; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f6(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 183; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f7(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 185; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f8(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 187; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +double +f9(const std::vector& y_slice, const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 189; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +double +f10(const std::vector>& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 191; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +double +f11(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 193; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f12(const std::vector>>& y_slice, + const int& start, const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 195; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g1(const std::vector& y_slice, const int& start, const int& end, + const T3__& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 197; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t> +g2(const std::vector& y_slice, const int& start, const int& end, + const T3__& a_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + int current_statement__ = 0; + const auto& a = to_ref(a_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 199; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t> +g3(const std::vector& y_slice, const int& start, const int& end, + const T3__& a_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + int current_statement__ = 0; + const auto& a = to_ref(a_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 201; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t> +g4(const std::vector& y_slice, const int& start, const int& end, + const T3__& a_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + int current_statement__ = 0; + const auto& a = to_ref(a_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 203; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g5(const std::vector& y_slice, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 205; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g6(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 207; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g7(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 209; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g8(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 211; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g9(const std::vector& y_slice, const int& start, const int& end, + const std::vector>& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 213; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g10(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 215; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g11(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 217; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +g12(const std::vector& y_slice, const int& start, const int& end, + const std::vector>>& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 219; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t, +stan::value_type_t, +stan::value_type_t, stan::promote_args_t>> +s(const std::vector& y_slice, const int& start, const int& end, + const int& a, const T4__& b, const T5__& c_arg__, const T6__& d_arg__, + const T7__& e_arg__, const std::vector& f, const std::vector& g, + const std::vector>& h, + const std::vector>& i, + const std::vector>& j, + const std::vector>& k, + const std::vector>& l, + const std::vector>>& m, + const std::vector>>& n, + const std::vector>>& o, + const std::vector>>& p, + const std::vector>>& q, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t, + stan::value_type_t, stan::promote_args_t>>; + int current_statement__ = 0; + const auto& c = to_ref(c_arg__); + const auto& d = to_ref(d_arg__); + const auto& e = to_ref(e_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 221; + return reduce_sum(y_slice, 1, pstream__, a, b, c, d, e, f, + g, h, i, j, k, l, m, n, o, p, q); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +double +r(std::ostream* pstream__) { + using local_scalar_t__ = double; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int N; + N = std::numeric_limits::min(); + + current_statement__ = 224; + validate_non_negative_index("y1d", "N", N); + std::vector y1d; + y1d = std::vector(N, DUMMY_VAR__); + + current_statement__ = 226; + validate_non_negative_index("y2d", "N", N); + current_statement__ = 227; + validate_non_negative_index("y2d", "N", N); + std::vector> y2d; + y2d = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2d, DUMMY_VAR__); + + current_statement__ = 229; + validate_non_negative_index("y3d", "N", N); + current_statement__ = 230; + validate_non_negative_index("y3d", "N", N); + std::vector> y3d; + y3d = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3d, DUMMY_VAR__); + + current_statement__ = 232; + validate_non_negative_index("y4d", "N", N); + current_statement__ = 233; + validate_non_negative_index("y4d", "N", N); + current_statement__ = 234; + validate_non_negative_index("y4d", "N", N); + std::vector> y4d; + y4d = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4d, DUMMY_VAR__); + + current_statement__ = 236; + validate_non_negative_index("y5d", "N", N); + current_statement__ = 237; + validate_non_negative_index("y5d", "N", N); + std::vector> y5d; + y5d = std::vector>(N, std::vector(N, DUMMY_VAR__)); + + + current_statement__ = 239; + validate_non_negative_index("y6d", "N", N); + current_statement__ = 240; + validate_non_negative_index("y6d", "N", N); + current_statement__ = 241; + validate_non_negative_index("y6d", "N", N); + std::vector>> y6d; + y6d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6d, DUMMY_VAR__); + + current_statement__ = 243; + validate_non_negative_index("y7d", "N", N); + current_statement__ = 244; + validate_non_negative_index("y7d", "N", N); + current_statement__ = 245; + validate_non_negative_index("y7d", "N", N); + std::vector>> y7d; + y7d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7d, DUMMY_VAR__); + + current_statement__ = 247; + validate_non_negative_index("y8d", "N", N); + current_statement__ = 248; + validate_non_negative_index("y8d", "N", N); + current_statement__ = 249; + validate_non_negative_index("y8d", "N", N); + current_statement__ = 250; + validate_non_negative_index("y8d", "N", N); + std::vector>> y8d; + y8d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8d, DUMMY_VAR__); + + local_scalar_t__ y9d; + y9d = DUMMY_VAR__; + + current_statement__ = 253; + validate_non_negative_index("y10d", "N", N); + Eigen::Matrix y10d; + y10d = Eigen::Matrix(N); + stan::math::fill(y10d, DUMMY_VAR__); + + current_statement__ = 255; + validate_non_negative_index("y11d", "N", N); + Eigen::Matrix y11d; + y11d = Eigen::Matrix(N); + stan::math::fill(y11d, DUMMY_VAR__); + + current_statement__ = 257; + validate_non_negative_index("y12d", "N", N); + current_statement__ = 258; + validate_non_negative_index("y12d", "N", N); + Eigen::Matrix y12d; + y12d = Eigen::Matrix(N, N); + stan::math::fill(y12d, DUMMY_VAR__); + + int y13d; + y13d = std::numeric_limits::min(); + + current_statement__ = 261; + validate_non_negative_index("y14d", "N", N); + std::vector y14d; + y14d = std::vector(N, std::numeric_limits::min()); + + current_statement__ = 263; + validate_non_negative_index("y15d", "N", N); + current_statement__ = 264; + validate_non_negative_index("y15d", "N", N); + std::vector> y15d; + y15d = std::vector>(N, std::vector(N, std::numeric_limits::min())); + + + current_statement__ = 266; + validate_non_negative_index("y16d", "N", N); + current_statement__ = 267; + validate_non_negative_index("y16d", "N", N); + current_statement__ = 268; + validate_non_negative_index("y16d", "N", N); + std::vector>> y16d; + y16d = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::min()))); + + + current_statement__ = 270; + validate_non_negative_index("y17d", "N", N); + current_statement__ = 271; + validate_non_negative_index("y17d", "N", N); + current_statement__ = 272; + validate_non_negative_index("y17d", "N", N); + std::vector>> y17d; + y17d = std::vector>>(N, std::vector>(N, std::vector(N, DUMMY_VAR__))); + + + current_statement__ = 274; + validate_non_negative_index("y1", "N", N); + std::vector y1; + y1 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 276; + validate_non_negative_index("y2", "N", N); + current_statement__ = 277; + validate_non_negative_index("y2", "N", N); + std::vector> y2; + y2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2, DUMMY_VAR__); + + current_statement__ = 279; + validate_non_negative_index("y3", "N", N); + current_statement__ = 280; + validate_non_negative_index("y3", "N", N); + std::vector> y3; + y3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3, DUMMY_VAR__); + + current_statement__ = 282; + validate_non_negative_index("y4", "N", N); + current_statement__ = 283; + validate_non_negative_index("y4", "N", N); + current_statement__ = 284; + validate_non_negative_index("y4", "N", N); + std::vector> y4; + y4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4, DUMMY_VAR__); + + current_statement__ = 286; + validate_non_negative_index("y5", "N", N); + current_statement__ = 287; + validate_non_negative_index("y5", "N", N); + std::vector> y5; + y5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); + + + current_statement__ = 289; + validate_non_negative_index("y6", "N", N); + current_statement__ = 290; + validate_non_negative_index("y6", "N", N); + current_statement__ = 291; + validate_non_negative_index("y6", "N", N); + std::vector>> y6; + y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6, DUMMY_VAR__); + + current_statement__ = 293; + validate_non_negative_index("y7", "N", N); + current_statement__ = 294; + validate_non_negative_index("y7", "N", N); + current_statement__ = 295; + validate_non_negative_index("y7", "N", N); + std::vector>> y7; + y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7, DUMMY_VAR__); + + current_statement__ = 297; + validate_non_negative_index("y8", "N", N); + current_statement__ = 298; + validate_non_negative_index("y8", "N", N); + current_statement__ = 299; + validate_non_negative_index("y8", "N", N); + current_statement__ = 300; + validate_non_negative_index("y8", "N", N); + std::vector>> y8; + y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8, DUMMY_VAR__); + + local_scalar_t__ y9; + y9 = DUMMY_VAR__; + + current_statement__ = 303; + validate_non_negative_index("y10", "N", N); + Eigen::Matrix y10; + y10 = Eigen::Matrix(N); + stan::math::fill(y10, DUMMY_VAR__); + + current_statement__ = 305; + validate_non_negative_index("y11", "N", N); + Eigen::Matrix y11; + y11 = Eigen::Matrix(N); + stan::math::fill(y11, DUMMY_VAR__); + + current_statement__ = 307; + validate_non_negative_index("y12", "N", N); + current_statement__ = 308; + validate_non_negative_index("y12", "N", N); + Eigen::Matrix y12; + y12 = Eigen::Matrix(N, N); + stan::math::fill(y12, DUMMY_VAR__); + + current_statement__ = 310; + validate_non_negative_index("y17", "N", N); + current_statement__ = 311; + validate_non_negative_index("y17", "N", N); + current_statement__ = 312; + validate_non_negative_index("y17", "N", N); + std::vector>> y17; + y17 = std::vector>>(N, std::vector>(N, std::vector(N, DUMMY_VAR__))); + + + local_scalar_t__ t1; + t1 = DUMMY_VAR__; + + current_statement__ = 314; + t1 = reduce_sum(y1, 1, pstream__); + local_scalar_t__ t1a; + t1a = DUMMY_VAR__; + + current_statement__ = 315; + t1a = (reduce_sum(y1, 1, pstream__) + + reduce_sum(y1, 1, pstream__)); + local_scalar_t__ t2; + t2 = DUMMY_VAR__; + + current_statement__ = 316; + t2 = reduce_sum(y2, 1, pstream__); + local_scalar_t__ t3; + t3 = DUMMY_VAR__; + + current_statement__ = 317; + t3 = reduce_sum(y3, 1, pstream__); + local_scalar_t__ t4; + t4 = DUMMY_VAR__; + + current_statement__ = 318; + t4 = reduce_sum(y4, 1, pstream__); + local_scalar_t__ t5; + t5 = DUMMY_VAR__; + + current_statement__ = 319; + t5 = reduce_sum(y5, 1, pstream__); + local_scalar_t__ t6; + t6 = DUMMY_VAR__; + + current_statement__ = 320; + t6 = reduce_sum(y6, 1, pstream__); + local_scalar_t__ t7; + t7 = DUMMY_VAR__; + + current_statement__ = 321; + t7 = reduce_sum(y7, 1, pstream__); + local_scalar_t__ t8; + t8 = DUMMY_VAR__; + + current_statement__ = 322; + t8 = reduce_sum(y8, 1, pstream__); + local_scalar_t__ t9; + t9 = DUMMY_VAR__; + + current_statement__ = 323; + t9 = reduce_sum(y14d, 1, pstream__); + local_scalar_t__ t10; + t10 = DUMMY_VAR__; + + current_statement__ = 324; + t10 = reduce_sum(y15d, 1, pstream__); + local_scalar_t__ t11; + t11 = DUMMY_VAR__; + + current_statement__ = 325; + t11 = reduce_sum(y16d, 1, pstream__); + local_scalar_t__ t12; + t12 = DUMMY_VAR__; + + current_statement__ = 326; + t12 = reduce_sum(y17, 1, pstream__); + local_scalar_t__ tg1; + tg1 = DUMMY_VAR__; + + current_statement__ = 327; + tg1 = reduce_sum(y1, 1, pstream__, y9); + local_scalar_t__ tg2; + tg2 = DUMMY_VAR__; + + current_statement__ = 328; + tg2 = reduce_sum(y1, 1, pstream__, y10); + local_scalar_t__ tg3; + tg3 = DUMMY_VAR__; + + current_statement__ = 329; + tg3 = reduce_sum(y1, 1, pstream__, y11); + local_scalar_t__ tg4; + tg4 = DUMMY_VAR__; + + current_statement__ = 330; + tg4 = reduce_sum(y1, 1, pstream__, y12); + local_scalar_t__ tg5; + tg5 = DUMMY_VAR__; + + current_statement__ = 331; + tg5 = reduce_sum(y1, 1, pstream__, y1); + local_scalar_t__ tg6; + tg6 = DUMMY_VAR__; + + current_statement__ = 332; + tg6 = reduce_sum(y1, 1, pstream__, y2); + local_scalar_t__ tg7; + tg7 = DUMMY_VAR__; + + current_statement__ = 333; + tg7 = reduce_sum(y1, 1, pstream__, y3); + local_scalar_t__ tg8; + tg8 = DUMMY_VAR__; + + current_statement__ = 334; + tg8 = reduce_sum(y1, 1, pstream__, y4); + local_scalar_t__ tg9; + tg9 = DUMMY_VAR__; + + current_statement__ = 335; + tg9 = reduce_sum(y1, 1, pstream__, y5); + local_scalar_t__ tg10; + tg10 = DUMMY_VAR__; + + current_statement__ = 336; + tg10 = reduce_sum(y1, 1, pstream__, y6); + local_scalar_t__ tg11; + tg11 = DUMMY_VAR__; + + current_statement__ = 337; + tg11 = reduce_sum(y1, 1, pstream__, y7); + local_scalar_t__ tg12; + tg12 = DUMMY_VAR__; + + current_statement__ = 338; + tg12 = reduce_sum(y1, 1, pstream__, y8); + local_scalar_t__ ts; + ts = DUMMY_VAR__; + + current_statement__ = 339; + ts = reduce_sum(y1d, 1, pstream__, y13d, y9, y10, y11, + y12, y14d, y1, y2, y3, y4, y15d, y5, y6, y7, y8, y16d, y17); + current_statement__ = 340; + return 0.0; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class reduce_sum_m3_model final : public model_base_crtp { + + private: + int N; + std::vector y1d; + std::vector> y2d; + std::vector> y3d; + std::vector> y4d; + std::vector> y5d; + std::vector>> y6d; + std::vector>> y7d; + std::vector>> y8d; + double y9d; + Eigen::Matrix y10d__; + Eigen::Matrix y11d__; + Eigen::Matrix y12d__; + int y13d; + std::vector y14d; + std::vector> y15d; + std::vector>> y16d; + std::vector>> y17d; + double td1; + double td1a; + double td2; + double td3; + double td4; + double td5; + double td6; + double td7; + double td8; + double td9; + double td10; + double td11; + double td12; + double tgd1; + double tgd2; + double tgd3; + double tgd4; + double tgd5; + double tgd6; + double tgd7; + double tgd8; + double tgd9; + double tgd10; + double tgd11; + double tgd12; + double tsd; + Eigen::Map> y10d{nullptr, 0}; + Eigen::Map> y11d{nullptr, 0}; + Eigen::Map> y12d{nullptr, 0, 0}; + + public: + ~reduce_sum_m3_model() { } + + inline std::string model_name() const final { return "reduce_sum_m3_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + reduce_sum_m3_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m3_model_namespace::reduce_sum_m3_model"; + (void) function__; // suppress unused var warning + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + current_statement__ = 67; + context__.validate_dims("data initialization","N","int", + std::vector{}); + N = std::numeric_limits::min(); + + current_statement__ = 67; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 68; + validate_non_negative_index("y1d", "N", N); + current_statement__ = 69; + context__.validate_dims("data initialization","y1d","double", + std::vector{static_cast(N)}); + y1d = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 69; + y1d = context__.vals_r("y1d"); + current_statement__ = 70; + validate_non_negative_index("y2d", "N", N); + current_statement__ = 71; + validate_non_negative_index("y2d", "N", N); + current_statement__ = 72; + context__.validate_dims("data initialization","y2d","double", + std::vector{static_cast(N), + static_cast(N)}); + y2d = std::vector>(N, Eigen::Matrix(N)); + + + { + std::vector y2d_flat__; + current_statement__ = 72; + y2d_flat__ = context__.vals_r("y2d"); + current_statement__ = 72; + pos__ = 1; + current_statement__ = 72; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 72; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 72; + assign(y2d, y2d_flat__[(pos__ - 1)], + "assigning variable y2d", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 72; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 73; + validate_non_negative_index("y3d", "N", N); + current_statement__ = 74; + validate_non_negative_index("y3d", "N", N); + current_statement__ = 75; + context__.validate_dims("data initialization","y3d","double", + std::vector{static_cast(N), + static_cast(N)}); + y3d = std::vector>(N, Eigen::Matrix(N)); + + + { + std::vector y3d_flat__; + current_statement__ = 75; + y3d_flat__ = context__.vals_r("y3d"); + current_statement__ = 75; + pos__ = 1; + current_statement__ = 75; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 75; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 75; + assign(y3d, y3d_flat__[(pos__ - 1)], + "assigning variable y3d", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 75; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 76; + validate_non_negative_index("y4d", "N", N); + current_statement__ = 77; + validate_non_negative_index("y4d", "N", N); + current_statement__ = 78; + validate_non_negative_index("y4d", "N", N); + current_statement__ = 79; + context__.validate_dims("data initialization","y4d","double", + std::vector{static_cast(N), + static_cast(N), static_cast(N)}); + y4d = std::vector>(N, Eigen::Matrix(N, N)); + + + { + std::vector y4d_flat__; + current_statement__ = 79; + y4d_flat__ = context__.vals_r("y4d"); + current_statement__ = 79; + pos__ = 1; + current_statement__ = 79; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 79; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 79; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 79; + assign(y4d, y4d_flat__[(pos__ - 1)], + "assigning variable y4d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 79; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 80; + validate_non_negative_index("y5d", "N", N); + current_statement__ = 81; + validate_non_negative_index("y5d", "N", N); + current_statement__ = 82; + context__.validate_dims("data initialization","y5d","double", + std::vector{static_cast(N), + static_cast(N)}); + y5d = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + + + { + std::vector y5d_flat__; + current_statement__ = 82; + y5d_flat__ = context__.vals_r("y5d"); + current_statement__ = 82; + pos__ = 1; + current_statement__ = 82; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 82; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 82; + assign(y5d, y5d_flat__[(pos__ - 1)], + "assigning variable y5d", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 82; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 83; + validate_non_negative_index("y6d", "N", N); + current_statement__ = 84; + validate_non_negative_index("y6d", "N", N); + current_statement__ = 85; + validate_non_negative_index("y6d", "N", N); + current_statement__ = 86; + context__.validate_dims("data initialization","y6d","double", + std::vector{static_cast(N), + static_cast(N), static_cast(N)}); + y6d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + + + { + std::vector y6d_flat__; + current_statement__ = 86; + y6d_flat__ = context__.vals_r("y6d"); + current_statement__ = 86; + pos__ = 1; + current_statement__ = 86; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 86; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 86; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 86; + assign(y6d, y6d_flat__[(pos__ - 1)], + "assigning variable y6d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 86; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 87; + validate_non_negative_index("y7d", "N", N); + current_statement__ = 88; + validate_non_negative_index("y7d", "N", N); + current_statement__ = 89; + validate_non_negative_index("y7d", "N", N); + current_statement__ = 90; + context__.validate_dims("data initialization","y7d","double", + std::vector{static_cast(N), + static_cast(N), static_cast(N)}); + y7d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + + + { + std::vector y7d_flat__; + current_statement__ = 90; + y7d_flat__ = context__.vals_r("y7d"); + current_statement__ = 90; + pos__ = 1; + current_statement__ = 90; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 90; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 90; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 90; + assign(y7d, y7d_flat__[(pos__ - 1)], + "assigning variable y7d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 90; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 91; + validate_non_negative_index("y8d", "N", N); + current_statement__ = 92; + validate_non_negative_index("y8d", "N", N); + current_statement__ = 93; + validate_non_negative_index("y8d", "N", N); + current_statement__ = 94; + validate_non_negative_index("y8d", "N", N); + current_statement__ = 95; + context__.validate_dims("data initialization","y8d","double", + std::vector{static_cast(N), + static_cast(N), static_cast(N), + static_cast(N)}); + y8d = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + + + { + std::vector y8d_flat__; + current_statement__ = 95; + y8d_flat__ = context__.vals_r("y8d"); + current_statement__ = 95; + pos__ = 1; + current_statement__ = 95; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 95; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 95; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 95; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 95; + assign(y8d, y8d_flat__[(pos__ - 1)], + "assigning variable y8d", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 95; + pos__ = (pos__ + 1); + } + } + } + } + } + current_statement__ = 96; + context__.validate_dims("data initialization","y9d","double", + std::vector{}); + y9d = std::numeric_limits::quiet_NaN(); + + current_statement__ = 96; + y9d = context__.vals_r("y9d")[(1 - 1)]; + current_statement__ = 97; + validate_non_negative_index("y10d", "N", N); + current_statement__ = 98; + context__.validate_dims("data initialization","y10d","double", + std::vector{static_cast(N)}); + y10d__ = Eigen::Matrix(N); + new (&y10d) Eigen::Map>(y10d__.data(), N); + + { + std::vector y10d_flat__; + current_statement__ = 98; + y10d_flat__ = context__.vals_r("y10d"); + current_statement__ = 98; + pos__ = 1; + current_statement__ = 98; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 98; + assign(y10d, y10d_flat__[(pos__ - 1)], + "assigning variable y10d", index_uni(sym1__)); + current_statement__ = 98; + pos__ = (pos__ + 1); + } + } + current_statement__ = 99; + validate_non_negative_index("y11d", "N", N); + current_statement__ = 100; + context__.validate_dims("data initialization","y11d","double", + std::vector{static_cast(N)}); + y11d__ = Eigen::Matrix(N); + new (&y11d) Eigen::Map>(y11d__.data(), N); + + { + std::vector y11d_flat__; + current_statement__ = 100; + y11d_flat__ = context__.vals_r("y11d"); + current_statement__ = 100; + pos__ = 1; + current_statement__ = 100; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 100; + assign(y11d, y11d_flat__[(pos__ - 1)], + "assigning variable y11d", index_uni(sym1__)); + current_statement__ = 100; + pos__ = (pos__ + 1); + } + } + current_statement__ = 101; + validate_non_negative_index("y12d", "N", N); + current_statement__ = 102; + validate_non_negative_index("y12d", "N", N); + current_statement__ = 103; + context__.validate_dims("data initialization","y12d","double", + std::vector{static_cast(N), + static_cast(N)}); + y12d__ = Eigen::Matrix(N, N); + new (&y12d) Eigen::Map>(y12d__.data(), N, N); + + + { + std::vector y12d_flat__; + current_statement__ = 103; + y12d_flat__ = context__.vals_r("y12d"); + current_statement__ = 103; + pos__ = 1; + current_statement__ = 103; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 103; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 103; + assign(y12d, y12d_flat__[(pos__ - 1)], + "assigning variable y12d", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 103; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 104; + context__.validate_dims("data initialization","y13d","int", + std::vector{}); + y13d = std::numeric_limits::min(); + + current_statement__ = 104; + y13d = context__.vals_i("y13d")[(1 - 1)]; + current_statement__ = 105; + validate_non_negative_index("y14d", "N", N); + current_statement__ = 106; + context__.validate_dims("data initialization","y14d","int", + std::vector{static_cast(N)}); + y14d = std::vector(N, std::numeric_limits::min()); + + current_statement__ = 106; + y14d = context__.vals_i("y14d"); + current_statement__ = 107; + validate_non_negative_index("y15d", "N", N); + current_statement__ = 108; + validate_non_negative_index("y15d", "N", N); + current_statement__ = 109; + context__.validate_dims("data initialization","y15d","int", + std::vector{static_cast(N), + static_cast(N)}); + y15d = std::vector>(N, std::vector(N, std::numeric_limits::min())); + + + { + std::vector y15d_flat__; + current_statement__ = 109; + y15d_flat__ = context__.vals_i("y15d"); + current_statement__ = 109; + pos__ = 1; + current_statement__ = 109; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 109; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 109; + assign(y15d, y15d_flat__[(pos__ - 1)], + "assigning variable y15d", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 109; + pos__ = (pos__ + 1); + } + } + } + current_statement__ = 110; + validate_non_negative_index("y16d", "N", N); + current_statement__ = 111; + validate_non_negative_index("y16d", "N", N); + current_statement__ = 112; + validate_non_negative_index("y16d", "N", N); + current_statement__ = 113; + context__.validate_dims("data initialization","y16d","int", + std::vector{static_cast(N), + static_cast(N), static_cast(N)}); + y16d = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::min()))); + + + { + std::vector y16d_flat__; + current_statement__ = 113; + y16d_flat__ = context__.vals_i("y16d"); + current_statement__ = 113; + pos__ = 1; + current_statement__ = 113; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 113; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 113; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 113; + assign(y16d, y16d_flat__[(pos__ - 1)], + "assigning variable y16d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 113; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 114; + validate_non_negative_index("y17d", "N", N); + current_statement__ = 115; + validate_non_negative_index("y17d", "N", N); + current_statement__ = 116; + validate_non_negative_index("y17d", "N", N); + current_statement__ = 117; + context__.validate_dims("data initialization","y17d","double", + std::vector{static_cast(N), + static_cast(N), static_cast(N)}); + y17d = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN()))); + + + { + std::vector y17d_flat__; + current_statement__ = 117; + y17d_flat__ = context__.vals_r("y17d"); + current_statement__ = 117; + pos__ = 1; + current_statement__ = 117; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 117; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 117; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 117; + assign(y17d, y17d_flat__[(pos__ - 1)], + "assigning variable y17d", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 117; + pos__ = (pos__ + 1); + } + } + } + } + current_statement__ = 118; + td1 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 118; + td1 = reduce_sum(y1d, 1, pstream__); + current_statement__ = 119; + td1a = std::numeric_limits::quiet_NaN(); + + current_statement__ = 119; + td1a = (reduce_sum(y1d, 1, pstream__) + + reduce_sum(y1d, 1, pstream__)); + current_statement__ = 120; + td2 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 120; + td2 = reduce_sum(y2d, 1, pstream__); + current_statement__ = 121; + td3 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 121; + td3 = reduce_sum(y3d, 1, pstream__); + current_statement__ = 122; + td4 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 122; + td4 = reduce_sum(y4d, 1, pstream__); + current_statement__ = 123; + td5 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 123; + td5 = reduce_sum(y5d, 1, pstream__); + current_statement__ = 124; + td6 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 124; + td6 = reduce_sum(y6d, 1, pstream__); + current_statement__ = 125; + td7 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 125; + td7 = reduce_sum(y7d, 1, pstream__); + current_statement__ = 126; + td8 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 126; + td8 = reduce_sum(y8d, 1, pstream__); + current_statement__ = 127; + td9 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 127; + td9 = reduce_sum(y14d, 1, pstream__); + current_statement__ = 128; + td10 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 128; + td10 = reduce_sum(y15d, 1, pstream__); + current_statement__ = 129; + td11 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 129; + td11 = reduce_sum(y16d, 1, pstream__); + current_statement__ = 130; + td12 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 130; + td12 = reduce_sum(y17d, 1, pstream__); + current_statement__ = 131; + tgd1 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 131; + tgd1 = reduce_sum(y1d, 1, pstream__, y9d); + current_statement__ = 132; + tgd2 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 132; + tgd2 = reduce_sum(y1d, 1, pstream__, y10d); + current_statement__ = 133; + tgd3 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 133; + tgd3 = reduce_sum(y1d, 1, pstream__, y11d); + current_statement__ = 134; + tgd4 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 134; + tgd4 = reduce_sum(y1d, 1, pstream__, y12d); + current_statement__ = 135; + tgd5 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 135; + tgd5 = reduce_sum(y1d, 1, pstream__, y1d); + current_statement__ = 136; + tgd6 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 136; + tgd6 = reduce_sum(y1d, 1, pstream__, y2d); + current_statement__ = 137; + tgd7 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 137; + tgd7 = reduce_sum(y1d, 1, pstream__, y3d); + current_statement__ = 138; + tgd8 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 138; + tgd8 = reduce_sum(y1d, 1, pstream__, y4d); + current_statement__ = 139; + tgd9 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 139; + tgd9 = reduce_sum(y1d, 1, pstream__, y5d); + current_statement__ = 140; + tgd10 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 140; + tgd10 = reduce_sum(y1d, 1, pstream__, y6d); + current_statement__ = 141; + tgd11 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 141; + tgd11 = reduce_sum(y1d, 1, pstream__, y7d); + current_statement__ = 142; + tgd12 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 142; + tgd12 = reduce_sum(y1d, 1, pstream__, y8d); + current_statement__ = 143; + tsd = std::numeric_limits::quiet_NaN(); + + current_statement__ = 143; + tsd = reduce_sum(y1d, 1, pstream__, y13d, y9d, y10d, + y11d, y12d, y14d, y1d, y2d, y3d, y4d, y15d, y5d, y6d, y7d, y8d, + y16d, y17d); + current_statement__ = 144; + validate_non_negative_index("y1", "N", N); + current_statement__ = 145; + validate_non_negative_index("y2", "N", N); + current_statement__ = 146; + validate_non_negative_index("y2", "N", N); + current_statement__ = 147; + validate_non_negative_index("y3", "N", N); + current_statement__ = 148; + validate_non_negative_index("y3", "N", N); + current_statement__ = 149; + validate_non_negative_index("y4", "N", N); + current_statement__ = 150; + validate_non_negative_index("y4", "N", N); + current_statement__ = 151; + validate_non_negative_index("y4", "N", N); + current_statement__ = 152; + validate_non_negative_index("y5", "N", N); + current_statement__ = 153; + validate_non_negative_index("y5", "N", N); + current_statement__ = 154; + validate_non_negative_index("y6", "N", N); + current_statement__ = 155; + validate_non_negative_index("y6", "N", N); + current_statement__ = 156; + validate_non_negative_index("y6", "N", N); + current_statement__ = 157; + validate_non_negative_index("y7", "N", N); + current_statement__ = 158; + validate_non_negative_index("y7", "N", N); + current_statement__ = 159; + validate_non_negative_index("y7", "N", N); + current_statement__ = 160; + validate_non_negative_index("y8", "N", N); + current_statement__ = 161; + validate_non_negative_index("y8", "N", N); + current_statement__ = 162; + validate_non_negative_index("y8", "N", N); + current_statement__ = 163; + validate_non_negative_index("y8", "N", N); + current_statement__ = 164; + validate_non_negative_index("y10", "N", N); + current_statement__ = 165; + validate_non_negative_index("y11", "N", N); + current_statement__ = 166; + validate_non_negative_index("y12", "N", N); + current_statement__ = 167; + validate_non_negative_index("y12", "N", N); + current_statement__ = 168; + validate_non_negative_index("y17", "N", N); + current_statement__ = 169; + validate_non_negative_index("y17", "N", N); + current_statement__ = 170; + validate_non_negative_index("y17", "N", N); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + num_params_r__ = N + (N * N) + (N * N) + (N * N * N) + (N * N) + + (N * N * N) + (N * N * N) + (N * N * N * N) + 1 + N + N + (N * N) + + (N * N * N); + + } + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline stan::scalar_type_t log_prob_impl(VecR& params_r__, + VecI& params_i__, + std::ostream* pstream__ = nullptr) const { + using T__ = stan::scalar_type_t; + using local_scalar_t__ = T__; + T__ lp__(0.0); + stan::math::accumulator lp_accum__; + stan::io::deserializer in__(params_r__, params_i__); + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m3_model_namespace::log_prob"; + (void) function__; // suppress unused var warning + + try { + std::vector y1; + y1 = std::vector(N, DUMMY_VAR__); + + current_statement__ = 1; + y1 = in__.template read>(N); + std::vector> y2; + y2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2, DUMMY_VAR__); + + current_statement__ = 2; + y2 = in__.template read>>( + N, N); + std::vector> y3; + y3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3, DUMMY_VAR__); + + current_statement__ = 3; + y3 = in__.template read>>( + N, N); + std::vector> y4; + y4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4, DUMMY_VAR__); + + current_statement__ = 4; + y4 = in__.template read>>( + N, N, N); + std::vector> y5; + y5 = std::vector>(N, std::vector(N, DUMMY_VAR__)); + + + current_statement__ = 5; + y5 = in__.template read>>(N, + N); + std::vector>> y6; + y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6, DUMMY_VAR__); + + current_statement__ = 6; + y6 = in__.template read>>>( + N, N, N); + std::vector>> y7; + y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7, DUMMY_VAR__); + + current_statement__ = 7; + y7 = in__.template read>>>( + N, N, N); + std::vector>> y8; + y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8, DUMMY_VAR__); + + current_statement__ = 8; + y8 = in__.template read>>>( + N, N, N, N); + local_scalar_t__ y9; + y9 = DUMMY_VAR__; + + current_statement__ = 9; + y9 = in__.template read(); + Eigen::Matrix y10; + y10 = Eigen::Matrix(N); + stan::math::fill(y10, DUMMY_VAR__); + + current_statement__ = 10; + y10 = in__.template read>(N); + Eigen::Matrix y11; + y11 = Eigen::Matrix(N); + stan::math::fill(y11, DUMMY_VAR__); + + current_statement__ = 11; + y11 = in__.template read>(N); + Eigen::Matrix y12; + y12 = Eigen::Matrix(N, N); + stan::math::fill(y12, DUMMY_VAR__); + + current_statement__ = 12; + y12 = in__.template read>(N, N); + std::vector>> y17; + y17 = std::vector>>(N, std::vector>(N, std::vector(N, DUMMY_VAR__))); + + + current_statement__ = 13; + y17 = in__.template read>>>( + N, N, N); + { + local_scalar_t__ t1; + t1 = DUMMY_VAR__; + + current_statement__ = 40; + t1 = reduce_sum(y1, 1, pstream__); + local_scalar_t__ t1a; + t1a = DUMMY_VAR__; + + current_statement__ = 41; + t1a = (reduce_sum(y1, 1, pstream__) + + reduce_sum(y1, 1, pstream__)); + local_scalar_t__ t2; + t2 = DUMMY_VAR__; + + current_statement__ = 42; + t2 = reduce_sum(y2, 1, pstream__); + local_scalar_t__ t3; + t3 = DUMMY_VAR__; + + current_statement__ = 43; + t3 = reduce_sum(y3, 1, pstream__); + local_scalar_t__ t4; + t4 = DUMMY_VAR__; + + current_statement__ = 44; + t4 = reduce_sum(y4, 1, pstream__); + local_scalar_t__ t5; + t5 = DUMMY_VAR__; + + current_statement__ = 45; + t5 = reduce_sum(y5, 1, pstream__); + local_scalar_t__ t6; + t6 = DUMMY_VAR__; + + current_statement__ = 46; + t6 = reduce_sum(y6, 1, pstream__); + local_scalar_t__ t7; + t7 = DUMMY_VAR__; + + current_statement__ = 47; + t7 = reduce_sum(y7, 1, pstream__); + local_scalar_t__ t8; + t8 = DUMMY_VAR__; + + current_statement__ = 48; + t8 = reduce_sum(y8, 1, pstream__); + local_scalar_t__ t9; + t9 = DUMMY_VAR__; + + current_statement__ = 49; + t9 = reduce_sum(y14d, 1, pstream__); + local_scalar_t__ t10; + t10 = DUMMY_VAR__; + + current_statement__ = 50; + t10 = reduce_sum(y15d, 1, pstream__); + local_scalar_t__ t11; + t11 = DUMMY_VAR__; + + current_statement__ = 51; + t11 = reduce_sum(y16d, 1, pstream__); + local_scalar_t__ t12; + t12 = DUMMY_VAR__; + + current_statement__ = 52; + t12 = reduce_sum(y17, 1, pstream__); + local_scalar_t__ tg1; + tg1 = DUMMY_VAR__; + + current_statement__ = 53; + tg1 = reduce_sum(y1, 1, pstream__, y9); + local_scalar_t__ tg2; + tg2 = DUMMY_VAR__; + + current_statement__ = 54; + tg2 = reduce_sum(y1, 1, pstream__, y10); + local_scalar_t__ tg3; + tg3 = DUMMY_VAR__; + + current_statement__ = 55; + tg3 = reduce_sum(y1, 1, pstream__, y11); + local_scalar_t__ tg4; + tg4 = DUMMY_VAR__; + + current_statement__ = 56; + tg4 = reduce_sum(y1, 1, pstream__, y12); + local_scalar_t__ tg5; + tg5 = DUMMY_VAR__; + + current_statement__ = 57; + tg5 = reduce_sum(y1, 1, pstream__, y1); + local_scalar_t__ tg6; + tg6 = DUMMY_VAR__; + + current_statement__ = 58; + tg6 = reduce_sum(y1, 1, pstream__, y2); + local_scalar_t__ tg7; + tg7 = DUMMY_VAR__; + + current_statement__ = 59; + tg7 = reduce_sum(y1, 1, pstream__, y3); + local_scalar_t__ tg8; + tg8 = DUMMY_VAR__; + + current_statement__ = 60; + tg8 = reduce_sum(y1, 1, pstream__, y4); + local_scalar_t__ tg9; + tg9 = DUMMY_VAR__; + + current_statement__ = 61; + tg9 = reduce_sum(y1, 1, pstream__, y5); + local_scalar_t__ tg10; + tg10 = DUMMY_VAR__; + + current_statement__ = 62; + tg10 = reduce_sum(y1, 1, pstream__, y6); + local_scalar_t__ tg11; + tg11 = DUMMY_VAR__; + + current_statement__ = 63; + tg11 = reduce_sum(y1, 1, pstream__, y7); + local_scalar_t__ tg12; + tg12 = DUMMY_VAR__; + + current_statement__ = 64; + tg12 = reduce_sum(y1, 1, pstream__, y8); + local_scalar_t__ ts; + ts = DUMMY_VAR__; + + current_statement__ = 65; + ts = reduce_sum(y1d, 1, pstream__, y13d, y9, y10, y11, + y12, y14d, y1, y2, y3, y4, y15d, y5, y6, y7, y8, y16d, y17); + local_scalar_t__ tt; + tt = DUMMY_VAR__; + + current_statement__ = 66; + tt = r(pstream__); + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + lp_accum__.add(lp__); + return lp_accum__.sum(); + } // log_prob_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr, + stan::require_std_vector_vt* = nullptr> + inline void write_array_impl(RNG& base_rng__, VecR& params_r__, + VecI& params_i__, VecVar& vars__, + const bool emit_transformed_parameters__ = true, + const bool emit_generated_quantities__ = true, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.resize(0); + stan::io::deserializer in__(params_r__, params_i__); + static constexpr bool propto__ = true; + (void) propto__; + double lp__ = 0.0; + (void) lp__; // dummy to suppress unused var warning + int current_statement__ = 0; + stan::math::accumulator lp_accum__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + constexpr bool jacobian__ = false; + (void) DUMMY_VAR__; // suppress unused var warning + static constexpr const char* function__ = "reduce_sum_m3_model_namespace::write_array"; + (void) function__; // suppress unused var warning + + try { + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + y1 = in__.template read>(N); + std::vector> y2; + y2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2, std::numeric_limits::quiet_NaN()); + + current_statement__ = 2; + y2 = in__.template read>>( + N, N); + std::vector> y3; + y3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3, std::numeric_limits::quiet_NaN()); + + current_statement__ = 3; + y3 = in__.template read>>( + N, N); + std::vector> y4; + y4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4, std::numeric_limits::quiet_NaN()); + + current_statement__ = 4; + y4 = in__.template read>>( + N, N, N); + std::vector> y5; + y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + + + current_statement__ = 5; + y5 = in__.template read>>(N, + N); + std::vector>> y6; + y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6, std::numeric_limits::quiet_NaN()); + + current_statement__ = 6; + y6 = in__.template read>>>( + N, N, N); + std::vector>> y7; + y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7, std::numeric_limits::quiet_NaN()); + + current_statement__ = 7; + y7 = in__.template read>>>( + N, N, N); + std::vector>> y8; + y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8, std::numeric_limits::quiet_NaN()); + + current_statement__ = 8; + y8 = in__.template read>>>( + N, N, N, N); + double y9; + y9 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 9; + y9 = in__.template read(); + Eigen::Matrix y10; + y10 = Eigen::Matrix(N); + stan::math::fill(y10, std::numeric_limits::quiet_NaN()); + + current_statement__ = 10; + y10 = in__.template read>(N); + Eigen::Matrix y11; + y11 = Eigen::Matrix(N); + stan::math::fill(y11, std::numeric_limits::quiet_NaN()); + + current_statement__ = 11; + y11 = in__.template read>(N); + Eigen::Matrix y12; + y12 = Eigen::Matrix(N, N); + stan::math::fill(y12, std::numeric_limits::quiet_NaN()); + + current_statement__ = 12; + y12 = in__.template read>(N, N); + std::vector>> y17; + y17 = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN()))); + + + current_statement__ = 13; + y17 = in__.template read>>>( + N, N, N); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y2[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y3[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + rvalue(y4, "y4", + index_uni(sym3__), index_uni(sym2__), index_uni(sym1__))); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y5[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y6[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y7[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + rvalue(y8, "y8", + index_uni(sym4__), index_uni(sym3__), index_uni(sym2__), + index_uni(sym1__))); + } + } + } + } + vars__.emplace_back(y9); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y10[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y11[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back( + rvalue(y12, "y12", index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y17[(sym3__ - 1)][(sym2__ - 1)][(sym1__ - 1)]); + } + } + } + if (logical_negation((primitive_value(emit_transformed_parameters__) || + primitive_value(emit_generated_quantities__)))) { + return ; + } + if (logical_negation(emit_generated_quantities__)) { + return ; + } + double t1; + t1 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 14; + t1 = reduce_sum(y1, 1, pstream__); + double t1a; + t1a = std::numeric_limits::quiet_NaN(); + + current_statement__ = 15; + t1a = (reduce_sum(y1, 1, pstream__) + + reduce_sum(y1, 1, pstream__)); + double t2; + t2 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 16; + t2 = reduce_sum(y2, 1, pstream__); + double t3; + t3 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 17; + t3 = reduce_sum(y3, 1, pstream__); + double t4; + t4 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 18; + t4 = reduce_sum(y4, 1, pstream__); + double t5; + t5 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 19; + t5 = reduce_sum(y5, 1, pstream__); + double t6; + t6 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 20; + t6 = reduce_sum(y6, 1, pstream__); + double t7; + t7 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 21; + t7 = reduce_sum(y7, 1, pstream__); + double t8; + t8 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 22; + t8 = reduce_sum(y8, 1, pstream__); + double t9; + t9 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 23; + t9 = reduce_sum(y14d, 1, pstream__); + double t10; + t10 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 24; + t10 = reduce_sum(y15d, 1, pstream__); + double t11; + t11 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 25; + t11 = reduce_sum(y16d, 1, pstream__); + double t12; + t12 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 26; + t12 = reduce_sum(y17, 1, pstream__); + double tg1; + tg1 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 27; + tg1 = reduce_sum(y1, 1, pstream__, y9); + double tg2; + tg2 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 28; + tg2 = reduce_sum(y1, 1, pstream__, y10); + double tg3; + tg3 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 29; + tg3 = reduce_sum(y1, 1, pstream__, y11); + double tg4; + tg4 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 30; + tg4 = reduce_sum(y1, 1, pstream__, y12); + double tg5; + tg5 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 31; + tg5 = reduce_sum(y1, 1, pstream__, y1); + double tg6; + tg6 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 32; + tg6 = reduce_sum(y1, 1, pstream__, y2); + double tg7; + tg7 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 33; + tg7 = reduce_sum(y1, 1, pstream__, y3); + double tg8; + tg8 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 34; + tg8 = reduce_sum(y1, 1, pstream__, y4); + double tg9; + tg9 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 35; + tg9 = reduce_sum(y1, 1, pstream__, y5); + double tg10; + tg10 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 36; + tg10 = reduce_sum(y1, 1, pstream__, y6); + double tg11; + tg11 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 37; + tg11 = reduce_sum(y1, 1, pstream__, y7); + double tg12; + tg12 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 38; + tg12 = reduce_sum(y1, 1, pstream__, y8); + double tgs; + tgs = std::numeric_limits::quiet_NaN(); + + current_statement__ = 39; + tgs = reduce_sum(y1d, 1, pstream__, y13d, y9d, y10d, + y11d, y12d, y14d, y1d, y2d, y3d, y4d, y15d, y5d, y6d, y7d, y8d, + y16d, y17); + vars__.emplace_back(t1); + vars__.emplace_back(t1a); + vars__.emplace_back(t2); + vars__.emplace_back(t3); + vars__.emplace_back(t4); + vars__.emplace_back(t5); + vars__.emplace_back(t6); + vars__.emplace_back(t7); + vars__.emplace_back(t8); + vars__.emplace_back(t9); + vars__.emplace_back(t10); + vars__.emplace_back(t11); + vars__.emplace_back(t12); + vars__.emplace_back(tg1); + vars__.emplace_back(tg2); + vars__.emplace_back(tg3); + vars__.emplace_back(tg4); + vars__.emplace_back(tg5); + vars__.emplace_back(tg6); + vars__.emplace_back(tg7); + vars__.emplace_back(tg8); + vars__.emplace_back(tg9); + vars__.emplace_back(tg10); + vars__.emplace_back(tg11); + vars__.emplace_back(tg12); + vars__.emplace_back(tgs); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // write_array_impl() + + template * = nullptr, + stan::require_vector_like_vt* = nullptr> + inline void transform_inits_impl(const stan::io::var_context& context__, + VecI& params_i__, VecVar& vars__, + std::ostream* pstream__ = nullptr) const { + using local_scalar_t__ = double; + vars__.clear(); + vars__.reserve(num_params_r__); + int current_statement__ = 0; + + try { + int pos__; + pos__ = std::numeric_limits::min(); + + pos__ = 1; + std::vector y1; + y1 = std::vector(N, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + y1 = context__.vals_r("y1"); + std::vector> y2; + y2 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y2, std::numeric_limits::quiet_NaN()); + + { + std::vector y2_flat__; + current_statement__ = 2; + y2_flat__ = context__.vals_r("y2"); + current_statement__ = 2; + pos__ = 1; + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 2; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 2; + assign(y2, y2_flat__[(pos__ - 1)], + "assigning variable y2", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 2; + pos__ = (pos__ + 1); + } + } + } + std::vector> y3; + y3 = std::vector>(N, Eigen::Matrix(N)); + stan::math::fill(y3, std::numeric_limits::quiet_NaN()); + + { + std::vector y3_flat__; + current_statement__ = 3; + y3_flat__ = context__.vals_r("y3"); + current_statement__ = 3; + pos__ = 1; + current_statement__ = 3; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 3; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 3; + assign(y3, y3_flat__[(pos__ - 1)], + "assigning variable y3", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 3; + pos__ = (pos__ + 1); + } + } + } + std::vector> y4; + y4 = std::vector>(N, Eigen::Matrix(N, N)); + stan::math::fill(y4, std::numeric_limits::quiet_NaN()); + + { + std::vector y4_flat__; + current_statement__ = 4; + y4_flat__ = context__.vals_r("y4"); + current_statement__ = 4; + pos__ = 1; + current_statement__ = 4; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 4; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 4; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 4; + assign(y4, y4_flat__[(pos__ - 1)], + "assigning variable y4", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 4; + pos__ = (pos__ + 1); + } + } + } + } + std::vector> y5; + y5 = std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN())); + + + { + std::vector y5_flat__; + current_statement__ = 5; + y5_flat__ = context__.vals_r("y5"); + current_statement__ = 5; + pos__ = 1; + current_statement__ = 5; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 5; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 5; + assign(y5, y5_flat__[(pos__ - 1)], + "assigning variable y5", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 5; + pos__ = (pos__ + 1); + } + } + } + std::vector>> y6; + y6 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y6, std::numeric_limits::quiet_NaN()); + + { + std::vector y6_flat__; + current_statement__ = 6; + y6_flat__ = context__.vals_r("y6"); + current_statement__ = 6; + pos__ = 1; + current_statement__ = 6; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 6; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 6; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 6; + assign(y6, y6_flat__[(pos__ - 1)], + "assigning variable y6", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 6; + pos__ = (pos__ + 1); + } + } + } + } + std::vector>> y7; + y7 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N))); + stan::math::fill(y7, std::numeric_limits::quiet_NaN()); + + { + std::vector y7_flat__; + current_statement__ = 7; + y7_flat__ = context__.vals_r("y7"); + current_statement__ = 7; + pos__ = 1; + current_statement__ = 7; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 7; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 7; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 7; + assign(y7, y7_flat__[(pos__ - 1)], + "assigning variable y7", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 7; + pos__ = (pos__ + 1); + } + } + } + } + std::vector>> y8; + y8 = std::vector>>(N, std::vector>(N, Eigen::Matrix(N, N))); + stan::math::fill(y8, std::numeric_limits::quiet_NaN()); + + { + std::vector y8_flat__; + current_statement__ = 8; + y8_flat__ = context__.vals_r("y8"); + current_statement__ = 8; + pos__ = 1; + current_statement__ = 8; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 8; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 8; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 8; + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + current_statement__ = 8; + assign(y8, y8_flat__[(pos__ - 1)], + "assigning variable y8", index_uni(sym4__), + index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 8; + pos__ = (pos__ + 1); + } + } + } + } + } + double y9; + y9 = std::numeric_limits::quiet_NaN(); + + current_statement__ = 9; + y9 = context__.vals_r("y9")[(1 - 1)]; + Eigen::Matrix y10; + y10 = Eigen::Matrix(N); + stan::math::fill(y10, std::numeric_limits::quiet_NaN()); + + { + std::vector y10_flat__; + current_statement__ = 10; + y10_flat__ = context__.vals_r("y10"); + current_statement__ = 10; + pos__ = 1; + current_statement__ = 10; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 10; + assign(y10, y10_flat__[(pos__ - 1)], + "assigning variable y10", index_uni(sym1__)); + current_statement__ = 10; + pos__ = (pos__ + 1); + } + } + Eigen::Matrix y11; + y11 = Eigen::Matrix(N); + stan::math::fill(y11, std::numeric_limits::quiet_NaN()); + + { + std::vector y11_flat__; + current_statement__ = 11; + y11_flat__ = context__.vals_r("y11"); + current_statement__ = 11; + pos__ = 1; + current_statement__ = 11; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 11; + assign(y11, y11_flat__[(pos__ - 1)], + "assigning variable y11", index_uni(sym1__)); + current_statement__ = 11; + pos__ = (pos__ + 1); + } + } + Eigen::Matrix y12; + y12 = Eigen::Matrix(N, N); + stan::math::fill(y12, std::numeric_limits::quiet_NaN()); + + { + std::vector y12_flat__; + current_statement__ = 12; + y12_flat__ = context__.vals_r("y12"); + current_statement__ = 12; + pos__ = 1; + current_statement__ = 12; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 12; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 12; + assign(y12, y12_flat__[(pos__ - 1)], + "assigning variable y12", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 12; + pos__ = (pos__ + 1); + } + } + } + std::vector>> y17; + y17 = std::vector>>(N, std::vector>(N, std::vector(N, std::numeric_limits::quiet_NaN()))); + + + { + std::vector y17_flat__; + current_statement__ = 13; + y17_flat__ = context__.vals_r("y17"); + current_statement__ = 13; + pos__ = 1; + current_statement__ = 13; + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + current_statement__ = 13; + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + current_statement__ = 13; + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + current_statement__ = 13; + assign(y17, y17_flat__[(pos__ - 1)], + "assigning variable y17", index_uni(sym3__), + index_uni(sym2__), + index_uni(sym1__)); + current_statement__ = 13; + pos__ = (pos__ + 1); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y1[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y2[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y3[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + rvalue(y4, "y4", + index_uni(sym1__), index_uni(sym3__), index_uni(sym2__))); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back(y5[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y6[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y7[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + vars__.emplace_back( + rvalue(y8, "y8", + index_uni(sym1__), index_uni(sym2__), index_uni(sym4__), + index_uni(sym3__))); + } + } + } + } + vars__.emplace_back(y9); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y10[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(y11[(sym1__ - 1)]); + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + vars__.emplace_back( + rvalue(y12, "y12", index_uni(sym2__), index_uni(sym1__))); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + vars__.emplace_back( + y17[(sym1__ - 1)][(sym2__ - 1)][(sym3__ - 1)]); + } + } + } + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + } // transform_inits_impl() + + inline void get_param_names(std::vector& names__) const { + + names__ = std::vector{"y1", "y2", "y3", "y4", "y5", "y6", + "y7", "y8", "y9", "y10", "y11", "y12", "y17", "t1", "t1a", "t2", "t3", + "t4", "t5", "t6", "t7", "t8", "t9", "t10", "t11", "t12", "tg1", "tg2", + "tg3", "tg4", "tg5", "tg6", "tg7", "tg8", "tg9", "tg10", "tg11", + "tg12", "tgs"}; + + } // get_param_names() + + inline void get_dims(std::vector>& dimss__) const { + + dimss__ = std::vector>{std::vector{ + static_cast(N) + }, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N), static_cast(N)}, + std::vector{}, std::vector{static_cast(N)}, + std::vector{static_cast(N)}, + std::vector{static_cast(N), static_cast(N)}, + std::vector{static_cast(N), static_cast(N), + static_cast(N)}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}, std::vector{}, std::vector{ + }, std::vector{}}; + + } // get_dims() + + inline void constrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + param_names__.emplace_back(std::string() + "y9"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y10" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y11" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y12" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y17" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "t1"); + param_names__.emplace_back(std::string() + "t1a"); + param_names__.emplace_back(std::string() + "t2"); + param_names__.emplace_back(std::string() + "t3"); + param_names__.emplace_back(std::string() + "t4"); + param_names__.emplace_back(std::string() + "t5"); + param_names__.emplace_back(std::string() + "t6"); + param_names__.emplace_back(std::string() + "t7"); + param_names__.emplace_back(std::string() + "t8"); + param_names__.emplace_back(std::string() + "t9"); + param_names__.emplace_back(std::string() + "t10"); + param_names__.emplace_back(std::string() + "t11"); + param_names__.emplace_back(std::string() + "t12"); + param_names__.emplace_back(std::string() + "tg1"); + param_names__.emplace_back(std::string() + "tg2"); + param_names__.emplace_back(std::string() + "tg3"); + param_names__.emplace_back(std::string() + "tg4"); + param_names__.emplace_back(std::string() + "tg5"); + param_names__.emplace_back(std::string() + "tg6"); + param_names__.emplace_back(std::string() + "tg7"); + param_names__.emplace_back(std::string() + "tg8"); + param_names__.emplace_back(std::string() + "tg9"); + param_names__.emplace_back(std::string() + "tg10"); + param_names__.emplace_back(std::string() + "tg11"); + param_names__.emplace_back(std::string() + "tg12"); + param_names__.emplace_back(std::string() + "tgs"); + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y1" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y2" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y3" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y4" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y5" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y6" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y7" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + for (int sym4__ = 1; sym4__ <= N; ++sym4__) { + { + param_names__.emplace_back(std::string() + "y8" + '.' + std::to_string(sym4__) + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + } + } + param_names__.emplace_back(std::string() + "y9"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y10" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "y11" + '.' + std::to_string(sym1__)); + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y12" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= N; ++sym2__) { + { + for (int sym3__ = 1; sym3__ <= N; ++sym3__) { + { + param_names__.emplace_back(std::string() + "y17" + '.' + std::to_string(sym3__) + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + param_names__.emplace_back(std::string() + "t1"); + param_names__.emplace_back(std::string() + "t1a"); + param_names__.emplace_back(std::string() + "t2"); + param_names__.emplace_back(std::string() + "t3"); + param_names__.emplace_back(std::string() + "t4"); + param_names__.emplace_back(std::string() + "t5"); + param_names__.emplace_back(std::string() + "t6"); + param_names__.emplace_back(std::string() + "t7"); + param_names__.emplace_back(std::string() + "t8"); + param_names__.emplace_back(std::string() + "t9"); + param_names__.emplace_back(std::string() + "t10"); + param_names__.emplace_back(std::string() + "t11"); + param_names__.emplace_back(std::string() + "t12"); + param_names__.emplace_back(std::string() + "tg1"); + param_names__.emplace_back(std::string() + "tg2"); + param_names__.emplace_back(std::string() + "tg3"); + param_names__.emplace_back(std::string() + "tg4"); + param_names__.emplace_back(std::string() + "tg5"); + param_names__.emplace_back(std::string() + "tg6"); + param_names__.emplace_back(std::string() + "tg7"); + param_names__.emplace_back(std::string() + "tg8"); + param_names__.emplace_back(std::string() + "tg9"); + param_names__.emplace_back(std::string() + "tg10"); + param_names__.emplace_back(std::string() + "tg11"); + param_names__.emplace_back(std::string() + "tg12"); + param_names__.emplace_back(std::string() + "tgs"); + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y9\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"y10\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y11\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y12\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y17\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"t1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t1a\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tgs\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"y1\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"},{\"name\":\"y2\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y3\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y4\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}},\"block\":\"parameters\"},{\"name\":\"y5\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}},\"block\":\"parameters\"},{\"name\":\"y6\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y7\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y8\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "}}},\"block\":\"parameters\"},{\"name\":\"y9\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"y10\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y11\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y12\",\"type\":{\"name\":\"matrix\",\"rows\":" + std::to_string(N) + ",\"cols\":" + std::to_string(N) + "},\"block\":\"parameters\"},{\"name\":\"y17\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}}}},\"block\":\"parameters\"},{\"name\":\"t1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t1a\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"t12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg1\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg2\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg3\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg4\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg5\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg6\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg7\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg8\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg9\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg10\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg11\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tg12\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"},{\"name\":\"tgs\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); + + } // get_unconstrained_sizedtypes() + + + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } + + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } + + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } + + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } + + + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } + +}; +} +using stan_model = reduce_sum_m3_model_namespace::reduce_sum_m3_model; + +#ifndef USING_R + +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; +} + +stan::math::profile_map& get_stan_profile_data() { + return reduce_sum_m3_model_namespace::profiles__; +} + +#endif + + + diff --git a/test/integration/good/code-gen/reduce_sum/dune b/test/integration/good/code-gen/reduce_sum/dune new file mode 100644 index 0000000000..da77853ac5 --- /dev/null +++ b/test/integration/good/code-gen/reduce_sum/dune @@ -0,0 +1,10 @@ +(rule + (targets cpp.output) + (deps (package stanc) (:stanfiles (glob_files *.stan))) + (action + (with-stdout-to %{targets} + (run %{bin:run_bin_on_args} "%{bin:stanc} --print-cpp" %{stanfiles})))) + +(alias + (name runtest) + (action (diff cpp.expected cpp.output))) \ No newline at end of file diff --git a/test/integration/good/code-gen/reduce_sum_m1.stan b/test/integration/good/code-gen/reduce_sum/reduce_sum_m1.stan similarity index 100% rename from test/integration/good/code-gen/reduce_sum_m1.stan rename to test/integration/good/code-gen/reduce_sum/reduce_sum_m1.stan diff --git a/test/integration/good/code-gen/reduce_sum_m2.stan b/test/integration/good/code-gen/reduce_sum/reduce_sum_m2.stan similarity index 100% rename from test/integration/good/code-gen/reduce_sum_m2.stan rename to test/integration/good/code-gen/reduce_sum/reduce_sum_m2.stan diff --git a/test/integration/good/code-gen/reduce_sum_m3.stan b/test/integration/good/code-gen/reduce_sum/reduce_sum_m3.stan similarity index 100% rename from test/integration/good/code-gen/reduce_sum_m3.stan rename to test/integration/good/code-gen/reduce_sum/reduce_sum_m3.stan From f352effdc20911fdd43c8482b4a573eb5972c105 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Tue, 8 Jun 2021 16:15:14 +0300 Subject: [PATCH 17/24] post-merge cleanup --- src/frontend/Semantic_check.ml | 14 ++- src/middle/Semantic_error.ml | 2 +- src/middle/SignatureMismatch.ml | 21 ++-- src/middle/UnsizedType.ml | 110 ------------------ .../bad/compound-assign/stanc.expected | 11 -- 5 files changed, 18 insertions(+), 140 deletions(-) diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 2f82d8e4a1..461b511e2e 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -281,7 +281,7 @@ let semantic_check_fn_normal ~is_cond_dist ~loc id es = | Some (_, UnsizedType.UFun (_, Void, _)) -> Semantic_error.returning_fn_expected_nonreturning_found loc id.name |> error - | Some (_, UFun (listedtypes, ReturnType ut, _)) -> ( + | Some (_, UFun (listedtypes, ReturnType ut, (_, is_closure))) -> ( match SignatureMismatch.check_compatible_arguments_mod_conv listedtypes (get_arg_types es) @@ -293,10 +293,12 @@ let semantic_check_fn_normal ~is_cond_dist ~loc id es = (ReturnType ut) x |> error | None -> + let kind = + if is_closure then Closure (Fun_kind.suffix_from_name id.name) + else UserDefined (Fun_kind.suffix_from_name id.name) + in mk_typed_expression - ~expr: - (mk_fun_app ~is_cond_dist - (UserDefined (Fun_kind.suffix_from_name id.name), id, es)) + ~expr:(mk_fun_app ~is_cond_dist (kind, id, es)) ~ad_level:(expr_ad_lub es) ~type_:ut ~loc |> ok ) | Some _ -> @@ -961,7 +963,9 @@ let semantic_check_nrfn_normal ~loc id es = (get_arg_types es) with | None -> - let kind = if is_closure then Closure suffix else UserDefined suffix in + let kind = + if is_closure then Closure suffix else UserDefined suffix + in mk_typed_statement ~stmt:(NRFunApp (kind, id, es)) ~return_type:NoReturnType ~loc diff --git a/src/middle/Semantic_error.ml b/src/middle/Semantic_error.ml index fd48bed0df..55f7796ae7 100644 --- a/src/middle/Semantic_error.ml +++ b/src/middle/Semantic_error.ml @@ -105,7 +105,7 @@ module TypeError = struct | IllTypedAssignment (op, lt, rt) -> Fmt.pf ppf "@[Ill-typed arguments supplied to assignment operator %s: lhs \ - has type %a and rhs has type %a. Available signatures:@]@ %s" + has type %a and rhs has type %a. Available signatures:@]%s" (Fmt.strf "%a=" Operator.pp op) UnsizedType.pp lt UnsizedType.pp rt ( Stan_math_signatures.pretty_print_math_lib_assignmentoperator_sigs diff --git a/src/middle/SignatureMismatch.ml b/src/middle/SignatureMismatch.ml index 88e8a08ff8..1208fbc629 100644 --- a/src/middle/SignatureMismatch.ml +++ b/src/middle/SignatureMismatch.ml @@ -178,7 +178,8 @@ let stan_math_returntype name args = let check_variadic_args allow_lpdf mandatory_arg_tys mandatory_fun_arg_tys fun_return args = let minimal_func_type = - UnsizedType.UFun (mandatory_fun_arg_tys, ReturnType fun_return, (FnPlain, true)) + UnsizedType.UFun + (mandatory_fun_arg_tys, ReturnType fun_return, (FnPlain, true)) in let minimal_args = (UnsizedType.AutoDiffable, minimal_func_type) :: mandatory_arg_tys @@ -186,8 +187,8 @@ let check_variadic_args allow_lpdf mandatory_arg_tys mandatory_fun_arg_tys let wrap_err x = Some (minimal_args, ArgError (1, x)) in match args with | ( _ - , (UnsizedType.UFun (fun_args, ReturnType return_type, (suffix, _)) as func_type) - ) + , ( UnsizedType.UFun (fun_args, ReturnType return_type, (suffix, _)) as + func_type ) ) :: _ -> let mandatory, variadic_arg_tys = List.split_n fun_args (List.length mandatory_fun_arg_tys) @@ -248,11 +249,8 @@ let pp_signature_mismatch ppf (name, arg_tys, (sigs, omitted)) = "@[The %s argument is %s but the other is %s. These function \ types are not compatible.@]" (index_str n) (suffix_str expected) (suffix_str found) - | ArgError (n, TypeMismatch (_, _, Some (ClosureError))) - -> - pf ppf - "@[The %s argument cannot be a closure.@]" - (index_str n) + | ArgError (n, TypeMismatch (_, _, Some ClosureError)) -> + pf ppf "@[The %s argument cannot be a closure.@]" (index_str n) | ArgError (n, TypeMismatch (expected, found, Some (InputMismatch err))) -> pf ppf "@[The types for the %s argument are incompatible: one is@, %a@ \ @@ -286,11 +284,8 @@ let pp_signature_mismatch ppf (name, arg_tys, (sigs, omitted)) = "@[The %s argument must be %s but got %s. These function types \ are not compatible.@]" (index_str n) (suffix_str expected) (suffix_str found) - | ArgError (n, TypeMismatch (_, _, Some (ClosureError))) - -> - pf ppf - "@[The %s argument cannot be a closure.@]" - (index_str n) + | ArgError (n, TypeMismatch (_, _, Some ClosureError)) -> + pf ppf "@[The %s argument cannot be a closure.@]" (index_str n) | ArgError (n, TypeMismatch (expected, found, Some (InputMismatch err))) -> pf ppf "@[The %s argument must be@, %a@ but got@, %a@ @[These are \ diff --git a/src/middle/UnsizedType.ml b/src/middle/UnsizedType.ml index f195d12cf0..f38515c070 100644 --- a/src/middle/UnsizedType.ml +++ b/src/middle/UnsizedType.ml @@ -180,113 +180,3 @@ include Comparable.Make_using_comparator (struct include Comparator end) - -module TypeMap = Core_kernel.Map.Make_using_comparator (struct - type nonrec t = t - - let sexp_of_t = sexp_of_t - let t_of_sexp = t_of_sexp - - include Comparator -end) - -let pp_sigs ppf tys = - let ctx = ref TypeMap.empty in - let rec pp ppf = function - | UInt -> pp_keyword ppf "int" - | UReal -> pp_keyword ppf "real" - | UVector -> pp_keyword ppf "vector" - | URowVector -> pp_keyword ppf "row_vector" - | UMatrix -> pp_keyword ppf "matrix" - | UArray ut -> - let ut2, d = unwind_array_type ut in - let array_str = "[" ^ String.make d ',' ^ "]" in - Fmt.pf ppf "array%s %a" array_str pp ut2 - | UFun (tys, rt, (s, _)) as t -> ( - match Map.find !ctx t with - | Some (id, _) -> Fmt.pf ppf "%s" id - | None -> - let id = Fmt.strf "" (Map.length !ctx + 1) in - ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, s, tys)) ; - Fmt.pf ppf "%s" id ) - | UMathLibraryFunction -> - (pp_angle_brackets Fmt.string) ppf "Stan Math function" - and pp_fun_arg ppf (ad_ty, unsized_ty) = - match ad_ty with - | DataOnly -> Fmt.pf ppf {|data %a|} pp unsized_ty - | _ -> pp ppf unsized_ty - and pp_returntype ppf = function - | Void -> Fmt.string ppf "void" - | ReturnType ut -> pp ppf ut - and pp_fn ppf (rt, argtypes) = - Fmt.pf ppf {|(@[%a@]) => %a|} - Fmt.(list pp_fun_arg ~sep:comma) - argtypes pp_returntype rt - and pp_fun ppf (id, (rt, s, argtypes)) = - Fmt.pf ppf {|@[%s = @[%s(@[%a@]) => %a@]@]|} id - (make_suffix s argtypes) - Fmt.(list pp_fun_arg ~sep:comma) - argtypes pp_returntype rt - and pp_where ppf old = - let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem old ty)) in - let old = !ctx in - if not (Map.is_empty new_) then ( - Fmt.cut ppf () ; - let compare (_, (id1, _)) (_, (id2, _)) = String.compare id1 id2 in - Fmt.list pp_fun ppf - (List.map ~f:snd (List.sort ~compare (Map.to_alist new_))) ; - pp_where ppf old ) - in - Fmt.pf ppf "@[%a" Fmt.(list pp_fn) tys ; - if not (Map.is_empty !ctx) then - Fmt.pf ppf "@, where%a" pp_where TypeMap.empty ; - Fmt.pf ppf "@]" ; - !ctx - -let pp_args ppf (fns, tys) = - let ctx = ref fns in - let rec pp ppf = function - | UInt -> pp_keyword ppf "int" - | UReal -> pp_keyword ppf "real" - | UVector -> pp_keyword ppf "vector" - | URowVector -> pp_keyword ppf "row_vector" - | UMatrix -> pp_keyword ppf "matrix" - | UArray ut -> - let ut2, d = unwind_array_type ut in - let array_str = "[" ^ String.make d ',' ^ "]" in - Fmt.pf ppf "array%s %a" array_str pp ut2 - | UFun (tys, rt, (s, _)) as t -> ( - match Map.find !ctx t with - | Some (id, _) -> Fmt.pf ppf "%s" id - | None -> - let id = Fmt.strf "" (Map.length !ctx + 1) in - ctx := Map.add_exn !ctx ~key:t ~data:(id, (rt, s, tys)) ; - Fmt.pf ppf "%s" id ) - | UMathLibraryFunction -> - (pp_angle_brackets Fmt.string) ppf "Stan Math function" - and pp_fun_arg ppf (ad_ty, unsized_ty) = - match ad_ty with - | DataOnly -> Fmt.pf ppf {|data %a|} pp unsized_ty - | _ -> pp ppf unsized_ty - and pp_returntype ppf = function - | Void -> Fmt.string ppf "void" - | ReturnType ut -> pp ppf ut - and pp_fun ppf (id, (rt, s, argtypes)) = - Fmt.pf ppf {|@[%s = @[%s(@[%a@]) => %a@]@]|} id - (make_suffix s argtypes) - Fmt.(list pp_fun_arg ~sep:comma) - argtypes pp_returntype rt - and pp_where ppf old = - let new_ = Map.filter_keys !ctx ~f:(fun ty -> not (Map.mem old ty)) in - let old = !ctx in - if not (Map.is_empty new_) then ( - Fmt.cut ppf () ; - let compare (_, (id1, _)) (_, (id2, _)) = String.compare id1 id2 in - Fmt.list pp_fun ppf - (List.map ~f:snd (List.sort ~compare (Map.to_alist new_))) ; - pp_where ppf old ) - in - Fmt.pf ppf "@[(@[%a@])" Fmt.(list ~sep:comma pp) tys ; - if Int.( > ) (Map.length !ctx) (Map.length fns) then - Fmt.pf ppf "@, where%a" pp_where fns ; - Fmt.pf ppf "@]" diff --git a/test/integration/bad/compound-assign/stanc.expected b/test/integration/bad/compound-assign/stanc.expected index b6f640d245..daceaa82ca 100644 --- a/test/integration/bad/compound-assign/stanc.expected +++ b/test/integration/bad/compound-assign/stanc.expected @@ -9,7 +9,6 @@ Semantic error in 'elt_divide_equals_prim.stan', line 4, column 2 to column 10: ------------------------------------------------- Ill-typed arguments supplied to assignment operator ./=: lhs has type real and rhs has type real. Available signatures: - (vector, int) => void (vector, real) => void (vector, vector) => void @@ -30,7 +29,6 @@ Semantic error in 'elt_times_equals_prim.stan', line 4, column 2 to column 10: ------------------------------------------------- Ill-typed arguments supplied to assignment operator .*=: lhs has type real and rhs has type real. Available signatures: - (vector, vector) => void (row_vector, row_vector) => void (matrix, matrix) => void @@ -102,7 +100,6 @@ Semantic error in 'plus_equals_matrix_array.stan', line 7, column 2 to column 9: ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type array[] matrix and rhs has type array[] matrix. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -126,7 +123,6 @@ Semantic error in 'plus_equals_matrix_array2.stan', line 7, column 2 to column 1 ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type matrix and rhs has type row_vector. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -162,7 +158,6 @@ Semantic error in 'plus_equals_prim_array.stan', line 5, column 2 to column 9: ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type array[] real and rhs has type array[] real. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -186,7 +181,6 @@ Semantic error in 'plus_equals_row_vec_array.stan', line 5, column 2 to column 9 ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type array[] row_vector and rhs has type array[] row_vector. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -211,7 +205,6 @@ Semantic error in 'plus_equals_sliced.stan', line 6, column 4 to column 27: ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type vector and rhs has type matrix. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -235,7 +228,6 @@ Semantic error in 'plus_equals_type_mismatch.stan', line 4, column 2 to column 9 ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type int and rhs has type real. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -259,7 +251,6 @@ Semantic error in 'plus_equals_type_mismatch2.stan', line 4, column 2 to column ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type real and rhs has type vector. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -283,7 +274,6 @@ Semantic error in 'plus_equals_vector_array.stan', line 5, column 2 to column 9: ------------------------------------------------- Ill-typed arguments supplied to assignment operator +=: lhs has type array[] vector and rhs has type array[] vector. Available signatures: - (int, int) => void (real, int) => void (real, real) => void @@ -308,7 +298,6 @@ Semantic error in 'times_equals_matrix_array.stan', line 5, column 2 to column 1 ------------------------------------------------- Ill-typed arguments supplied to assignment operator *=: lhs has type row_vector and rhs has type row_vector. Available signatures: - (int, int) => void (real, int) => void (real, real) => void From ce8f83a36a9b5d6e5577db36733e4846a6e4cf5f Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Tue, 15 Jun 2021 12:25:57 +0300 Subject: [PATCH 18/24] simplify ode interface --- src/frontend/Semantic_check.ml | 3 +- src/stan_math_backend/Expression_gen.ml | 18 +- .../good/code-gen/closures/cpp.expected | 3 +- test/integration/good/code-gen/cpp.expected | 3621 +++++++++-------- .../good/code-gen/ode/cpp.expected | 30 +- 5 files changed, 2046 insertions(+), 1629 deletions(-) diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 0ddab9f54e..1271282692 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -1780,7 +1780,8 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = Utils.distribution_suffices in { cf with - in_fun_def= true + current_block= Functions + ; in_fun_def= true ; in_rng_fun_def= String.is_suffix id.name ~suffix:"_rng" ; in_lp_fun_def= String.is_suffix id.name ~suffix:"_lp" ; in_udf_dist_def= is_udf_dist id.name diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 31a3f1ea5e..bf78b73eee 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -163,7 +163,8 @@ let ode_adapter f = match Expr.(f.Fixed.meta.Typed.Meta.type_) with | UFun (args, rt, _) -> { Expr.Fixed.meta= {f.meta with type_= UFun (args, rt, (FnPlain, true))} - ; pattern= FunApp (StanLib ("stan::math::ode_closure_adapter", FnPlain), []) } + ; pattern= + FunApp (StanLib ("stan::math::ode_closure_adapter", FnPlain), []) } | _ -> failwith "impossible" let wrap_fn f = @@ -322,7 +323,8 @@ and gen_fun_app suffix ppf fname es = |"integrate_ode_adams", f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl |"integrate_ode_rk45", f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl -> - (fname, f :: y0 :: t0 :: ts :: theta :: x :: x_int :: msgs :: tl) + ( fname + , f :: y0 :: t0 :: ts :: theta :: x :: x_int :: msgs :: tl ) | ( x , {meta= {type_= UFun (_, _, (_, false)); _}; pattern= Var f} :: grainsize :: container :: tl ) @@ -350,12 +352,12 @@ and gen_fun_app suffix ppf fname es = ~suffix:Stan_math_signatures.ode_tolerances_suffix && not (Stan_math_signatures.variadic_ode_adjoint_fn = x) -> ( fname - , wrap_fn f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps - :: msgs :: tl ) + , ode_adapter f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: max_steps + :: msgs :: wrap_fn f :: tl ) | x, f :: y0 :: t0 :: ts :: tl when Stan_math_signatures.is_variadic_ode_fn x && not (Stan_math_signatures.variadic_ode_adjoint_fn = x) -> - (fname, wrap_fn f :: y0 :: t0 :: ts :: msgs :: tl) + (fname, ode_adapter f :: y0 :: t0 :: ts :: msgs :: wrap_fn f :: tl) | ( x , f :: y0 @@ -373,14 +375,14 @@ and gen_fun_app suffix ppf fname es = :: solver_f :: solver_b :: tl ) when Stan_math_signatures.variadic_ode_adjoint_fn = x -> ( fname - , wrap_fn f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: rel_tol_b + , ode_adapter f :: y0 :: t0 :: ts :: rel_tol :: abs_tol :: rel_tol_b :: abs_tol_b :: rel_tol_q :: abs_tol_q :: max_num_steps :: num_checkpoints :: interpolation_polynomial :: solver_f - :: solver_b :: msgs :: tl ) + :: solver_b :: msgs :: wrap_fn f :: tl ) | x, f :: y0 :: t0 :: ts :: tl when Stan_math_signatures.is_variadic_ode_fn x && not (Stan_math_signatures.variadic_ode_adjoint_fn = x) -> - (fname, f :: y0 :: t0 :: ts :: msgs :: tl) + (fname, ode_adapter f :: y0 :: t0 :: ts :: msgs :: wrap_fn f :: tl) | ( "map_rect" , {pattern= Var f; meta= {type_= UFun (_, _, (FnPlain, false)); _}} :: tl ) -> diff --git a/test/integration/good/code-gen/closures/cpp.expected b/test/integration/good/code-gen/closures/cpp.expected index d6cf66d17d..4658cfddb0 100644 --- a/test/integration/good/code-gen/closures/cpp.expected +++ b/test/integration/good/code-gen/closures/cpp.expected @@ -2292,7 +2292,8 @@ integrate(const std::vector>& k, current_statement__ = 6; auto harmonic = harmonic_L4C15_make__(k); current_statement__ = 7; - return ode_rk45(harmonic, init, 0, ts, pstream__); + return ode_rk45(stan::math::ode_closure_adapter(), init, 0, ts, + pstream__, harmonic); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 2e5b4ae9f7..bc142a4a84 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -14165,52 +14165,58 @@ class new_integrate_interface_model final : public model_base_crtp(r, 0, 1)); } @@ -15933,796 +16142,895 @@ class new_integrate_interface_model final : public model_base_crtp(y, 0, 1)); @@ -439,22 +442,25 @@ class ode_adjoint_test_model_model final : public model_base_crtp Date: Tue, 15 Jun 2021 19:49:38 +0300 Subject: [PATCH 19/24] eval() eigen expressions --- src/stan_math_backend/Expression_gen.ml | 3 +- src/stan_math_backend/Stan_math_code_gen.ml | 4 +- .../good/code-gen/closures/cpp.expected | 44 +++++++++---------- 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index bf78b73eee..31ac27f309 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -323,8 +323,7 @@ and gen_fun_app suffix ppf fname es = |"integrate_ode_adams", f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl |"integrate_ode_rk45", f :: y0 :: t0 :: ts :: theta :: x :: x_int :: tl -> - ( fname - , f :: y0 :: t0 :: ts :: theta :: x :: x_int :: msgs :: tl ) + (fname, f :: y0 :: t0 :: ts :: theta :: x :: x_int :: msgs :: tl) | ( x , {meta= {type_= UFun (_, _, (_, false)); _}; pattern= Var f} :: grainsize :: container :: tl ) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 8f1794ca69..0b115db1c5 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -419,7 +419,9 @@ let pp_closure ppf (fdrt, fdname, fdsuffix, fdcaptures, fdargs) = (list ~sep:comma string) templates ) in let pp f = - list ~sep:comma (fun ppf (_, _, id, _) -> pf ppf "%s(%s)" f id) + list ~sep:comma (fun ppf -> function + | _, UnsizedType.DataOnly, id, _ -> pf ppf "%s" id + | _, AutoDiffable, id, _ -> pf ppf "eval(%s(%s))" f id ) in let valueof ppf () = pf ppf "auto value_of__() const {@ return ValueOf__(@[%a@]);@ }" diff --git a/test/integration/good/code-gen/closures/cpp.expected b/test/integration/good/code-gen/closures/cpp.expected index 4658cfddb0..f70d1ead12 100644 --- a/test/integration/good/code-gen/closures/cpp.expected +++ b/test/integration/good/code-gen/closures/cpp.expected @@ -96,12 +96,12 @@ stan::value_type_t> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(p), value_of(pa), value_of(pv), value_of(v), - value_of(x), value_of(y)); + return ValueOf__(eval(value_of(p)), eval(value_of(pa)), eval(value_of(pv)), + v, x, y); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(p), deep_copy_vars(pa), deep_copy_vars(pv), - deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); + return CopyOf__(eval(deep_copy_vars(p)), eval(deep_copy_vars(pa)), + eval(deep_copy_vars(pv)), v, x, y); } void zero_adjoints__() { stan::math::zero_adjoints(p); @@ -165,10 +165,10 @@ stan::value_type_t> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(v), value_of(x), value_of(y)); + return ValueOf__(v, x, y); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(v), deep_copy_vars(x), deep_copy_vars(y)); + return CopyOf__(v, x, y); } void zero_adjoints__() { stan::math::zero_adjoints(v); @@ -815,10 +815,10 @@ T0__> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(foo)); + return ValueOf__(eval(value_of(foo))); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(foo)); + return CopyOf__(eval(deep_copy_vars(foo))); } void zero_adjoints__() { stan::math::zero_adjoints(foo); @@ -868,10 +868,10 @@ T0__> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(foo)); + return ValueOf__(eval(value_of(foo))); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(foo)); + return CopyOf__(eval(deep_copy_vars(foo))); } void zero_adjoints__() { stan::math::zero_adjoints(foo); @@ -1595,10 +1595,10 @@ class bar_L16C9_cfunctor__ { return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(x)); + return ValueOf__(x); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(x)); + return CopyOf__(x); } void zero_adjoints__() { stan::math::zero_adjoints(x); @@ -1646,10 +1646,10 @@ T0__> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(p)); + return ValueOf__(eval(value_of(p))); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(p)); + return CopyOf__(eval(deep_copy_vars(p))); } void zero_adjoints__() { stan::math::zero_adjoints(p); @@ -1703,10 +1703,10 @@ T0__> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(g), value_of(x)); + return ValueOf__(eval(value_of(g)), eval(value_of(x))); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(g), deep_copy_vars(x)); + return CopyOf__(eval(deep_copy_vars(g)), eval(deep_copy_vars(x))); } void zero_adjoints__() { stan::math::zero_adjoints(g); @@ -2249,10 +2249,10 @@ stan::value_type_t>, -1, 1> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(k)); + return ValueOf__(eval(value_of(k))); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(k)); + return CopyOf__(eval(deep_copy_vars(k))); } void zero_adjoints__() { stan::math::zero_adjoints(k); @@ -2829,10 +2829,10 @@ T0__> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(mu)); + return ValueOf__(eval(value_of(mu))); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(mu)); + return CopyOf__(eval(deep_copy_vars(mu))); } void zero_adjoints__() { stan::math::zero_adjoints(mu); @@ -2891,10 +2891,10 @@ T0__> return vars_count__; } auto value_of__() const { - return ValueOf__(value_of(mu)); + return ValueOf__(eval(value_of(mu))); } auto deep_copy_vars__() const { - return CopyOf__(deep_copy_vars(mu)); + return CopyOf__(eval(deep_copy_vars(mu))); } void zero_adjoints__() { stan::math::zero_adjoints(mu); From 2ba4cb9ff9b7930a97426d911a1ef8b7d3918c83 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Wed, 16 Jun 2021 21:08:36 +0300 Subject: [PATCH 20/24] rename closure test files --- .../{closures1.stan => capture_types.stan} | 12 +- .../{closures2.stan => capture_types2.stan} | 12 +- .../good/code-gen/closures/closures5.stan | 20 - .../good/code-gen/closures/cpp.expected | 3904 +++++++++-------- .../{closures3.stan => higher_order.stan} | 14 +- ...sures7.stan => higher_order_suffixes.stan} | 6 +- .../{closures4.stan => ode_rk45.stan} | 0 .../good/code-gen/closures/reduce_sum.stan | 20 + .../{closures6.stan => rng_and_lpdf.stan} | 10 +- test/unit/Stan_math_code_gen_tests.ml | 100 + 10 files changed, 2125 insertions(+), 1973 deletions(-) rename test/integration/good/code-gen/closures/{closures1.stan => capture_types.stan} (64%) rename test/integration/good/code-gen/closures/{closures2.stan => capture_types2.stan} (58%) delete mode 100644 test/integration/good/code-gen/closures/closures5.stan rename test/integration/good/code-gen/closures/{closures3.stan => higher_order.stan} (52%) rename test/integration/good/code-gen/closures/{closures7.stan => higher_order_suffixes.stan} (94%) rename test/integration/good/code-gen/closures/{closures4.stan => ode_rk45.stan} (100%) create mode 100644 test/integration/good/code-gen/closures/reduce_sum.stan rename test/integration/good/code-gen/closures/{closures6.stan => rng_and_lpdf.stan} (51%) diff --git a/test/integration/good/code-gen/closures/closures1.stan b/test/integration/good/code-gen/closures/capture_types.stan similarity index 64% rename from test/integration/good/code-gen/closures/closures1.stan rename to test/integration/good/code-gen/closures/capture_types.stan index 98a8c8a76a..034c972431 100644 --- a/test/integration/good/code-gen/closures/closures1.stan +++ b/test/integration/good/code-gen/closures/capture_types.stan @@ -6,7 +6,7 @@ data { } transformed data { function - real foo(real z, row_vector r) { + real capture_data(real z, row_vector r) { real rs = sum(r); real ys = sum(y); real vs = sum(v); @@ -20,7 +20,7 @@ parameters { } model { function - real bar(real z, row_vector r) { + real capture_data_and_params(real z, row_vector r) { real rs = sum(r); real ys = sum(y); real vs = sum(v); @@ -28,8 +28,8 @@ model { real pvs = sum(pv); return z + rs + x + ys + vs + p + pas + pvs; } - target += foo(0.0,[1.0]); - target += foo(p,[1.0]); - target += bar(0.0,[1.0]); - target += bar(p,[1.0]); + target += capture_data(0.0,[1.0]); + target += capture_data(p,[1.0]); + target += capture_data_and_params(0.0,[1.0]); + target += capture_data_and_params(p,[1.0]); } \ No newline at end of file diff --git a/test/integration/good/code-gen/closures/closures2.stan b/test/integration/good/code-gen/closures/capture_types2.stan similarity index 58% rename from test/integration/good/code-gen/closures/closures2.stan rename to test/integration/good/code-gen/closures/capture_types2.stan index df3b31c16b..9d51256ebb 100644 --- a/test/integration/good/code-gen/closures/closures2.stan +++ b/test/integration/good/code-gen/closures/capture_types2.stan @@ -4,7 +4,7 @@ transformed data { return x; } function - real bar(real y) { + real capture_dataonly_closure(real y) { return foo(y); } } @@ -13,18 +13,18 @@ parameters { } transformed parameters { function - real baz(real y) { + real capture_closure(real y) { return foo(y); } function - real goo(real s) { + real closure_in_closure(real s) { function real gar(real b) { return b; } return gar(s); } - real s1 = bar(1.0); - real s2 = baz(1.0); - real s3 = goo(1.0); + real s1 = capture_dataonly_closure(1.0); + real s2 = capture_closure(1.0); + real s3 = closure_in_closure(1.0); } \ No newline at end of file diff --git a/test/integration/good/code-gen/closures/closures5.stan b/test/integration/good/code-gen/closures/closures5.stan deleted file mode 100644 index de96ba7c59..0000000000 --- a/test/integration/good/code-gen/closures/closures5.stan +++ /dev/null @@ -1,20 +0,0 @@ -data { - int N; -} -parameters { - real mu; - real x[N]; -} -model { - function - real foo(real[] slice, int start, int end) { - return normal_lpdf(slice|mu,1); - } - function - real bar_lpdf(real[] slice, int start, int end) { - return normal_lupdf(slice|mu, 1); - } - target += reduce_sum(foo, x, 1); - target += reduce_sum(bar_lpdf, x, 1); - target += reduce_sum(bar_lupdf, x, 1); -} \ No newline at end of file diff --git a/test/integration/good/code-gen/closures/cpp.expected b/test/integration/good/code-gen/closures/cpp.expected index f70d1ead12..f557919723 100644 --- a/test/integration/good/code-gen/closures/cpp.expected +++ b/test/integration/good/code-gen/closures/cpp.expected @@ -1,8 +1,8 @@ - $ ../../../../../../install/default/bin/stanc --print-cpp closures1.stan + $ ../../../../../../install/default/bin/stanc --print-cpp capture_types.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures1_model_namespace { +namespace capture_types_model_namespace { using stan::io::dump; using stan::model::assign; @@ -20,191 +20,198 @@ using namespace stan::math; stan::math::profile_map profiles__; static constexpr std::array locations_array__ = {" (found before start of program)", - " (in 'closures1.stan', line 8, column 4 to line 14, column 5)", - " (in 'closures1.stan', line 17, column 4 to column 11)", - " (in 'closures1.stan', line 18, column 4 to column 15)", - " (in 'closures1.stan', line 19, column 4 to column 17)", - " (in 'closures1.stan', line 22, column 4 to line 30, column 5)", - " (in 'closures1.stan', line 31, column 4 to column 29)", - " (in 'closures1.stan', line 32, column 4 to column 27)", - " (in 'closures1.stan', line 33, column 4 to column 29)", - " (in 'closures1.stan', line 34, column 4 to column 27)", - " (in 'closures1.stan', line 2, column 4 to column 10)", - " (in 'closures1.stan', line 3, column 4 to column 11)", - " (in 'closures1.stan', line 4, column 11 to column 12)", - " (in 'closures1.stan', line 4, column 4 to column 14)", - " (in 'closures1.stan', line 5, column 11 to column 12)", - " (in 'closures1.stan', line 5, column 4 to column 16)", - " (in 'closures1.stan', line 18, column 12 to column 13)", - " (in 'closures1.stan', line 19, column 11 to column 12)", - " (in 'closures1.stan', line 24, column 8 to column 25)", - " (in 'closures1.stan', line 25, column 8 to column 25)", - " (in 'closures1.stan', line 26, column 8 to column 25)", - " (in 'closures1.stan', line 27, column 8 to column 27)", - " (in 'closures1.stan', line 28, column 8 to column 27)", - " (in 'closures1.stan', line 29, column 8 to column 52)", - " (in 'closures1.stan', line 23, column 35 to line 30, column 5)", - " (in 'closures1.stan', line 10, column 8 to column 25)", - " (in 'closures1.stan', line 11, column 8 to column 25)", - " (in 'closures1.stan', line 12, column 8 to column 25)", - " (in 'closures1.stan', line 13, column 8 to column 36)", - " (in 'closures1.stan', line 9, column 35 to line 14, column 5)"}; + " (in 'capture_types.stan', line 8, column 4 to line 14, column 5)", + " (in 'capture_types.stan', line 17, column 4 to column 11)", + " (in 'capture_types.stan', line 18, column 4 to column 15)", + " (in 'capture_types.stan', line 19, column 4 to column 17)", + " (in 'capture_types.stan', line 22, column 4 to line 30, column 5)", + " (in 'capture_types.stan', line 31, column 4 to column 38)", + " (in 'capture_types.stan', line 32, column 4 to column 36)", + " (in 'capture_types.stan', line 33, column 4 to column 49)", + " (in 'capture_types.stan', line 34, column 4 to column 47)", + " (in 'capture_types.stan', line 2, column 4 to column 10)", + " (in 'capture_types.stan', line 3, column 4 to column 11)", + " (in 'capture_types.stan', line 4, column 11 to column 12)", + " (in 'capture_types.stan', line 4, column 4 to column 14)", + " (in 'capture_types.stan', line 5, column 11 to column 12)", + " (in 'capture_types.stan', line 5, column 4 to column 16)", + " (in 'capture_types.stan', line 18, column 12 to column 13)", + " (in 'capture_types.stan', line 19, column 11 to column 12)", + " (in 'capture_types.stan', line 10, column 8 to column 25)", + " (in 'capture_types.stan', line 11, column 8 to column 25)", + " (in 'capture_types.stan', line 12, column 8 to column 25)", + " (in 'capture_types.stan', line 13, column 8 to column 36)", + " (in 'capture_types.stan', line 9, column 44 to line 14, column 5)", + " (in 'capture_types.stan', line 24, column 8 to column 25)", + " (in 'capture_types.stan', line 25, column 8 to column 25)", + " (in 'capture_types.stan', line 26, column 8 to column 25)", + " (in 'capture_types.stan', line 27, column 8 to column 27)", + " (in 'capture_types.stan', line 28, column 8 to column 27)", + " (in 'capture_types.stan', line 29, column 8 to column 52)", + " (in 'capture_types.stan', line 23, column 55 to line 30, column 5)"}; -template -stan::promote_args_t, -stan::value_type_t, -T6__, stan::promote_args_t>> -bar_L23C9_impl__(const T0__& p, const std::vector& pa, const T2__& pv, - const T3__& v, const double& x, - const std::vector& y, const T6__& z, const T7__& r, - std::ostream* pstream__) ; +template +stan::promote_args_t, T3__, +stan::value_type_t> +capture_data_L9C9_impl__(const T0__& v, const double& x, + const std::vector& y, const T3__& z, + const T4__& r, std::ostream* pstream__) ; -template -class bar_L23C9_cfunctor__ { - stan::capture_type_t p; - stan::capture_type_t, ref__> pa; - stan::capture_type_t, ref__> pv; +class capture_data_L9C9_cfunctor__ { const Eigen::Matrix& v; - stan::capture_type_t x; + double x; const std::vector& y; public: const size_t vars_count__; - bar_L23C9_cfunctor__(const bar_L23C9_cfunctor__&) = default ; - bar_L23C9_cfunctor__(bar_L23C9_cfunctor__&&) = default ; - bar_L23C9_cfunctor__(const F0__& p__, const std::vector& pa__, - const Eigen::Matrix& pv__, - const Eigen::Matrix& v__, - const double& x__, const std::vector& y__) - : p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), - vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} + capture_data_L9C9_cfunctor__(const capture_data_L9C9_cfunctor__&) = default ; + capture_data_L9C9_cfunctor__(capture_data_L9C9_cfunctor__&&) = default ; + capture_data_L9C9_cfunctor__(const Eigen::Matrix& v__, + const double& x__, + const std::vector& y__) + : v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} template - stan::promote_args_t> operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const { - return bar_L23C9_impl__(p, pa, pv, v, x, y, z, r, pstream__); + return capture_data_L9C9_impl__(v, x, y, z, r, pstream__); } - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_L23C9_cfunctor__; - using CopyOf__ = bar_L23C9_cfunctor__, - stan::capture_type_t, - stan::capture_type_t>; + using captured_scalar_t__ = double; + using ValueOf__ = capture_data_L9C9_cfunctor__; + using CopyOf__ = capture_data_L9C9_cfunctor__; size_t count_vars__() const { return vars_count__; } auto value_of__() const { - return ValueOf__(eval(value_of(p)), eval(value_of(pa)), eval(value_of(pv)), - v, x, y); + return ValueOf__(v, x, y); } auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(p)), eval(deep_copy_vars(pa)), - eval(deep_copy_vars(pv)), v, x, y); + return CopyOf__(v, x, y); } void zero_adjoints__() { - stan::math::zero_adjoints(p); - stan::math::zero_adjoints(pa); - stan::math::zero_adjoints(pv); stan::math::zero_adjoints(v); stan::math::zero_adjoints(x); stan::math::zero_adjoints(y); } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); + return stan::math::accumulate_adjoints(dest, v, x, y); } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, p, pa, pv, v, x, y); + return stan::math::save_varis(dest, v, x, y); } }; -template -auto bar_L23C9_make__(const F0__& p, const std::vector& pa, - const Eigen::Matrix& pv, - const Eigen::Matrix& v, const double& x, - const std::vector& y) { -return bar_L23C9_cfunctor__(p, pa, pv, v, x, y); +auto capture_data_L9C9_make__(const Eigen::Matrix& v, + const double& x, const std::vector& y) { +return capture_data_L9C9_cfunctor__(v, x, y); } -template -stan::promote_args_t, T3__, -stan::value_type_t> -foo_L9C9_impl__(const T0__& v, const double& x, const std::vector& y, - const T3__& z, const T4__& r, std::ostream* pstream__) ; +template +stan::promote_args_t, +stan::value_type_t, +T6__, stan::promote_args_t>> +capture_data_and_params_L23C9_impl__(const T0__& p, + const std::vector& pa, + const T2__& pv, const T3__& v, + const double& x, + const std::vector& y, + const T6__& z, const T7__& r, + std::ostream* pstream__) ; -class foo_L9C9_cfunctor__ { +template +class capture_data_and_params_L23C9_cfunctor__ { + stan::capture_type_t p; + stan::capture_type_t, ref__> pa; + stan::capture_type_t, ref__> pv; const Eigen::Matrix& v; - double x; + stan::capture_type_t x; const std::vector& y; public: const size_t vars_count__; - foo_L9C9_cfunctor__(const foo_L9C9_cfunctor__&) = default ; - foo_L9C9_cfunctor__(foo_L9C9_cfunctor__&&) = default ; - foo_L9C9_cfunctor__(const Eigen::Matrix& v__, - const double& x__, const std::vector& y__) - : v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} + capture_data_and_params_L23C9_cfunctor__(const capture_data_and_params_L23C9_cfunctor__< + ref__, F0__, F1__, F2__>&) = default ; + capture_data_and_params_L23C9_cfunctor__(capture_data_and_params_L23C9_cfunctor__< + ref__, F0__, F1__, F2__>&&) = default ; + capture_data_and_params_L23C9_cfunctor__(const F0__& p__, + const std::vector& pa__, + const Eigen::Matrix& pv__, + const Eigen::Matrix& v__, + const double& x__, + const std::vector& y__) + : p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), + vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} template - stan::promote_args_t> operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const { - return foo_L9C9_impl__(v, x, y, z, r, pstream__); + return capture_data_and_params_L23C9_impl__(p, pa, pv, v, x, y, z, r, + pstream__); } - using captured_scalar_t__ = double; - using ValueOf__ = foo_L9C9_cfunctor__; - using CopyOf__ = foo_L9C9_cfunctor__; + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = capture_data_and_params_L23C9_cfunctor__; + using CopyOf__ = capture_data_and_params_L23C9_cfunctor__, + stan::capture_type_t, + stan::capture_type_t>; size_t count_vars__() const { return vars_count__; } auto value_of__() const { - return ValueOf__(v, x, y); + return ValueOf__(eval(value_of(p)), eval(value_of(pa)), eval(value_of(pv)), + v, x, y); } auto deep_copy_vars__() const { - return CopyOf__(v, x, y); + return CopyOf__(eval(deep_copy_vars(p)), eval(deep_copy_vars(pa)), + eval(deep_copy_vars(pv)), v, x, y); } void zero_adjoints__() { + stan::math::zero_adjoints(p); + stan::math::zero_adjoints(pa); + stan::math::zero_adjoints(pv); stan::math::zero_adjoints(v); stan::math::zero_adjoints(x); stan::math::zero_adjoints(y); } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, v, x, y); + return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, v, x, y); + return stan::math::save_varis(dest, p, pa, pv, v, x, y); } }; -auto foo_L9C9_make__(const Eigen::Matrix& v, const double& x, - const std::vector& y) { -return foo_L9C9_cfunctor__(v, x, y); +template +auto capture_data_and_params_L23C9_make__(const F0__& p, + const std::vector& pa, + const Eigen::Matrix& pv, + const Eigen::Matrix& v, + const double& x, + const std::vector& y) { +return capture_data_and_params_L23C9_cfunctor__(p, pa, pv, v, x, y); } -template -stan::promote_args_t, -stan::value_type_t, -T6__, stan::promote_args_t>> -bar_L23C9_impl__(const T0__& p, const std::vector& pa, - const T2__& pv_arg__, const T3__& v_arg__, const double& x, - const std::vector& y, const T6__& z, - const T7__& r_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - T6__, stan::promote_args_t>>; +template +stan::promote_args_t, T3__, +stan::value_type_t> +capture_data_L9C9_impl__(const T0__& v_arg__, const double& x, + const std::vector& y, const T3__& z, + const T4__& r_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T3__, + stan::value_type_t>; int current_statement__ = 0; - const auto& pv = to_ref(pv_arg__); const auto& v = to_ref(v_arg__); const auto& r = to_ref(r_arg__); static constexpr bool propto__ = true; @@ -227,18 +234,8 @@ bar_L23C9_impl__(const T0__& p, const std::vector& pa, current_statement__ = 20; vs = sum(v); - local_scalar_t__ pas; - pas = DUMMY_VAR__; - current_statement__ = 21; - pas = sum(pa); - local_scalar_t__ pvs; - pvs = DUMMY_VAR__; - - current_statement__ = 22; - pvs = sum(pv); - current_statement__ = 23; - return (((((((z + rs) + x) + ys) + vs) + p) + pas) + pvs); + return ((((z + rs) + x) + ys) + vs); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -246,16 +243,25 @@ bar_L23C9_impl__(const T0__& p, const std::vector& pa, } } -template -stan::promote_args_t, T3__, -stan::value_type_t> -foo_L9C9_impl__(const T0__& v_arg__, const double& x, - const std::vector& y, const T3__& z, - const T4__& r_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T3__, - stan::value_type_t>; +template +stan::promote_args_t, +stan::value_type_t, +T6__, stan::promote_args_t>> +capture_data_and_params_L23C9_impl__(const T0__& p, + const std::vector& pa, + const T2__& pv_arg__, + const T3__& v_arg__, const double& x, + const std::vector& y, + const T6__& z, const T7__& r_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t, + T6__, stan::promote_args_t>>; int current_statement__ = 0; + const auto& pv = to_ref(pv_arg__); const auto& v = to_ref(v_arg__); const auto& r = to_ref(r_arg__); static constexpr bool propto__ = true; @@ -266,20 +272,30 @@ foo_L9C9_impl__(const T0__& v_arg__, const double& x, local_scalar_t__ rs; rs = DUMMY_VAR__; - current_statement__ = 25; + current_statement__ = 23; rs = sum(r); local_scalar_t__ ys; ys = DUMMY_VAR__; - current_statement__ = 26; + current_statement__ = 24; ys = sum(y); local_scalar_t__ vs; vs = DUMMY_VAR__; - current_statement__ = 27; + current_statement__ = 25; vs = sum(v); + local_scalar_t__ pas; + pas = DUMMY_VAR__; + + current_statement__ = 26; + pas = sum(pa); + local_scalar_t__ pvs; + pvs = DUMMY_VAR__; + + current_statement__ = 27; + pvs = sum(pv); current_statement__ = 28; - return ((((z + rs) + x) + ys) + vs); + return (((((((z + rs) + x) + ys) + vs) + p) + pas) + pvs); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -287,7 +303,7 @@ foo_L9C9_impl__(const T0__& v_arg__, const double& x, } } -class closures1_model final : public model_base_crtp { +class capture_types_model final : public model_base_crtp { private: int N; @@ -297,24 +313,24 @@ class closures1_model final : public model_base_crtp { Eigen::Map> v{nullptr, 0}; public: - ~closures1_model() { } + ~capture_types_model() { } - inline std::string model_name() const final { return "closures1_model"; } + inline std::string model_name() const final { return "capture_types_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures1_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + capture_types_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures1_model_namespace::closures1_model"; + static constexpr const char* function__ = "capture_types_model_namespace::capture_types_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -371,7 +387,7 @@ class closures1_model final : public model_base_crtp { } current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); + auto capture_data = capture_data_L9C9_make__(v, x, y); current_statement__ = 16; validate_non_negative_index("pa", "N", N); current_statement__ = 17; @@ -399,13 +415,13 @@ class closures1_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures1_model_namespace::log_prob"; + static constexpr const char* function__ = "capture_types_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); + auto capture_data = capture_data_L9C9_make__(v, x, y); local_scalar_t__ p; p = DUMMY_VAR__; @@ -425,23 +441,24 @@ class closures1_model final : public model_base_crtp { { current_statement__ = 5; - auto bar = bar_L23C9_make__(p, pa, pv, v, x, y); + auto capture_data_and_params = capture_data_and_params_L23C9_make__( + p, pa, pv, v, x, y); current_statement__ = 6; lp_accum__.add( - foo(pstream__, 0.0, (Eigen::Matrix(1) << + capture_data(pstream__, 0.0, (Eigen::Matrix(1) << 1.0).finished())); current_statement__ = 7; lp_accum__.add( - foo(pstream__, p, (Eigen::Matrix(1) << + capture_data(pstream__, p, (Eigen::Matrix(1) << 1.0).finished())); current_statement__ = 8; lp_accum__.add( - bar(pstream__, 0.0, (Eigen::Matrix(1) << - 1.0).finished())); + capture_data_and_params(pstream__, 0.0, + (Eigen::Matrix(1) << 1.0).finished())); current_statement__ = 9; lp_accum__.add( - bar(pstream__, p, (Eigen::Matrix(1) << - 1.0).finished())); + capture_data_and_params(pstream__, p, + (Eigen::Matrix(1) << 1.0).finished())); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -473,13 +490,13 @@ class closures1_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures1_model_namespace::write_array"; + static constexpr const char* function__ = "capture_types_model_namespace::write_array"; (void) function__; // suppress unused var warning try { current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); + auto capture_data = capture_data_L9C9_make__(v, x, y); double p; p = std::numeric_limits::quiet_NaN(); @@ -531,7 +548,7 @@ class closures1_model final : public model_base_crtp { try { current_statement__ = 1; - auto foo = foo_L9C9_make__(v, x, y); + auto capture_data = capture_data_L9C9_make__(v, x, y); int pos__; pos__ = std::numeric_limits::min(); @@ -722,7 +739,7 @@ class closures1_model final : public model_base_crtp { }; } -using stan_model = closures1_model_namespace::closures1_model; +using stan_model = capture_types_model_namespace::capture_types_model; #ifndef USING_R @@ -736,18 +753,18 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures1_model_namespace::profiles__; + return capture_types_model_namespace::profiles__; } #endif - $ ../../../../../../install/default/bin/stanc --print-cpp closures2.stan + $ ../../../../../../install/default/bin/stanc --print-cpp capture_types2.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures2_model_namespace { +namespace capture_types2_model_namespace { using stan::io::dump; using stan::model::assign; @@ -765,52 +782,56 @@ using namespace stan::math; stan::math::profile_map profiles__; static constexpr std::array locations_array__ = {" (found before start of program)", - " (in 'closures2.stan', line 2, column 4 to line 5, column 5)", - " (in 'closures2.stan', line 6, column 4 to line 9, column 5)", - " (in 'closures2.stan', line 12, column 4 to column 15)", - " (in 'closures2.stan', line 15, column 4 to line 18, column 5)", - " (in 'closures2.stan', line 19, column 4 to line 26, column 5)", - " (in 'closures2.stan', line 27, column 4 to column 23)", - " (in 'closures2.stan', line 28, column 4 to column 23)", - " (in 'closures2.stan', line 29, column 4 to column 23)", - " (in 'closures2.stan', line 8, column 8 to column 22)", - " (in 'closures2.stan', line 7, column 21 to line 9, column 5)", - " (in 'closures2.stan', line 17, column 8 to column 22)", - " (in 'closures2.stan', line 16, column 21 to line 18, column 5)", - " (in 'closures2.stan', line 4, column 8 to column 17)", - " (in 'closures2.stan', line 3, column 21 to line 5, column 5)", - " (in 'closures2.stan', line 23, column 12 to column 21)", - " (in 'closures2.stan', line 22, column 25 to line 24, column 9)", - " (in 'closures2.stan', line 21, column 8 to line 24, column 9)", - " (in 'closures2.stan', line 25, column 8 to column 22)", - " (in 'closures2.stan', line 20, column 21 to line 26, column 5)"}; + " (in 'capture_types2.stan', line 2, column 4 to line 5, column 5)", + " (in 'capture_types2.stan', line 6, column 4 to line 9, column 5)", + " (in 'capture_types2.stan', line 12, column 4 to column 15)", + " (in 'capture_types2.stan', line 15, column 4 to line 18, column 5)", + " (in 'capture_types2.stan', line 19, column 4 to line 26, column 5)", + " (in 'capture_types2.stan', line 27, column 4 to column 44)", + " (in 'capture_types2.stan', line 28, column 4 to column 35)", + " (in 'capture_types2.stan', line 29, column 4 to column 38)", + " (in 'capture_types2.stan', line 17, column 8 to column 22)", + " (in 'capture_types2.stan', line 16, column 33 to line 18, column 5)", + " (in 'capture_types2.stan', line 8, column 8 to column 22)", + " (in 'capture_types2.stan', line 7, column 42 to line 9, column 5)", + " (in 'capture_types2.stan', line 21, column 8 to line 24, column 9)", + " (in 'capture_types2.stan', line 25, column 8 to column 22)", + " (in 'capture_types2.stan', line 20, column 36 to line 26, column 5)", + " (in 'capture_types2.stan', line 4, column 8 to column 17)", + " (in 'capture_types2.stan', line 3, column 21 to line 5, column 5)", + " (in 'capture_types2.stan', line 23, column 12 to column 21)", + " (in 'capture_types2.stan', line 22, column 25 to line 24, column 9)"}; template stan::promote_args_t -bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; +capture_closure_L16C9_impl__(const T0__& foo, const T1__& y, + std::ostream* pstream__) ; template -class bar_L7C9_cfunctor__ { +class capture_closure_L16C9_cfunctor__ { stan::capture_type_t foo; public: const size_t vars_count__; - bar_L7C9_cfunctor__(const bar_L7C9_cfunctor__&) = default ; - bar_L7C9_cfunctor__(bar_L7C9_cfunctor__&&) = default ; - bar_L7C9_cfunctor__(const F0__& foo__) + capture_closure_L16C9_cfunctor__(const capture_closure_L16C9_cfunctor__< + ref__, F0__>&) = default ; + capture_closure_L16C9_cfunctor__(capture_closure_L16C9_cfunctor__&&) = default ; + capture_closure_L16C9_cfunctor__(const F0__& foo__) : foo(foo__), vars_count__(count_vars(foo__)) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& y) const { - return bar_L7C9_impl__(foo, y, pstream__); + return capture_closure_L16C9_impl__(foo, y, pstream__); } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_L7C9_cfunctor__; - using CopyOf__ = bar_L7C9_cfunctor__>; + using ValueOf__ = capture_closure_L16C9_cfunctor__; + using CopyOf__ = capture_closure_L16C9_cfunctor__>; size_t count_vars__() const { return vars_count__; } @@ -833,37 +854,41 @@ T0__> }; template -auto bar_L7C9_make__(const F0__& foo) { -return bar_L7C9_cfunctor__(foo); } template stan::promote_args_t -baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; +capture_dataonly_closure_L7C9_impl__(const T0__& foo, const T1__& y, + std::ostream* pstream__) ; template -class baz_L16C9_cfunctor__ { +class capture_dataonly_closure_L7C9_cfunctor__ { stan::capture_type_t foo; public: const size_t vars_count__; - baz_L16C9_cfunctor__(const baz_L16C9_cfunctor__&) = default ; - baz_L16C9_cfunctor__(baz_L16C9_cfunctor__&&) = default ; - baz_L16C9_cfunctor__(const F0__& foo__) + capture_dataonly_closure_L7C9_cfunctor__(const capture_dataonly_closure_L7C9_cfunctor__< + ref__, F0__>&) = default ; + capture_dataonly_closure_L7C9_cfunctor__(capture_dataonly_closure_L7C9_cfunctor__< + ref__, F0__>&&) = default ; + capture_dataonly_closure_L7C9_cfunctor__(const F0__& foo__) : foo(foo__), vars_count__(count_vars(foo__)) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& y) const { - return baz_L16C9_impl__(foo, y, pstream__); + return capture_dataonly_closure_L7C9_impl__(foo, y, pstream__); } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = baz_L16C9_cfunctor__; - using CopyOf__ = baz_L16C9_cfunctor__>; + using ValueOf__ = capture_dataonly_closure_L7C9_cfunctor__; + using CopyOf__ = capture_dataonly_closure_L7C9_cfunctor__>; size_t count_vars__() const { return vars_count__; } @@ -886,33 +911,33 @@ T0__> }; template -auto baz_L16C9_make__(const F0__& foo) { -return baz_L16C9_cfunctor__(foo); } template stan::promote_args_t -foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; +closure_in_closure_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; -class foo_L3C9_cfunctor__ { +class closure_in_closure_L20C9_cfunctor__ { public: const size_t vars_count__; - foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; - foo_L3C9_cfunctor__(foo_L3C9_cfunctor__&&) = default ; - foo_L3C9_cfunctor__() + closure_in_closure_L20C9_cfunctor__(const closure_in_closure_L20C9_cfunctor__&) = default ; + closure_in_closure_L20C9_cfunctor__(closure_in_closure_L20C9_cfunctor__&&) = default ; + closure_in_closure_L20C9_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const + operator()(std::ostream* pstream__, const T0__& s) const { - return foo_L3C9_impl__(x, pstream__); + return closure_in_closure_L20C9_impl__(s, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = foo_L3C9_cfunctor__; - using CopyOf__ = foo_L3C9_cfunctor__; + using ValueOf__ = closure_in_closure_L20C9_cfunctor__; + using CopyOf__ = closure_in_closure_L20C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -934,32 +959,32 @@ class foo_L3C9_cfunctor__ { }; -auto foo_L3C9_make__() { -return foo_L3C9_cfunctor__(); +auto closure_in_closure_L20C9_make__() { +return closure_in_closure_L20C9_cfunctor__(); } template stan::promote_args_t -gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) ; +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; -class gar_L22C13_cfunctor__ { +class foo_L3C9_cfunctor__ { public: const size_t vars_count__; - gar_L22C13_cfunctor__(const gar_L22C13_cfunctor__&) = default ; - gar_L22C13_cfunctor__(gar_L22C13_cfunctor__&&) = default ; - gar_L22C13_cfunctor__() + foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; + foo_L3C9_cfunctor__(foo_L3C9_cfunctor__&&) = default ; + foo_L3C9_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& b) const + operator()(std::ostream* pstream__, const T0__& x) const { - return gar_L22C13_impl__(b, pstream__); + return foo_L3C9_impl__(x, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = gar_L22C13_cfunctor__; - using CopyOf__ = gar_L22C13_cfunctor__; + using ValueOf__ = foo_L3C9_cfunctor__; + using CopyOf__ = foo_L3C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -981,32 +1006,32 @@ class gar_L22C13_cfunctor__ { }; -auto gar_L22C13_make__() { -return gar_L22C13_cfunctor__(); +auto foo_L3C9_make__() { +return foo_L3C9_cfunctor__(); } template stan::promote_args_t -goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; +gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) ; -class goo_L20C9_cfunctor__ { +class gar_L22C13_cfunctor__ { public: const size_t vars_count__; - goo_L20C9_cfunctor__(const goo_L20C9_cfunctor__&) = default ; - goo_L20C9_cfunctor__(goo_L20C9_cfunctor__&&) = default ; - goo_L20C9_cfunctor__() + gar_L22C13_cfunctor__(const gar_L22C13_cfunctor__&) = default ; + gar_L22C13_cfunctor__(gar_L22C13_cfunctor__&&) = default ; + gar_L22C13_cfunctor__() : vars_count__(count_vars()) {} template stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& s) const + operator()(std::ostream* pstream__, const T0__& b) const { - return goo_L20C9_impl__(s, pstream__); + return gar_L22C13_impl__(b, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = goo_L20C9_cfunctor__; - using CopyOf__ = goo_L20C9_cfunctor__; + using ValueOf__ = gar_L22C13_cfunctor__; + using CopyOf__ = gar_L22C13_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -1028,14 +1053,15 @@ class goo_L20C9_cfunctor__ { }; -auto goo_L20C9_make__() { -return goo_L20C9_cfunctor__(); +auto gar_L22C13_make__() { +return gar_L22C13_cfunctor__(); } template stan::promote_args_t -bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { +capture_closure_L16C9_impl__(const T0__& foo, const T1__& y, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; @@ -1056,7 +1082,8 @@ bar_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { template stan::promote_args_t -baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { +capture_dataonly_closure_L7C9_impl__(const T0__& foo, const T1__& y, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; @@ -1076,7 +1103,7 @@ baz_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { } template stan::promote_args_t -foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { +closure_in_closure_L20C9_impl__(const T0__& s, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1084,8 +1111,11 @@ foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { + current_statement__ = 13; - return x; + auto gar = gar_L22C13_make__(); + current_statement__ = 14; + return gar(pstream__, s); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1095,7 +1125,7 @@ foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { } template stan::promote_args_t -gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { +foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1103,8 +1133,8 @@ gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 15; - return b; + current_statement__ = 16; + return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1114,7 +1144,7 @@ gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { } template stan::promote_args_t -goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { +gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1122,11 +1152,8 @@ goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - - current_statement__ = 17; - auto gar = gar_L22C13_make__(); current_statement__ = 18; - return gar(pstream__, s); + return b; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1134,31 +1161,31 @@ goo_L20C9_impl__(const T0__& s, std::ostream* pstream__) { } } -class closures2_model final : public model_base_crtp { +class capture_types2_model final : public model_base_crtp { private: public: - ~closures2_model() { } + ~capture_types2_model() { } - inline std::string model_name() const final { return "closures2_model"; } + inline std::string model_name() const final { return "capture_types2_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures2_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + capture_types2_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures2_model_namespace::closures2_model"; + static constexpr const char* function__ = "capture_types2_model_namespace::capture_types2_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -1172,7 +1199,8 @@ class closures2_model final : public model_base_crtp { auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); + auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + foo); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1196,7 +1224,7 @@ class closures2_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures2_model_namespace::log_prob"; + static constexpr const char* function__ = "capture_types2_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { @@ -1205,7 +1233,8 @@ class closures2_model final : public model_base_crtp { auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); + auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + foo); local_scalar_t__ alpha; alpha = DUMMY_VAR__; @@ -1213,25 +1242,25 @@ class closures2_model final : public model_base_crtp { alpha = in__.template read(); current_statement__ = 4; - auto baz = baz_L16C9_make__(foo); + auto capture_closure = capture_closure_L16C9_make__(foo); current_statement__ = 5; - auto goo = goo_L20C9_make__(); + auto closure_in_closure = closure_in_closure_L20C9_make__(); local_scalar_t__ s1; s1 = DUMMY_VAR__; current_statement__ = 6; - s1 = bar(pstream__, 1.0); + s1 = capture_dataonly_closure(pstream__, 1.0); local_scalar_t__ s2; s2 = DUMMY_VAR__; current_statement__ = 7; - s2 = baz(pstream__, 1.0); + s2 = capture_closure(pstream__, 1.0); local_scalar_t__ s3; s3 = DUMMY_VAR__; current_statement__ = 8; - s3 = goo(pstream__, 1.0); + s3 = closure_in_closure(pstream__, 1.0); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1262,7 +1291,7 @@ class closures2_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures2_model_namespace::write_array"; + static constexpr const char* function__ = "capture_types2_model_namespace::write_array"; (void) function__; // suppress unused var warning try { @@ -1271,7 +1300,8 @@ class closures2_model final : public model_base_crtp { auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); + auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + foo); double alpha; alpha = std::numeric_limits::quiet_NaN(); @@ -1294,15 +1324,15 @@ class closures2_model final : public model_base_crtp { return ; } current_statement__ = 4; - auto baz = baz_L16C9_make__(foo); + auto capture_closure = capture_closure_L16C9_make__(foo); current_statement__ = 5; - auto goo = goo_L20C9_make__(); + auto closure_in_closure = closure_in_closure_L20C9_make__(); current_statement__ = 6; - s1 = bar(pstream__, 1.0); + s1 = capture_dataonly_closure(pstream__, 1.0); current_statement__ = 7; - s2 = baz(pstream__, 1.0); + s2 = capture_closure(pstream__, 1.0); current_statement__ = 8; - s3 = goo(pstream__, 1.0); + s3 = closure_in_closure(pstream__, 1.0); if (emit_transformed_parameters__) { vars__.emplace_back(s1); vars__.emplace_back(s2); @@ -1335,7 +1365,8 @@ class closures2_model final : public model_base_crtp { auto foo = foo_L3C9_make__(); current_statement__ = 2; - auto bar = bar_L7C9_make__(foo); + auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + foo); int pos__; pos__ = std::numeric_limits::min(); @@ -1480,7 +1511,7 @@ class closures2_model final : public model_base_crtp { }; } -using stan_model = closures2_model_namespace::closures2_model; +using stan_model = capture_types2_model_namespace::capture_types2_model; #ifndef USING_R @@ -1494,18 +1525,18 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures2_model_namespace::profiles__; + return capture_types2_model_namespace::profiles__; } #endif - $ ../../../../../../install/default/bin/stanc --print-cpp closures3.stan + $ ../../../../../../install/default/bin/stanc --print-cpp higher_order.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures3_model_namespace { +namespace higher_order_model_namespace { using stan::io::dump; using stan::model::assign; @@ -1523,125 +1554,78 @@ using namespace stan::math; stan::math::profile_map profiles__; static constexpr std::array locations_array__ = {" (found before start of program)", - " (in 'closures3.stan', line 15, column 4 to line 18, column 5)", - " (in 'closures3.stan', line 22, column 4 to column 11)", - " (in 'closures3.stan', line 25, column 4 to line 28, column 5)", - " (in 'closures3.stan', line 29, column 4 to column 27)", - " (in 'closures3.stan', line 14, column 4 to column 28)", - " (in 'closures3.stan', line 19, column 4 to column 27)", - " (in 'closures3.stan', line 3, column 8 to line 6, column 9)", - " (in 'closures3.stan', line 7, column 8 to column 23)", - " (in 'closures3.stan', line 2, column 35 to line 8, column 5)", - " (in 'closures3.stan', line 10, column 8 to column 17)", - " (in 'closures3.stan', line 9, column 22 to line 11, column 5)", - " (in 'closures3.stan', line 17, column 8 to column 19)", - " (in 'closures3.stan', line 16, column 21 to line 18, column 5)", - " (in 'closures3.stan', line 27, column 8 to column 19)", - " (in 'closures3.stan', line 26, column 21 to line 28, column 5)", - " (in 'closures3.stan', line 5, column 12 to column 28)", - " (in 'closures3.stan', line 4, column 24 to line 6, column 9)"}; + " (in 'higher_order.stan', line 15, column 4 to line 18, column 5)", + " (in 'higher_order.stan', line 22, column 4 to column 11)", + " (in 'higher_order.stan', line 25, column 4 to line 28, column 5)", + " (in 'higher_order.stan', line 29, column 4 to column 45)", + " (in 'higher_order.stan', line 14, column 4 to column 42)", + " (in 'higher_order.stan', line 19, column 4 to column 50)", + " (in 'higher_order.stan', line 3, column 8 to line 6, column 9)", + " (in 'higher_order.stan', line 7, column 8 to column 23)", + " (in 'higher_order.stan', line 2, column 49 to line 8, column 5)", + " (in 'higher_order.stan', line 10, column 8 to column 17)", + " (in 'higher_order.stan', line 9, column 22 to line 11, column 5)", + " (in 'higher_order.stan', line 27, column 8 to column 19)", + " (in 'higher_order.stan', line 26, column 25 to line 28, column 5)", + " (in 'higher_order.stan', line 17, column 8 to column 19)", + " (in 'higher_order.stan', line 16, column 30 to line 18, column 5)", + " (in 'higher_order.stan', line 5, column 12 to column 28)", + " (in 'higher_order.stan', line 4, column 24 to line 6, column 9)"}; template stan::promote_args_t -foo(const T0__& g, const T1__& x, std::ostream* pstream__) ; +higher_order_func(const T0__& g, const T1__& x, std::ostream* pstream__) ; -struct foo_functor__ { +struct higher_order_func_functor__ { template stan::promote_args_t operator()(const T0__& g, const T1__& x, std::ostream* pstream__) const { -return foo(g, x, pstream__); +return higher_order_func(g, x, pstream__); } }; template stan::promote_args_t -foo2(const T0__& x, std::ostream* pstream__) ; +func(const T0__& x, std::ostream* pstream__) ; -struct foo2_functor__ { +struct func_functor__ { template stan::promote_args_t operator()(const T0__& x, std::ostream* pstream__) const { -return foo2(x, pstream__); +return func(x, pstream__); } }; -template -stan::promote_args_t -bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; - -class bar_L16C9_cfunctor__ { - double x; - public: - const size_t vars_count__; - bar_L16C9_cfunctor__(const bar_L16C9_cfunctor__&) = default ; - bar_L16C9_cfunctor__(bar_L16C9_cfunctor__&&) = default ; - bar_L16C9_cfunctor__(const double& x__) - : x(x__), vars_count__(count_vars(x__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return bar_L16C9_impl__(x, y, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = bar_L16C9_cfunctor__; - using CopyOf__ = bar_L16C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(x); - } - auto deep_copy_vars__() const { - return CopyOf__(x); - } - void zero_adjoints__() { - stan::math::zero_adjoints(x); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, x); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, x); - } - - - }; -auto bar_L16C9_make__(const double& x) { -return bar_L16C9_cfunctor__(x); -} - template stan::promote_args_t -baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; +closure_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; template -class baz_L26C9_cfunctor__ { +class closure_L26C9_cfunctor__ { stan::capture_type_t p; public: const size_t vars_count__; - baz_L26C9_cfunctor__(const baz_L26C9_cfunctor__&) = default ; - baz_L26C9_cfunctor__(baz_L26C9_cfunctor__&&) = default ; - baz_L26C9_cfunctor__(const F0__& p__) + closure_L26C9_cfunctor__(const closure_L26C9_cfunctor__&) = default ; + closure_L26C9_cfunctor__(closure_L26C9_cfunctor__&&) = default ; + closure_L26C9_cfunctor__(const F0__& p__) : p(p__), vars_count__(count_vars(p__)) {} template stan::promote_args_t operator()(std::ostream* pstream__, const T0__& y) const { - return baz_L26C9_impl__(p, y, pstream__); + return closure_L26C9_impl__(p, y, pstream__); } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = baz_L26C9_cfunctor__; - using CopyOf__ = baz_L26C9_cfunctor__>; + using ValueOf__ = closure_L26C9_cfunctor__; + using CopyOf__ = closure_L26C9_cfunctor__>; size_t count_vars__() const { return vars_count__; } @@ -1664,19 +1648,67 @@ T0__> }; template -auto baz_L26C9_make__(const F0__& p) { -return baz_L26C9_cfunctor__(p); } -template -stan::promote_args_t -g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, - std::ostream* pstream__) ; +template +stan::promote_args_t +data_closure_L16C9_impl__(const double& x, const T1__& y, + std::ostream* pstream__) ; -template -class g2_L4C13_cfunctor__ { +class data_closure_L16C9_cfunctor__ { + double x; + public: + const size_t vars_count__; + data_closure_L16C9_cfunctor__(const data_closure_L16C9_cfunctor__&) = default ; + data_closure_L16C9_cfunctor__(data_closure_L16C9_cfunctor__&&) = default ; + data_closure_L16C9_cfunctor__(const double& x__) + : x(x__), vars_count__(count_vars(x__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y) const + { + return data_closure_L16C9_impl__(x, y, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = data_closure_L16C9_cfunctor__; + using CopyOf__ = data_closure_L16C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(x); + } + auto deep_copy_vars__() const { + return CopyOf__(x); + } + void zero_adjoints__() { + stan::math::zero_adjoints(x); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, x); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, x); + } + + + }; +auto data_closure_L16C9_make__(const double& x) { +return data_closure_L16C9_cfunctor__(x); +} + +template +stan::promote_args_t +g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, + std::ostream* pstream__) ; + +template +class g2_L4C13_cfunctor__ { stan::capture_type_t g; stan::capture_type_t x; public: @@ -1732,7 +1764,7 @@ F1__>(g, x); template stan::promote_args_t -foo(const T0__& g, const T1__& x, std::ostream* pstream__) { +higher_order_func(const T0__& g, const T1__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; @@ -1755,7 +1787,7 @@ foo(const T0__& g, const T1__& x, std::ostream* pstream__) { } template stan::promote_args_t -foo2(const T0__& x, std::ostream* pstream__) { +func(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1772,10 +1804,11 @@ foo2(const T0__& x, std::ostream* pstream__) { } } -template -stan::promote_args_t -bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +stan::promote_args_t +closure_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1783,7 +1816,7 @@ bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 12; - return (x * y); + return (p * y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1791,11 +1824,11 @@ bar_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) { } } -template -stan::promote_args_t -baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +stan::promote_args_t +data_closure_L16C9_impl__(const double& x, const T1__& y, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1803,7 +1836,7 @@ baz_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 14; - return (p * y); + return (x * y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1834,7 +1867,7 @@ g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, } } -class closures3_model final : public model_base_crtp { +class higher_order_model final : public model_base_crtp { private: double x; @@ -1842,24 +1875,24 @@ class closures3_model final : public model_base_crtp { public: - ~closures3_model() { } + ~higher_order_model() { } - inline std::string model_name() const final { return "closures3_model"; } + inline std::string model_name() const final { return "higher_order_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures3_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + higher_order_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures3_model_namespace::closures3_model"; + static constexpr const char* function__ = "higher_order_model_namespace::higher_order_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -1872,15 +1905,15 @@ class closures3_model final : public model_base_crtp { x = std::numeric_limits::quiet_NaN(); current_statement__ = 5; - x = foo(from_lambda(foo2_functor__()), 2.0, pstream__); + x = higher_order_func(from_lambda(func_functor__()), 2.0, pstream__); current_statement__ = 1; - auto bar = bar_L16C9_make__(x); + auto data_closure = data_closure_L16C9_make__(x); current_statement__ = 6; z = std::numeric_limits::quiet_NaN(); current_statement__ = 6; - z = foo(bar, 1.0, pstream__); + z = higher_order_func(data_closure, 1.0, pstream__); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1904,13 +1937,13 @@ class closures3_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures3_model_namespace::log_prob"; + static constexpr const char* function__ = "higher_order_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { current_statement__ = 1; - auto bar = bar_L16C9_make__(x); + auto data_closure = data_closure_L16C9_make__(x); local_scalar_t__ p; p = DUMMY_VAR__; @@ -1918,12 +1951,12 @@ class closures3_model final : public model_base_crtp { p = in__.template read(); current_statement__ = 3; - auto baz = baz_L26C9_make__(p); + auto closure = closure_L26C9_make__(p); local_scalar_t__ w; w = DUMMY_VAR__; current_statement__ = 4; - w = foo(baz, 1.0, pstream__); + w = higher_order_func(closure, 1.0, pstream__); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1954,13 +1987,13 @@ class closures3_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures3_model_namespace::write_array"; + static constexpr const char* function__ = "higher_order_model_namespace::write_array"; (void) function__; // suppress unused var warning try { current_statement__ = 1; - auto bar = bar_L16C9_make__(x); + auto data_closure = data_closure_L16C9_make__(x); double p; p = std::numeric_limits::quiet_NaN(); @@ -1976,9 +2009,9 @@ class closures3_model final : public model_base_crtp { return ; } current_statement__ = 3; - auto baz = baz_L26C9_make__(p); + auto closure = closure_L26C9_make__(p); current_statement__ = 4; - w = foo(baz, 1.0, pstream__); + w = higher_order_func(closure, 1.0, pstream__); if (emit_transformed_parameters__) { vars__.emplace_back(w); } @@ -2006,7 +2039,7 @@ class closures3_model final : public model_base_crtp { try { current_statement__ = 1; - auto bar = bar_L16C9_make__(x); + auto data_closure = data_closure_L16C9_make__(x); int pos__; pos__ = std::numeric_limits::min(); @@ -2146,7 +2179,7 @@ class closures3_model final : public model_base_crtp { }; } -using stan_model = closures3_model_namespace::closures3_model; +using stan_model = higher_order_model_namespace::higher_order_model; #ifndef USING_R @@ -2160,18 +2193,18 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures3_model_namespace::profiles__; + return higher_order_model_namespace::profiles__; } #endif - $ ../../../../../../install/default/bin/stanc --print-cpp closures4.stan + $ ../../../../../../install/default/bin/stanc --print-cpp higher_order_suffixes.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures4_model_namespace { +namespace higher_order_suffixes_model_namespace { using stan::io::dump; using stan::model::assign; @@ -2187,170 +2220,740 @@ 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 'closures4.stan', line 14, column 4 to column 19)", - " (in 'closures4.stan', line 15, column 4 to column 19)", - " (in 'closures4.stan', line 18, column 4 to column 44)", - " (in 'closures4.stan', line 11, column 4 to column 15)", - " (in 'closures4.stan', line 14, column 16 to column 17)", - " (in 'closures4.stan', line 3, column 8 to line 6, column 9)", - " (in 'closures4.stan', line 7, column 8 to column 47)", - " (in 'closures4.stan', line 2, column 59 to line 8, column 5)", - " (in 'closures4.stan', line 5, column 12 to column 30)", - " (in 'closures4.stan', line 4, column 42 to line 6, column 9)"}; + " (in 'higher_order_suffixes.stan', line 16, column 4 to line 19, column 5)", + " (in 'higher_order_suffixes.stan', line 22, column 4 to line 25, column 5)", + " (in 'higher_order_suffixes.stan', line 26, column 4 to line 29, column 5)", + " (in 'higher_order_suffixes.stan', line 30, column 4 to line 33, column 5)", + " (in 'higher_order_suffixes.stan', line 34, column 4 to line 37, column 5)", + " (in 'higher_order_suffixes.stan', line 38, column 4 to line 41, column 5)", + " (in 'higher_order_suffixes.stan', line 42, column 4 to line 45, column 5)", + " (in 'higher_order_suffixes.stan', line 46, column 4 to line 49, column 5)", + " (in 'higher_order_suffixes.stan', line 53, column 4 to column 27)", + " (in 'higher_order_suffixes.stan', line 56, column 4 to column 36)", + " (in 'higher_order_suffixes.stan', line 20, column 4 to column 32)", + " (in 'higher_order_suffixes.stan', line 50, column 4 to column 30)", + " (in 'higher_order_suffixes.stan', line 3, column 8 to column 38)", + " (in 'higher_order_suffixes.stan', line 4, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 2, column 25 to line 5, column 5)", + " (in 'higher_order_suffixes.stan', line 7, column 8 to column 34)", + " (in 'higher_order_suffixes.stan', line 8, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 6, column 24 to line 9, column 5)", + " (in 'higher_order_suffixes.stan', line 11, column 8 to column 26)", + " (in 'higher_order_suffixes.stan', line 12, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 10, column 23 to line 13, column 5)", + " (in 'higher_order_suffixes.stan', line 36, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 35, column 20 to line 37, column 5)", + " (in 'higher_order_suffixes.stan', line 40, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 39, column 25 to line 41, column 5)", + " (in 'higher_order_suffixes.stan', line 44, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 43, column 24 to line 45, column 5)", + " (in 'higher_order_suffixes.stan', line 48, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 47, column 23 to line 49, column 5)", + " (in 'higher_order_suffixes.stan', line 32, column 8 to column 25)", + " (in 'higher_order_suffixes.stan', line 31, column 35 to line 33, column 5)", + " (in 'higher_order_suffixes.stan', line 28, column 8 to column 28)", + " (in 'higher_order_suffixes.stan', line 27, column 48 to line 29, column 5)", + " (in 'higher_order_suffixes.stan', line 24, column 8 to column 27)", + " (in 'higher_order_suffixes.stan', line 23, column 38 to line 25, column 5)", + " (in 'higher_order_suffixes.stan', line 17, column 66 to line 19, column 5)"}; -template -std::vector, -T2__>, -1, 1>> -integrate(const std::vector>& k, const T1__& init, - const std::vector& ts, std::ostream* pstream__) ; +template +stan::promote_args_t +ff_lpdf(const T0__& x, std::ostream* pstream__) ; -struct integrate_functor__ { -template -std::vector, -T2__>, -1, 1>> -operator()(const std::vector>& k, - const T1__& init, const std::vector& ts, +struct ff_lpdf_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const +{ +return ff_lpdf(x, pstream__); +} +}; + +template +stan::promote_args_t +ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + +struct ff_rng_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, RNG& base_rng__, std::ostream* pstream__) const +{ +return ff_rng(x, pstream__); +} +}; + +template +stan::promote_args_t +ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +struct ff_lp_functor__ { +template +stan::promote_args_t +operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return integrate(k, init, ts, pstream__); +return ff_lp(x, pstream__); } }; -template -Eigen::Matrix>, -1, 1> -harmonic_L4C15_impl__(const std::vector>& k, - const T1__& t, const T2__& y, std::ostream* pstream__) ; +template +stan::promote_args_t +f2_L35C9_impl__(const T0__& x, std::ostream* pstream__) ; -template -class harmonic_L4C15_cfunctor__ { - stan::capture_type_t>, ref__> k; +class f2_L35C9_cfunctor__ { + public: const size_t vars_count__; - harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; - harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; - harmonic_L4C15_cfunctor__(const std::vector>& k__) - : k(k__), vars_count__(count_vars(k__)) {} - template - Eigen::Matrix>, -1, 1> - operator()(std::ostream* pstream__, const T0__& t, const T1__& y) const + f2_L35C9_cfunctor__(const f2_L35C9_cfunctor__&) = default ; + f2_L35C9_cfunctor__(f2_L35C9_cfunctor__&&) = default ; + f2_L35C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const { - return harmonic_L4C15_impl__(k, t, y, pstream__); + return f2_L35C9_impl__(x, pstream__); } - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = harmonic_L4C15_cfunctor__; - using CopyOf__ = harmonic_L4C15_cfunctor__>; + using captured_scalar_t__ = double; + using ValueOf__ = f2_L35C9_cfunctor__; + using CopyOf__ = f2_L35C9_cfunctor__; size_t count_vars__() const { return vars_count__; } auto value_of__() const { - return ValueOf__(eval(value_of(k))); + return ValueOf__(); } auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(k))); + return CopyOf__(); } void zero_adjoints__() { - stan::math::zero_adjoints(k); + } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, k); + return stan::math::accumulate_adjoints(dest); } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, k); + return stan::math::save_varis(dest); } }; -template -auto harmonic_L4C15_make__(const std::vector>& k) { -return harmonic_L4C15_cfunctor__(k); +auto f2_L35C9_make__() { +return f2_L35C9_cfunctor__(); } -template -std::vector, -T2__>, -1, 1>> -integrate(const std::vector>& k, - const T1__& init_arg__, const std::vector& ts, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T2__>; - int current_statement__ = 0; - const auto& init = to_ref(init_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - - current_statement__ = 6; - auto harmonic = harmonic_L4C15_make__(k); - current_statement__ = 7; - return ode_rk45(stan::math::ode_closure_adapter(), init, 0, ts, - pstream__, harmonic); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); +template +stan::promote_args_t +f3_lpdf_L39C9_impl__(const T0__& x, std::ostream* pstream__) ; + +class f3_lpdf_L39C9_cfunctor__ { + + public: + const size_t vars_count__; + f3_lpdf_L39C9_cfunctor__(const f3_lpdf_L39C9_cfunctor__&) = default ; + f3_lpdf_L39C9_cfunctor__(f3_lpdf_L39C9_cfunctor__&&) = default ; + f3_lpdf_L39C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& x) const + { + return f3_lpdf_L39C9_impl__(x, pstream__); } -} -template -Eigen::Matrix>, -1, 1> -harmonic_L4C15_impl__(const std::vector>& k, - const T1__& t, const T2__& y_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; - int current_statement__ = 0; - const auto& y = to_ref(y_arg__); - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 9; - return elt_multiply(minus(rvalue(k, "k", index_uni(1))), y); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + using captured_scalar_t__ = double; + using ValueOf__ = f3_lpdf_L39C9_cfunctor__; + using CopyOf__ = f3_lpdf_L39C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); } + }; +auto f3_lpdf_L39C9_make__() { +return f3_lpdf_L39C9_cfunctor__(); } -class closures4_model final : public model_base_crtp { - private: - std::vector ts; - - - public: - ~closures4_model() { } - - inline std::string model_name() const final { return "closures4_model"; } +template +stan::promote_args_t +f4_rng_L43C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; - inline std::vector model_compile_info() const noexcept { - return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; - } +class f4_rng_L43C9_cfunctor__ { - - closures4_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { - int current_statement__ = 0; - using local_scalar_t__ = double ; - boost::ecuyer1988 base_rng__ = - stan::services::util::create_rng(random_seed__, 0); - (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures4_model_namespace::closures4_model"; + public: + const size_t vars_count__; + f4_rng_L43C9_cfunctor__(const f4_rng_L43C9_cfunctor__&) = default ; + f4_rng_L43C9_cfunctor__(f4_rng_L43C9_cfunctor__&&) = default ; + f4_rng_L43C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const + { + return f4_rng_L43C9_impl__(x, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f4_rng_L43C9_cfunctor__; + using CopyOf__ = f4_rng_L43C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f4_rng_L43C9_make__() { +return f4_rng_L43C9_cfunctor__(); +} + +template +stan::promote_args_t +f5_lp_L47C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ; + +class f5_lp_L47C9_cfunctor__ { + + public: + const size_t vars_count__; + f5_lp_L47C9_cfunctor__(const f5_lp_L47C9_cfunctor__&) = default ; + f5_lp_L47C9_cfunctor__(f5_lp_L47C9_cfunctor__&&) = default ; + f5_lp_L47C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, + const T0__& x) const + { + return f5_lp_L47C9_impl__(x, lp__, lp_accum__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = f5_lp_L47C9_cfunctor__; + using CopyOf__ = f5_lp_L47C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto f5_lp_L47C9_make__() { +return f5_lp_L47C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lp_L31C9_impl__(const T0__& bar_lp, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) ; + +class foo_lp_L31C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lp_L31C9_cfunctor__(const foo_lp_L31C9_cfunctor__&) = default ; + foo_lp_L31C9_cfunctor__(foo_lp_L31C9_cfunctor__&&) = default ; + foo_lp_L31C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, + const T0__& bar_lp) const + { + return foo_lp_L31C9_impl__(bar_lp, lp__, lp_accum__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lp_L31C9_cfunctor__; + using CopyOf__ = foo_lp_L31C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_lp_L31C9_make__() { +return foo_lp_L31C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_lpdf_L27C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) ; + +class foo_lpdf_L27C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_lpdf_L27C9_cfunctor__(const foo_lpdf_L27C9_cfunctor__&) = default ; + foo_lpdf_L27C9_cfunctor__(foo_lpdf_L27C9_cfunctor__&&) = default ; + foo_lpdf_L27C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& zz, const T1__& bar_lpdf) const + { + return foo_lpdf_L27C9_impl__(zz, bar_lpdf, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_lpdf_L27C9_cfunctor__; + using CopyOf__ = foo_lpdf_L27C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); + } + + }; +auto foo_lpdf_L27C9_make__() { +return foo_lpdf_L27C9_cfunctor__(); +} + +template +stan::promote_args_t +foo_rng_L23C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) ; + +class foo_rng_L23C9_cfunctor__ { + + public: + const size_t vars_count__; + foo_rng_L23C9_cfunctor__(const foo_rng_L23C9_cfunctor__&) = default ; + foo_rng_L23C9_cfunctor__(foo_rng_L23C9_cfunctor__&&) = default ; + foo_rng_L23C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& bar_lpdf) const + { + return foo_rng_L23C9_impl__(bar_lpdf, base_rng__, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = foo_rng_L23C9_cfunctor__; + using CopyOf__ = foo_rng_L23C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto foo_rng_L23C9_make__() { +return foo_rng_L23C9_cfunctor__(); +} + +template +void +hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, + std::ostream* pstream__) ; + +class hof_L17C9_cfunctor__ { + + public: + const size_t vars_count__; + hof_L17C9_cfunctor__(const hof_L17C9_cfunctor__&) = default ; + hof_L17C9_cfunctor__(hof_L17C9_cfunctor__&&) = default ; + hof_L17C9_cfunctor__() + : vars_count__(count_vars()) {} + template + void + operator()(std::ostream* pstream__, const T0__& s_rng, const T1__& s_lpdf, + const T2__& s_lp) const + { + return hof_L17C9_impl__(s_rng, s_lpdf, s_lp, pstream__); + } + + using captured_scalar_t__ = double; + using ValueOf__ = hof_L17C9_cfunctor__; + using CopyOf__ = hof_L17C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); + } + + + }; +auto hof_L17C9_make__() { +return hof_L17C9_cfunctor__(); +} + +template +stan::promote_args_t +ff_lpdf(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 13; + s = std_normal_lpdf(0); + current_statement__ = 14; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 16; + s = std_normal_rng(base_rng__); + current_statement__ = 17; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 19; + s = get_lp(lp__, lp_accum__); + current_statement__ = 20; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f2_L35C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 22; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f3_lpdf_L39C9_impl__(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 24; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f4_rng_L43C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 26; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +f5_lp_L47C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 28; + return x; + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lp_L31C9_impl__(const T0__& bar_lp, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 30; + return bar_lp.template operator()(lp__, lp_accum__, pstream__, + 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_lpdf_L27C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 32; + return bar_lpdf.template operator()(pstream__, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t +foo_rng_L23C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 34; + return bar_lpdf.template operator()(pstream__, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +void +hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +class higher_order_suffixes_model final : public model_base_crtp { + + private: + double z; + + + public: + ~higher_order_suffixes_model() { } + + inline std::string model_name() const final { return "higher_order_suffixes_model"; } + + inline std::vector model_compile_info() const noexcept { + return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; + } + + + higher_order_suffixes_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + int current_statement__ = 0; + using local_scalar_t__ = double ; + boost::ecuyer1988 base_rng__ = + stan::services::util::create_rng(random_seed__, 0); + (void) base_rng__; // suppress unused var warning + static constexpr const char* function__ = "higher_order_suffixes_model_namespace::higher_order_suffixes_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -2359,21 +2962,46 @@ class closures4_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - current_statement__ = 4; - context__.validate_dims("data initialization","ts","double", - std::vector{static_cast(5)}); - ts = std::vector(5, std::numeric_limits::quiet_NaN()); + + current_statement__ = 1; + auto hof = hof_L17C9_make__(); + current_statement__ = 11; + hof(pstream__, rng_from_lambda(ff_rng_functor__()), + lpdf_from_lambda(ff_lpdf_functor__()), + lp_from_lambda(ff_lp_functor__())); + + current_statement__ = 2; + auto foo_rng = foo_rng_L23C9_make__(); + + current_statement__ = 3; + auto foo_lpdf = foo_lpdf_L27C9_make__(); current_statement__ = 4; - ts = context__.vals_r("ts"); + auto foo_lp = foo_lp_L31C9_make__(); + current_statement__ = 5; - validate_non_negative_index("k", "1", 1); + auto f2 = f2_L35C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L39C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L43C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L47C9_make__(); + current_statement__ = 12; + z = std::numeric_limits::quiet_NaN(); + + current_statement__ = 12; + z = foo_rng(base_rng__, pstream__, + f3_lpdf.template with_propto()); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - num_params_r__ = (1 * 2) + 2; + num_params_r__ = 0U; } @@ -2391,29 +3019,46 @@ class closures4_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures4_model_namespace::log_prob"; + static constexpr const char* function__ = "higher_order_suffixes_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { - std::vector> k; - k = std::vector>(1, Eigen::Matrix(2)); - stan::math::fill(k, DUMMY_VAR__); current_statement__ = 1; - k = in__.template read>>( - 1, 2); - Eigen::Matrix init; - init = Eigen::Matrix(2); - stan::math::fill(init, DUMMY_VAR__); + auto hof = hof_L17C9_make__(); current_statement__ = 2; - init = in__.template read>(2); - std::vector> y; - y = std::vector>(5, Eigen::Matrix(2)); - stan::math::fill(y, DUMMY_VAR__); + auto foo_rng = foo_rng_L23C9_make__(); current_statement__ = 3; - assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); + auto foo_lpdf = foo_lpdf_L27C9_make__(); + + current_statement__ = 4; + auto foo_lp = foo_lp_L31C9_make__(); + + current_statement__ = 5; + auto f2 = f2_L35C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L39C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L43C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L47C9_make__(); + local_scalar_t__ s; + s = DUMMY_VAR__; + + current_statement__ = 9; + s = foo_lp.template operator()(lp__, lp_accum__, pstream__, + f5_lp); + { + current_statement__ = 10; + lp_accum__.add( + foo_lpdf.template operator()(pstream__, 1, + f3_lpdf.template with_propto())); + } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2444,47 +3089,46 @@ class closures4_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures4_model_namespace::write_array"; + static constexpr const char* function__ = "higher_order_suffixes_model_namespace::write_array"; (void) function__; // suppress unused var warning try { - std::vector> k; - k = std::vector>(1, Eigen::Matrix(2)); - stan::math::fill(k, std::numeric_limits::quiet_NaN()); current_statement__ = 1; - k = in__.template read>>( - 1, 2); - Eigen::Matrix init; - init = Eigen::Matrix(2); - stan::math::fill(init, std::numeric_limits::quiet_NaN()); + auto hof = hof_L17C9_make__(); current_statement__ = 2; - init = in__.template read>(2); - std::vector> y; - y = std::vector>(5, Eigen::Matrix(2)); - stan::math::fill(y, std::numeric_limits::quiet_NaN()); + auto foo_rng = foo_rng_L23C9_make__(); + + current_statement__ = 3; + auto foo_lpdf = foo_lpdf_L27C9_make__(); + + current_statement__ = 4; + auto foo_lp = foo_lp_L31C9_make__(); + + current_statement__ = 5; + auto f2 = f2_L35C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L39C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L43C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L47C9_make__(); + double s; + s = std::numeric_limits::quiet_NaN(); - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - vars__.emplace_back(k[(sym2__ - 1)][(sym1__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(init[(sym1__ - 1)]); - } if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; } - current_statement__ = 3; - assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); + current_statement__ = 9; + s = foo_lp.template operator()(lp__, lp_accum__, pstream__, + f5_lp); if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - vars__.emplace_back(y[(sym2__ - 1)][(sym1__ - 1)]); - } - } + vars__.emplace_back(s); } if (logical_negation(emit_generated_quantities__)) { return ; @@ -2508,59 +3152,34 @@ class closures4_model final : public model_base_crtp { int current_statement__ = 0; try { + + current_statement__ = 1; + auto hof = hof_L17C9_make__(); + + current_statement__ = 2; + auto foo_rng = foo_rng_L23C9_make__(); + + current_statement__ = 3; + auto foo_lpdf = foo_lpdf_L27C9_make__(); + + current_statement__ = 4; + auto foo_lp = foo_lp_L31C9_make__(); + + current_statement__ = 5; + auto f2 = f2_L35C9_make__(); + + current_statement__ = 6; + auto f3_lpdf = f3_lpdf_L39C9_make__(); + + current_statement__ = 7; + auto f4_rng = f4_rng_L43C9_make__(); + + current_statement__ = 8; + auto f5_lp = f5_lp_L47C9_make__(); int pos__; pos__ = std::numeric_limits::min(); pos__ = 1; - std::vector> k; - k = std::vector>(1, Eigen::Matrix(2)); - stan::math::fill(k, std::numeric_limits::quiet_NaN()); - - { - std::vector k_flat__; - current_statement__ = 1; - k_flat__ = context__.vals_r("k"); - current_statement__ = 1; - pos__ = 1; - current_statement__ = 1; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 1; - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - current_statement__ = 1; - assign(k, k_flat__[(pos__ - 1)], - "assigning variable k", index_uni(sym2__), index_uni(sym1__)); - current_statement__ = 1; - pos__ = (pos__ + 1); - } - } - } - Eigen::Matrix init; - init = Eigen::Matrix(2); - stan::math::fill(init, std::numeric_limits::quiet_NaN()); - - { - std::vector init_flat__; - current_statement__ = 2; - init_flat__ = context__.vals_r("init"); - current_statement__ = 2; - pos__ = 1; - current_statement__ = 2; - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - current_statement__ = 2; - assign(init, init_flat__[(pos__ - 1)], - "assigning variable init", index_uni(sym1__)); - current_statement__ = 2; - pos__ = (pos__ + 1); - } - } - for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { - for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { - vars__.emplace_back(k[(sym1__ - 1)][(sym2__ - 1)]); - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - vars__.emplace_back(init[(sym1__ - 1)]); - } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2570,19 +3189,13 @@ class closures4_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { - names__ = std::vector{"k", "init", "y"}; + names__ = std::vector{"s"}; } // get_param_names() inline void get_dims(std::vector>& dimss__) const { - dimss__ = std::vector>{std::vector{ - static_cast(1) - , - static_cast(2) - }, - std::vector{static_cast(2)}, - std::vector{static_cast(5), static_cast(2)}}; + dimss__ = std::vector>{std::vector{}}; } // get_dims() @@ -2592,30 +3205,9 @@ class closures4_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - { - param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); - } - } + if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + param_names__.emplace_back(std::string() + "s"); } if (emit_generated_quantities__) { @@ -2630,30 +3222,9 @@ class closures4_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { - { - param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); - } - } - if (emit_transformed_parameters__) { - for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { - { - for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { - { - param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); - } - } - } - } + + if (emit_transformed_parameters__) { + param_names__.emplace_back(std::string() + "s"); } if (emit_generated_quantities__) { @@ -2664,13 +3235,13 @@ class closures4_model final : public model_base_crtp { inline std::string get_constrained_sizedtypes() const { - return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); } // get_constrained_sizedtypes() inline std::string get_unconstrained_sizedtypes() const { - return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); } // get_unconstrained_sizedtypes() @@ -2737,7 +3308,8 @@ class closures4_model final : public model_base_crtp { }; } -using stan_model = closures4_model_namespace::closures4_model; + +using stan_model = higher_order_suffixes_model_namespace::higher_order_suffixes_model; #ifndef USING_R @@ -2751,18 +3323,18 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures4_model_namespace::profiles__; + return higher_order_suffixes_model_namespace::profiles__; } #endif - $ ../../../../../../install/default/bin/stanc --print-cpp closures5.stan + $ ../../../../../../install/default/bin/stanc --print-cpp ode_rk45.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures5_model_namespace { +namespace ode_rk45_model_namespace { using stan::io::dump; using stan::model::assign; @@ -2778,155 +3350,113 @@ 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 'closures5.stan', line 5, column 4 to column 12)", - " (in 'closures5.stan', line 6, column 4 to column 14)", - " (in 'closures5.stan', line 9, column 4 to line 12, column 5)", - " (in 'closures5.stan', line 13, column 4 to line 16, column 5)", - " (in 'closures5.stan', line 17, column 4 to column 36)", - " (in 'closures5.stan', line 18, column 4 to column 41)", - " (in 'closures5.stan', line 19, column 4 to column 42)", - " (in 'closures5.stan', line 2, column 4 to column 10)", - " (in 'closures5.stan', line 6, column 11 to column 12)", - " (in 'closures5.stan', line 15, column 8 to column 41)", - " (in 'closures5.stan', line 14, column 52 to line 16, column 5)", - " (in 'closures5.stan', line 11, column 8 to column 39)", - " (in 'closures5.stan', line 10, column 47 to line 12, column 5)"}; -struct foo_rsfunctor__; -template -struct bar_lpdf_rsfunctor__; -template -stan::promote_args_t -bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, - std::ostream* pstream__) ; + " (in 'ode_rk45.stan', line 14, column 4 to column 19)", + " (in 'ode_rk45.stan', line 15, column 4 to column 19)", + " (in 'ode_rk45.stan', line 18, column 4 to column 44)", + " (in 'ode_rk45.stan', line 11, column 4 to column 15)", + " (in 'ode_rk45.stan', line 14, column 16 to column 17)", + " (in 'ode_rk45.stan', line 3, column 8 to line 6, column 9)", + " (in 'ode_rk45.stan', line 7, column 8 to column 47)", + " (in 'ode_rk45.stan', line 2, column 59 to line 8, column 5)", + " (in 'ode_rk45.stan', line 5, column 12 to column 30)", + " (in 'ode_rk45.stan', line 4, column 42 to line 6, column 9)"}; -template -class bar_lpdf_L14C9_cfunctor__ { - stan::capture_type_t mu; - public: - const size_t vars_count__; - bar_lpdf_L14C9_cfunctor__(const bar_lpdf_L14C9_cfunctor__&) = default ; - bar_lpdf_L14C9_cfunctor__(bar_lpdf_L14C9_cfunctor__&&) = default ; - bar_lpdf_L14C9_cfunctor__(const F0__& mu__) - : mu(mu__), vars_count__(count_vars(mu__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const std::vector& slice, - const int& start, const int& end) const - { - return bar_lpdf_L14C9_impl__(mu, slice, start, end, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = bar_lpdf_L14C9_cfunctor__; - using CopyOf__ = bar_lpdf_L14C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(mu))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(mu))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(mu); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, mu); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, mu); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper, true>(*this); - } - auto copy_of__() { - return CopyOf__(mu); - } - - }; -template -auto bar_lpdf_L14C9_make__(const F0__& mu) { -return bar_lpdf_L14C9_cfunctor__(mu); +template +std::vector, +T2__>, -1, 1>> +integrate(const std::vector>& k, const T1__& init, + const std::vector& ts, std::ostream* pstream__) ; + +struct integrate_functor__ { +template +std::vector, +T2__>, -1, 1>> +operator()(const std::vector>& k, + const T1__& init, const std::vector& ts, + std::ostream* pstream__) const +{ +return integrate(k, init, ts, pstream__); } +}; -template -stan::promote_args_t -foo_L10C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, std::ostream* pstream__) ; +template +Eigen::Matrix>, -1, 1> +harmonic_L4C15_impl__(const std::vector>& k, + const T1__& t, const T2__& y, std::ostream* pstream__) ; template -class foo_L10C9_cfunctor__ { - stan::capture_type_t mu; +class harmonic_L4C15_cfunctor__ { + stan::capture_type_t>, ref__> k; public: const size_t vars_count__; - foo_L10C9_cfunctor__(const foo_L10C9_cfunctor__&) = default ; - foo_L10C9_cfunctor__(foo_L10C9_cfunctor__&&) = default ; - foo_L10C9_cfunctor__(const F0__& mu__) - : mu(mu__), vars_count__(count_vars(mu__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const std::vector& slice, - const int& start, const int& end) const + harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; + harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; + harmonic_L4C15_cfunctor__(const std::vector>& k__) + : k(k__), vars_count__(count_vars(k__)) {} + template + Eigen::Matrix>, -1, 1> + operator()(std::ostream* pstream__, const T0__& t, const T1__& y) const { - return foo_L10C9_impl__(mu, slice, start, end, pstream__); + return harmonic_L4C15_impl__(k, t, y, pstream__); } using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = foo_L10C9_cfunctor__; - using CopyOf__ = foo_L10C9_cfunctor__>; + using ValueOf__ = harmonic_L4C15_cfunctor__; + using CopyOf__ = harmonic_L4C15_cfunctor__>; size_t count_vars__() const { return vars_count__; } auto value_of__() const { - return ValueOf__(eval(value_of(mu))); + return ValueOf__(eval(value_of(k))); } auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(mu))); + return CopyOf__(eval(deep_copy_vars(k))); } void zero_adjoints__() { - stan::math::zero_adjoints(mu); + stan::math::zero_adjoints(k); } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, mu); + return stan::math::accumulate_adjoints(dest, k); } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, mu); + return stan::math::save_varis(dest, k); } }; template -auto foo_L10C9_make__(const F0__& mu) { -return foo_L10C9_cfunctor__(mu); +auto harmonic_L4C15_make__(const std::vector>& k) { +return harmonic_L4C15_cfunctor__(k); } -template -stan::promote_args_t -bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +std::vector, +T2__>, -1, 1>> +integrate(const std::vector>& k, + const T1__& init_arg__, const std::vector& ts, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T2__>; int current_statement__ = 0; + const auto& init = to_ref(init_arg__); + static constexpr bool propto__ = true; + (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 10; - return normal_lpdf(slice, mu, 1); + + current_statement__ = 6; + auto harmonic = harmonic_L4C15_make__(k); + current_statement__ = 7; + return ode_rk45(stan::math::ode_closure_adapter(), init, 0, ts, + pstream__, harmonic); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2934,20 +3464,24 @@ bar_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, } } -template -stan::promote_args_t -foo_L10C9_impl__(const T0__& mu, const std::vector& slice, - const int& start, const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +Eigen::Matrix>, -1, 1> +harmonic_L4C15_impl__(const std::vector>& k, + const T1__& t, const T2__& y_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; + const auto& y = to_ref(y_arg__); static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 12; - return normal_lpdf(slice, mu, 1); + current_statement__ = 9; + return elt_multiply(minus(rvalue(k, "k", index_uni(1))), y); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2955,31 +3489,31 @@ foo_L10C9_impl__(const T0__& mu, const std::vector& slice, } } -class closures5_model final : public model_base_crtp { +class ode_rk45_model final : public model_base_crtp { private: - int N; + std::vector ts; public: - ~closures5_model() { } + ~ode_rk45_model() { } - inline std::string model_name() const final { return "closures5_model"; } + inline std::string model_name() const final { return "ode_rk45_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures5_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + ode_rk45_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures5_model_namespace::closures5_model"; + static constexpr const char* function__ = "ode_rk45_model_namespace::ode_rk45_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -2988,21 +3522,21 @@ class closures5_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - current_statement__ = 8; - context__.validate_dims("data initialization","N","int", - std::vector{}); - N = std::numeric_limits::min(); + current_statement__ = 4; + context__.validate_dims("data initialization","ts","double", + std::vector{static_cast(5)}); + ts = std::vector(5, std::numeric_limits::quiet_NaN()); - current_statement__ = 8; - N = context__.vals_i("N")[(1 - 1)]; - current_statement__ = 9; - validate_non_negative_index("x", "N", N); + current_statement__ = 4; + ts = context__.vals_r("ts"); + current_statement__ = 5; + validate_non_negative_index("k", "1", 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - num_params_r__ = 1 + N; + num_params_r__ = (1 * 2) + 2; } @@ -3020,40 +3554,29 @@ class closures5_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures5_model_namespace::log_prob"; + static constexpr const char* function__ = "ode_rk45_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { - local_scalar_t__ mu; - mu = DUMMY_VAR__; + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, DUMMY_VAR__); current_statement__ = 1; - mu = in__.template read(); - std::vector x; - x = std::vector(N, DUMMY_VAR__); + k = in__.template read>>( + 1, 2); + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, DUMMY_VAR__); current_statement__ = 2; - x = in__.template read>(N); - { - - current_statement__ = 3; - auto foo = foo_L10C9_make__(mu); - - current_statement__ = 4; - auto bar_lpdf = bar_lpdf_L14C9_make__(mu); - current_statement__ = 5; - lp_accum__.add( - reduce_sum(x, 1, pstream__, - foo)); - current_statement__ = 6; - lp_accum__.add( - reduce_sum(x, 1, pstream__, - bar_lpdf.template with_propto())); - current_statement__ = 7; - lp_accum__.add( - reduce_sum(x, 1, pstream__, - bar_lpdf.template with_propto())); - } + init = in__.template read>(2); + std::vector> y; + y = std::vector>(5, Eigen::Matrix(2)); + stan::math::fill(y, DUMMY_VAR__); + + current_statement__ = 3; + assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3084,28 +3607,48 @@ class closures5_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures5_model_namespace::write_array"; + static constexpr const char* function__ = "ode_rk45_model_namespace::write_array"; (void) function__; // suppress unused var warning try { - double mu; - mu = std::numeric_limits::quiet_NaN(); + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, std::numeric_limits::quiet_NaN()); current_statement__ = 1; - mu = in__.template read(); - std::vector x; - x = std::vector(N, std::numeric_limits::quiet_NaN()); + k = in__.template read>>( + 1, 2); + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, std::numeric_limits::quiet_NaN()); current_statement__ = 2; - x = in__.template read>(N); - vars__.emplace_back(mu); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(x[(sym1__ - 1)]); + init = in__.template read>(2); + std::vector> y; + y = std::vector>(5, Eigen::Matrix(2)); + stan::math::fill(y, std::numeric_limits::quiet_NaN()); + + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + vars__.emplace_back(k[(sym2__ - 1)][(sym1__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(init[(sym1__ - 1)]); } if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; } + current_statement__ = 3; + assign(y, integrate(k, init, ts, pstream__), "assigning variable y"); + if (emit_transformed_parameters__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + vars__.emplace_back(y[(sym2__ - 1)][(sym1__ - 1)]); + } + } + } if (logical_negation(emit_generated_quantities__)) { return ; } @@ -3131,20 +3674,55 @@ class closures5_model final : public model_base_crtp { int pos__; pos__ = std::numeric_limits::min(); - pos__ = 1; - double mu; - mu = std::numeric_limits::quiet_NaN(); + pos__ = 1; + std::vector> k; + k = std::vector>(1, Eigen::Matrix(2)); + stan::math::fill(k, std::numeric_limits::quiet_NaN()); - current_statement__ = 1; - mu = context__.vals_r("mu")[(1 - 1)]; - std::vector x; - x = std::vector(N, std::numeric_limits::quiet_NaN()); + { + std::vector k_flat__; + current_statement__ = 1; + k_flat__ = context__.vals_r("k"); + current_statement__ = 1; + pos__ = 1; + current_statement__ = 1; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 1; + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + current_statement__ = 1; + assign(k, k_flat__[(pos__ - 1)], + "assigning variable k", index_uni(sym2__), index_uni(sym1__)); + current_statement__ = 1; + pos__ = (pos__ + 1); + } + } + } + Eigen::Matrix init; + init = Eigen::Matrix(2); + stan::math::fill(init, std::numeric_limits::quiet_NaN()); - current_statement__ = 2; - x = context__.vals_r("x"); - vars__.emplace_back(mu); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { - vars__.emplace_back(x[(sym1__ - 1)]); + { + std::vector init_flat__; + current_statement__ = 2; + init_flat__ = context__.vals_r("init"); + current_statement__ = 2; + pos__ = 1; + current_statement__ = 2; + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + current_statement__ = 2; + assign(init, init_flat__[(pos__ - 1)], + "assigning variable init", index_uni(sym1__)); + current_statement__ = 2; + pos__ = (pos__ + 1); + } + } + for (int sym1__ = 1; sym1__ <= 1; ++sym1__) { + for (int sym2__ = 1; sym2__ <= 2; ++sym2__) { + vars__.emplace_back(k[(sym1__ - 1)][(sym2__ - 1)]); + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + vars__.emplace_back(init[(sym1__ - 1)]); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -3155,14 +3733,19 @@ class closures5_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { - names__ = std::vector{"mu", "x"}; + names__ = std::vector{"k", "init", "y"}; } // get_param_names() inline void get_dims(std::vector>& dimss__) const { - dimss__ = std::vector>{std::vector{}, - std::vector{static_cast(N)}}; + dimss__ = std::vector>{std::vector{ + static_cast(1) + , + static_cast(2) + }, + std::vector{static_cast(2)}, + std::vector{static_cast(5), static_cast(2)}}; } // get_dims() @@ -3172,14 +3755,30 @@ class closures5_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - param_names__.emplace_back(std::string() + "mu"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { { - param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + { + param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); } } if (emit_transformed_parameters__) { - + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } if (emit_generated_quantities__) { @@ -3194,14 +3793,30 @@ class closures5_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - param_names__.emplace_back(std::string() + "mu"); - for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { { - param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + for (int sym2__ = 1; sym2__ <= 1; ++sym2__) { + { + param_names__.emplace_back(std::string() + "k" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + param_names__.emplace_back(std::string() + "init" + '.' + std::to_string(sym1__)); } } if (emit_transformed_parameters__) { - + for (int sym1__ = 1; sym1__ <= 2; ++sym1__) { + { + for (int sym2__ = 1; sym2__ <= 5; ++sym2__) { + { + param_names__.emplace_back(std::string() + "y" + '.' + std::to_string(sym2__) + '.' + std::to_string(sym1__)); + } + } + } + } } if (emit_generated_quantities__) { @@ -3212,13 +3827,13 @@ class closures5_model final : public model_base_crtp { inline std::string get_constrained_sizedtypes() const { - return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); } // get_constrained_sizedtypes() inline std::string get_unconstrained_sizedtypes() const { - return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + return std::string("[{\"name\":\"k\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(1) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"parameters\"},{\"name\":\"init\",\"type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "},\"block\":\"parameters\"},{\"name\":\"y\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(5) + ",\"element_type\":{\"name\":\"vector\",\"length\":" + std::to_string(2) + "}},\"block\":\"transformed_parameters\"}]"); } // get_unconstrained_sizedtypes() @@ -3285,7 +3900,7 @@ class closures5_model final : public model_base_crtp { }; } -using stan_model = closures5_model_namespace::closures5_model; +using stan_model = ode_rk45_model_namespace::ode_rk45_model; #ifndef USING_R @@ -3299,18 +3914,18 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures5_model_namespace::profiles__; + return ode_rk45_model_namespace::profiles__; } #endif - $ ../../../../../../install/default/bin/stanc --print-cpp closures6.stan + $ ../../../../../../install/default/bin/stanc --print-cpp reduce_sum.stan // Code generated by %%NAME%% %%VERSION%% #include -namespace closures6_model_namespace { +namespace reduce_sum_model_namespace { using stan::io::dump; using stan::model::assign; @@ -3326,133 +3941,164 @@ 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 'closures6.stan', line 2, column 4 to column 11)", - " (in 'closures6.stan', line 3, column 4 to column 11)", - " (in 'closures6.stan', line 6, column 4 to line 9, column 5)", - " (in 'closures6.stan', line 10, column 4 to line 13, column 5)", - " (in 'closures6.stan', line 20, column 4 to column 24)", - " (in 'closures6.stan', line 16, column 4 to column 28)", - " (in 'closures6.stan', line 17, column 4 to column 29)", - " (in 'closures6.stan', line 12, column 8 to column 35)", - " (in 'closures6.stan', line 11, column 34 to line 13, column 5)", - " (in 'closures6.stan', line 8, column 8 to column 31)", - " (in 'closures6.stan', line 7, column 25 to line 9, column 5)"}; - + " (in 'reduce_sum.stan', line 5, column 4 to column 12)", + " (in 'reduce_sum.stan', line 6, column 4 to column 14)", + " (in 'reduce_sum.stan', line 9, column 4 to line 12, column 5)", + " (in 'reduce_sum.stan', line 13, column 4 to line 16, column 5)", + " (in 'reduce_sum.stan', line 17, column 4 to column 52)", + " (in 'reduce_sum.stan', line 18, column 4 to column 50)", + " (in 'reduce_sum.stan', line 19, column 4 to column 51)", + " (in 'reduce_sum.stan', line 2, column 4 to column 10)", + " (in 'reduce_sum.stan', line 6, column 11 to column 12)", + " (in 'reduce_sum.stan', line 15, column 8 to column 41)", + " (in 'reduce_sum.stan', line 14, column 61 to line 16, column 5)", + " (in 'reduce_sum.stan', line 11, column 8 to column 39)", + " (in 'reduce_sum.stan', line 10, column 63 to line 12, column 5)"}; +struct partial_sum_closure_rsfunctor__; +template +struct closure_dist_lpdf_rsfunctor__; template stan::promote_args_t -foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) ; +closure_dist_lpdf_L14C9_impl__(const T0__& mu, + const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) ; -class foo_lpdf_L11C9_cfunctor__ { - +template +class closure_dist_lpdf_L14C9_cfunctor__ { + stan::capture_type_t mu; public: const size_t vars_count__; - foo_lpdf_L11C9_cfunctor__(const foo_lpdf_L11C9_cfunctor__&) = default ; - foo_lpdf_L11C9_cfunctor__(foo_lpdf_L11C9_cfunctor__&&) = default ; - foo_lpdf_L11C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y, const T1__& x) const + closure_dist_lpdf_L14C9_cfunctor__(const closure_dist_lpdf_L14C9_cfunctor__< + ref__, F0__>&) = default ; + closure_dist_lpdf_L14C9_cfunctor__(closure_dist_lpdf_L14C9_cfunctor__< + ref__, F0__>&&) = default ; + closure_dist_lpdf_L14C9_cfunctor__(const F0__& mu__) + : mu(mu__), vars_count__(count_vars(mu__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const std::vector& slice, + const int& start, const int& end) const { - return foo_lpdf_L11C9_impl__(y, x, pstream__); + return closure_dist_lpdf_L14C9_impl__(mu, slice, start, end, + pstream__); } - using captured_scalar_t__ = double; - using ValueOf__ = foo_lpdf_L11C9_cfunctor__; - using CopyOf__ = foo_lpdf_L11C9_cfunctor__; + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = closure_dist_lpdf_L14C9_cfunctor__; + using CopyOf__ = closure_dist_lpdf_L14C9_cfunctor__>; size_t count_vars__() const { return vars_count__; } auto value_of__() const { - return ValueOf__(); + return ValueOf__(eval(value_of(mu))); } auto deep_copy_vars__() const { - return CopyOf__(); + return CopyOf__(eval(deep_copy_vars(mu))); } void zero_adjoints__() { - + stan::math::zero_adjoints(mu); } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); + return stan::math::accumulate_adjoints(dest, mu); } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); + return stan::math::save_varis(dest, mu); } template auto with_propto() { - return stan::math::lpdf_wrapper(*this); + return stan::math::lpdf_wrapper, true>(*this); } auto copy_of__() { - return CopyOf__(); + return CopyOf__(mu); } }; -auto foo_lpdf_L11C9_make__() { -return foo_lpdf_L11C9_cfunctor__(); +template +auto closure_dist_lpdf_L14C9_make__(const F0__& mu) { +return closure_dist_lpdf_L14C9_cfunctor__(mu); } -template -stan::promote_args_t -foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; +template +stan::promote_args_t +partial_sum_closure_L10C9_impl__(const T0__& mu, + const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) ; -class foo_rng_L7C9_cfunctor__ { - +template +class partial_sum_closure_L10C9_cfunctor__ { + stan::capture_type_t mu; public: const size_t vars_count__; - foo_rng_L7C9_cfunctor__(const foo_rng_L7C9_cfunctor__&) = default ; - foo_rng_L7C9_cfunctor__(foo_rng_L7C9_cfunctor__&&) = default ; - foo_rng_L7C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const + partial_sum_closure_L10C9_cfunctor__(const partial_sum_closure_L10C9_cfunctor__< + ref__, F0__>&) = default ; + partial_sum_closure_L10C9_cfunctor__(partial_sum_closure_L10C9_cfunctor__< + ref__, F0__>&&) = default ; + partial_sum_closure_L10C9_cfunctor__(const F0__& mu__) + : mu(mu__), vars_count__(count_vars(mu__)) {} + template + stan::promote_args_t + operator()(std::ostream* pstream__, const std::vector& slice, + const int& start, const int& end) const { - return foo_rng_L7C9_impl__(x, base_rng__, pstream__); + return partial_sum_closure_L10C9_impl__(mu, slice, start, end, pstream__); } - using captured_scalar_t__ = double; - using ValueOf__ = foo_rng_L7C9_cfunctor__; - using CopyOf__ = foo_rng_L7C9_cfunctor__; + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = partial_sum_closure_L10C9_cfunctor__; + using CopyOf__ = partial_sum_closure_L10C9_cfunctor__>; size_t count_vars__() const { return vars_count__; } auto value_of__() const { - return ValueOf__(); + return ValueOf__(eval(value_of(mu))); } auto deep_copy_vars__() const { - return CopyOf__(); + return CopyOf__(eval(deep_copy_vars(mu))); } void zero_adjoints__() { - + stan::math::zero_adjoints(mu); } double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); + return stan::math::accumulate_adjoints(dest, mu); } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); + return stan::math::save_varis(dest, mu); } }; -auto foo_rng_L7C9_make__() { -return foo_rng_L7C9_cfunctor__(); +template +auto partial_sum_closure_L10C9_make__(const F0__& mu) { +return partial_sum_closure_L10C9_cfunctor__(mu); } template stan::promote_args_t -foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) { +closure_dist_lpdf_L14C9_impl__(const T0__& mu, + const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 8; - return normal_lpdf(y, x, 1); + current_statement__ = 10; + return normal_lpdf(slice, mu, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3460,18 +4106,22 @@ foo_lpdf_L11C9_impl__(const T0__& y, const T1__& x, std::ostream* pstream__) { } } -template -stan::promote_args_t -foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +stan::promote_args_t +partial_sum_closure_L10C9_impl__(const T0__& mu, + const std::vector& slice, + const int& start, const int& end, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 10; - return normal_rng(x, 1, base_rng__); + current_statement__ = 12; + return normal_lpdf(slice, mu, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3479,31 +4129,31 @@ foo_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { } } -class closures6_model final : public model_base_crtp { +class reduce_sum_model final : public model_base_crtp { private: - + int N; public: - ~closures6_model() { } + ~reduce_sum_model() { } - inline std::string model_name() const final { return "closures6_model"; } + inline std::string model_name() const final { return "reduce_sum_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures6_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + reduce_sum_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures6_model_namespace::closures6_model"; + static constexpr const char* function__ = "reduce_sum_model_namespace::reduce_sum_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -3512,12 +4162,21 @@ class closures6_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; + current_statement__ = 8; + context__.validate_dims("data initialization","N","int", + std::vector{}); + N = std::numeric_limits::min(); + + current_statement__ = 8; + N = context__.vals_i("N")[(1 - 1)]; + current_statement__ = 9; + validate_non_negative_index("x", "N", N); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - num_params_r__ = 1 + 1; + num_params_r__ = 1 + N; } @@ -3535,32 +4194,39 @@ class closures6_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures6_model_namespace::log_prob"; + static constexpr const char* function__ = "reduce_sum_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { - local_scalar_t__ s; - s = DUMMY_VAR__; + local_scalar_t__ mu; + mu = DUMMY_VAR__; current_statement__ = 1; - s = in__.template read(); - local_scalar_t__ k; - k = DUMMY_VAR__; + mu = in__.template read(); + std::vector x; + x = std::vector(N, DUMMY_VAR__); current_statement__ = 2; - k = in__.template read(); - - current_statement__ = 3; - auto foo_rng = foo_rng_L7C9_make__(); - - current_statement__ = 4; - auto foo_lpdf = foo_lpdf_L11C9_make__(); + x = in__.template read>(N); { + + current_statement__ = 3; + auto partial_sum_closure = partial_sum_closure_L10C9_make__(mu); + + current_statement__ = 4; + auto closure_dist_lpdf = closure_dist_lpdf_L14C9_make__(mu); + current_statement__ = 5; + lp_accum__.add( + reduce_sum(x, 1, pstream__, + partial_sum_closure)); current_statement__ = 6; - lp_accum__.add(foo_lpdf.template operator()(pstream__, s, k)); + lp_accum__.add( + reduce_sum(x, 1, pstream__, + closure_dist_lpdf.template with_propto())); current_statement__ = 7; lp_accum__.add( - foo_lpdf.template operator()(pstream__, s, k)); + reduce_sum(x, 1, pstream__, + closure_dist_lpdf.template with_propto())); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -3592,41 +4258,31 @@ class closures6_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures6_model_namespace::write_array"; + static constexpr const char* function__ = "reduce_sum_model_namespace::write_array"; (void) function__; // suppress unused var warning try { - double s; - s = std::numeric_limits::quiet_NaN(); + double mu; + mu = std::numeric_limits::quiet_NaN(); current_statement__ = 1; - s = in__.template read(); - double k; - k = std::numeric_limits::quiet_NaN(); + mu = in__.template read(); + std::vector x; + x = std::vector(N, std::numeric_limits::quiet_NaN()); current_statement__ = 2; - k = in__.template read(); - - - vars__.emplace_back(s); - vars__.emplace_back(k); + x = in__.template read>(N); + vars__.emplace_back(mu); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(x[(sym1__ - 1)]); + } if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; } - current_statement__ = 3; - auto foo_rng = foo_rng_L7C9_make__(); - current_statement__ = 4; - auto foo_lpdf = foo_lpdf_L11C9_make__(); if (logical_negation(emit_generated_quantities__)) { return ; } - double m; - m = std::numeric_limits::quiet_NaN(); - - current_statement__ = 5; - m = foo_rng(base_rng__, pstream__, k); - vars__.emplace_back(m); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3650,18 +4306,20 @@ class closures6_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - double s; - s = std::numeric_limits::quiet_NaN(); + double mu; + mu = std::numeric_limits::quiet_NaN(); current_statement__ = 1; - s = context__.vals_r("s")[(1 - 1)]; - double k; - k = std::numeric_limits::quiet_NaN(); + mu = context__.vals_r("mu")[(1 - 1)]; + std::vector x; + x = std::vector(N, std::numeric_limits::quiet_NaN()); current_statement__ = 2; - k = context__.vals_r("k")[(1 - 1)]; - vars__.emplace_back(s); - vars__.emplace_back(k); + x = context__.vals_r("x"); + vars__.emplace_back(mu); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + vars__.emplace_back(x[(sym1__ - 1)]); + } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3671,14 +4329,14 @@ class closures6_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { - names__ = std::vector{"s", "k", "m"}; + names__ = std::vector{"mu", "x"}; } // get_param_names() inline void get_dims(std::vector>& dimss__) const { dimss__ = std::vector>{std::vector{}, - std::vector{}, std::vector{}}; + std::vector{static_cast(N)}}; } // get_dims() @@ -3688,611 +4346,199 @@ class closures6_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - param_names__.emplace_back(std::string() + "s"); - param_names__.emplace_back(std::string() + "k"); - if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "m"); + param_names__.emplace_back(std::string() + "mu"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + } } - - } // constrained_param_names() - - inline void unconstrained_param_names( - std::vector& param_names__, - bool emit_transformed_parameters__ = true, - bool emit_generated_quantities__ = true) const - final { - - param_names__.emplace_back(std::string() + "s"); - param_names__.emplace_back(std::string() + "k"); if (emit_transformed_parameters__) { - - } - - if (emit_generated_quantities__) { - param_names__.emplace_back(std::string() + "m"); - } - - } // unconstrained_param_names() - - inline std::string get_constrained_sizedtypes() const { - - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); - - } // get_constrained_sizedtypes() - - inline std::string get_unconstrained_sizedtypes() const { - - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); - - } // get_unconstrained_sizedtypes() - - - // Begin method overload boilerplate - template - inline void write_array(RNG& base_rng, - Eigen::Matrix& params_r, - Eigen::Matrix& vars, - const bool emit_transformed_parameters = true, - const bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - std::vector vars_vec; - vars_vec.reserve(vars.size()); - std::vector params_i; - write_array_impl(base_rng, params_r, params_i, vars_vec, - emit_transformed_parameters, emit_generated_quantities, pstream); - vars = Eigen::Map>( - vars_vec.data(), vars_vec.size()); - } - - template - inline void write_array(RNG& base_rng, std::vector& params_r, - std::vector& params_i, - std::vector& vars, - bool emit_transformed_parameters = true, - bool emit_generated_quantities = true, - std::ostream* pstream = nullptr) const { - write_array_impl(base_rng, params_r, params_i, vars, - emit_transformed_parameters, emit_generated_quantities, pstream); - } - - template - inline T_ log_prob(Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const { - Eigen::Matrix params_i; - return log_prob_impl(params_r, params_i, pstream); - } - - template - inline T__ log_prob(std::vector& params_r, - std::vector& params_i, - std::ostream* pstream = nullptr) const { - return log_prob_impl(params_r, params_i, pstream); - } - - - inline void transform_inits(const stan::io::var_context& context, - Eigen::Matrix& params_r, - std::ostream* pstream = nullptr) const final { - std::vector params_r_vec; - params_r_vec.reserve(params_r.size()); - std::vector params_i; - transform_inits_impl(context, params_i, params_r_vec, pstream); - params_r = Eigen::Map>( - params_r_vec.data(), params_r_vec.size()); - } - inline void transform_inits(const stan::io::var_context& context, - std::vector& params_i, - std::vector& vars, - std::ostream* pstream = nullptr) const final { - transform_inits_impl(context, params_i, vars, pstream); - } - -}; -} -using stan_model = closures6_model_namespace::closures6_model; - -#ifndef USING_R - -// Boilerplate -stan::model::model_base& new_model( - stan::io::var_context& data_context, - unsigned int seed, - std::ostream* msg_stream) { - stan_model* m = new stan_model(data_context, seed, msg_stream); - return *m; -} - -stan::math::profile_map& get_stan_profile_data() { - return closures6_model_namespace::profiles__; -} - -#endif - - - - $ ../../../../../../install/default/bin/stanc --print-cpp closures7.stan - -// Code generated by %%NAME%% %%VERSION%% -#include -namespace closures7_model_namespace { - -using stan::io::dump; -using stan::model::assign; -using stan::model::index_uni; -using stan::model::index_max; -using stan::model::index_min; -using stan::model::index_min_max; -using stan::model::index_multi; -using stan::model::index_omni; -using stan::model::model_base_crtp; -using stan::model::rvalue; -using namespace stan::math; - - -stan::math::profile_map profiles__; -static constexpr std::array locations_array__ = -{" (found before start of program)", - " (in 'closures7.stan', line 16, column 4 to line 17, column 68)", - " (in 'closures7.stan', line 20, column 4 to line 23, column 5)", - " (in 'closures7.stan', line 24, column 4 to line 27, column 5)", - " (in 'closures7.stan', line 28, column 4 to line 31, column 5)", - " (in 'closures7.stan', line 32, column 4 to line 35, column 5)", - " (in 'closures7.stan', line 36, column 4 to line 39, column 5)", - " (in 'closures7.stan', line 40, column 4 to line 43, column 5)", - " (in 'closures7.stan', line 44, column 4 to line 47, column 5)", - " (in 'closures7.stan', line 51, column 4 to column 27)", - " (in 'closures7.stan', line 54, column 4 to column 36)", - " (in 'closures7.stan', line 18, column 4 to column 30)", - " (in 'closures7.stan', line 48, column 4 to column 30)", - " (in 'closures7.stan', line 3, column 8 to column 38)", - " (in 'closures7.stan', line 4, column 8 to column 17)", - " (in 'closures7.stan', line 2, column 25 to line 5, column 5)", - " (in 'closures7.stan', line 7, column 8 to column 34)", - " (in 'closures7.stan', line 8, column 8 to column 17)", - " (in 'closures7.stan', line 6, column 24 to line 9, column 5)", - " (in 'closures7.stan', line 11, column 8 to column 26)", - " (in 'closures7.stan', line 12, column 8 to column 17)", - " (in 'closures7.stan', line 10, column 23 to line 13, column 5)", - " (in 'closures7.stan', line 34, column 8 to column 17)", - " (in 'closures7.stan', line 33, column 20 to line 35, column 5)", - " (in 'closures7.stan', line 38, column 8 to column 17)", - " (in 'closures7.stan', line 37, column 25 to line 39, column 5)", - " (in 'closures7.stan', line 42, column 8 to column 17)", - " (in 'closures7.stan', line 41, column 24 to line 43, column 5)", - " (in 'closures7.stan', line 46, column 8 to column 17)", - " (in 'closures7.stan', line 45, column 23 to line 47, column 5)", - " (in 'closures7.stan', line 30, column 8 to column 25)", - " (in 'closures7.stan', line 29, column 35 to line 31, column 5)", - " (in 'closures7.stan', line 26, column 8 to column 28)", - " (in 'closures7.stan', line 25, column 48 to line 27, column 5)", - " (in 'closures7.stan', line 22, column 8 to column 27)", - " (in 'closures7.stan', line 21, column 38 to line 23, column 5)", - " (in 'closures7.stan', line 17, column 66 to column 68)"}; - -template -stan::promote_args_t -ff_lpdf(const T0__& x, std::ostream* pstream__) ; - -struct ff_lpdf_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, std::ostream* pstream__) const -{ -return ff_lpdf(x, pstream__); -} -}; - -template -stan::promote_args_t -ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; - -struct ff_rng_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, RNG& base_rng__, std::ostream* pstream__) const -{ -return ff_rng(x, pstream__); -} -}; - -template -stan::promote_args_t -ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; - -struct ff_lp_functor__ { -template -stan::promote_args_t -operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const -{ -return ff_lp(x, pstream__); -} -}; - -template -stan::promote_args_t -f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) ; - -class f2_L33C9_cfunctor__ { - - public: - const size_t vars_count__; - f2_L33C9_cfunctor__(const f2_L33C9_cfunctor__&) = default ; - f2_L33C9_cfunctor__(f2_L33C9_cfunctor__&&) = default ; - f2_L33C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return f2_L33C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f2_L33C9_cfunctor__; - using CopyOf__ = f2_L33C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - + + } + + if (emit_generated_quantities__) { + + } + + } // constrained_param_names() + + inline void unconstrained_param_names( + std::vector& param_names__, + bool emit_transformed_parameters__ = true, + bool emit_generated_quantities__ = true) const + final { + + param_names__.emplace_back(std::string() + "mu"); + for (int sym1__ = 1; sym1__ <= N; ++sym1__) { + { + param_names__.emplace_back(std::string() + "x" + '.' + std::to_string(sym1__)); + } + } + if (emit_transformed_parameters__) { + + } + + if (emit_generated_quantities__) { + + } + + } // unconstrained_param_names() + + inline std::string get_constrained_sizedtypes() const { + + return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_constrained_sizedtypes() + + inline std::string get_unconstrained_sizedtypes() const { + + return std::string("[{\"name\":\"mu\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"x\",\"type\":{\"name\":\"array\",\"length\":" + std::to_string(N) + ",\"element_type\":{\"name\":\"real\"}},\"block\":\"parameters\"}]"); + + } // get_unconstrained_sizedtypes() + - }; -auto f2_L33C9_make__() { -return f2_L33C9_cfunctor__(); -} + // Begin method overload boilerplate + template + inline void write_array(RNG& base_rng, + Eigen::Matrix& params_r, + Eigen::Matrix& vars, + const bool emit_transformed_parameters = true, + const bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + std::vector vars_vec; + vars_vec.reserve(vars.size()); + std::vector params_i; + write_array_impl(base_rng, params_r, params_i, vars_vec, + emit_transformed_parameters, emit_generated_quantities, pstream); + vars = Eigen::Map>( + vars_vec.data(), vars_vec.size()); + } -template -stan::promote_args_t -f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) ; + template + inline void write_array(RNG& base_rng, std::vector& params_r, + std::vector& params_i, + std::vector& vars, + bool emit_transformed_parameters = true, + bool emit_generated_quantities = true, + std::ostream* pstream = nullptr) const { + write_array_impl(base_rng, params_r, params_i, vars, + emit_transformed_parameters, emit_generated_quantities, pstream); + } -class f3_lpdf_L37C9_cfunctor__ { - - public: - const size_t vars_count__; - f3_lpdf_L37C9_cfunctor__(const f3_lpdf_L37C9_cfunctor__&) = default ; - f3_lpdf_L37C9_cfunctor__(f3_lpdf_L37C9_cfunctor__&&) = default ; - f3_lpdf_L37C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return f3_lpdf_L37C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f3_lpdf_L37C9_cfunctor__; - using CopyOf__ = f3_lpdf_L37C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto f3_lpdf_L37C9_make__() { -return f3_lpdf_L37C9_cfunctor__(); -} + template + inline T_ log_prob(Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const { + Eigen::Matrix params_i; + return log_prob_impl(params_r, params_i, pstream); + } -template -stan::promote_args_t -f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; + template + inline T__ log_prob(std::vector& params_r, + std::vector& params_i, + std::ostream* pstream = nullptr) const { + return log_prob_impl(params_r, params_i, pstream); + } -class f4_rng_L41C9_cfunctor__ { - - public: - const size_t vars_count__; - f4_rng_L41C9_cfunctor__(const f4_rng_L41C9_cfunctor__&) = default ; - f4_rng_L41C9_cfunctor__(f4_rng_L41C9_cfunctor__&&) = default ; - f4_rng_L41C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const - { - return f4_rng_L41C9_impl__(x, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f4_rng_L41C9_cfunctor__; - using CopyOf__ = f4_rng_L41C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f4_rng_L41C9_make__() { -return f4_rng_L41C9_cfunctor__(); -} -template -stan::promote_args_t -f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; + inline void transform_inits(const stan::io::var_context& context, + Eigen::Matrix& params_r, + std::ostream* pstream = nullptr) const final { + std::vector params_r_vec; + params_r_vec.reserve(params_r.size()); + std::vector params_i; + transform_inits_impl(context, params_i, params_r_vec, pstream); + params_r = Eigen::Map>( + params_r_vec.data(), params_r_vec.size()); + } + inline void transform_inits(const stan::io::var_context& context, + std::vector& params_i, + std::vector& vars, + std::ostream* pstream = nullptr) const final { + transform_inits_impl(context, params_i, vars, pstream); + } -class f5_lp_L45C9_cfunctor__ { - - public: - const size_t vars_count__; - f5_lp_L45C9_cfunctor__(const f5_lp_L45C9_cfunctor__&) = default ; - f5_lp_L45C9_cfunctor__(f5_lp_L45C9_cfunctor__&&) = default ; - f5_lp_L45C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, - const T0__& x) const - { - return f5_lp_L45C9_impl__(x, lp__, lp_accum__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f5_lp_L45C9_cfunctor__; - using CopyOf__ = f5_lp_L45C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f5_lp_L45C9_make__() { -return f5_lp_L45C9_cfunctor__(); +}; } +using stan_model = reduce_sum_model_namespace::reduce_sum_model; -template -stan::promote_args_t -foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) ; +#ifndef USING_R -class foo_lp_L29C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_lp_L29C9_cfunctor__(const foo_lp_L29C9_cfunctor__&) = default ; - foo_lp_L29C9_cfunctor__(foo_lp_L29C9_cfunctor__&&) = default ; - foo_lp_L29C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, - const T0__& bar_lp) const - { - return foo_lp_L29C9_impl__(bar_lp, lp__, lp_accum__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_lp_L29C9_cfunctor__; - using CopyOf__ = foo_lp_L29C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_lp_L29C9_make__() { -return foo_lp_L29C9_cfunctor__(); +// Boilerplate +stan::model::model_base& new_model( + stan::io::var_context& data_context, + unsigned int seed, + std::ostream* msg_stream) { + stan_model* m = new stan_model(data_context, seed, msg_stream); + return *m; } -template -stan::promote_args_t -foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) ; - -class foo_lpdf_L25C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_lpdf_L25C9_cfunctor__(const foo_lpdf_L25C9_cfunctor__&) = default ; - foo_lpdf_L25C9_cfunctor__(foo_lpdf_L25C9_cfunctor__&&) = default ; - foo_lpdf_L25C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& zz, const T1__& bar_lpdf) const - { - return foo_lpdf_L25C9_impl__(zz, bar_lpdf, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_lpdf_L25C9_cfunctor__; - using CopyOf__ = foo_lpdf_L25C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto foo_lpdf_L25C9_make__() { -return foo_lpdf_L25C9_cfunctor__(); +stan::math::profile_map& get_stan_profile_data() { + return reduce_sum_model_namespace::profiles__; } -template -stan::promote_args_t -foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, - std::ostream* pstream__) ; +#endif -class foo_rng_L21C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_rng_L21C9_cfunctor__(const foo_rng_L21C9_cfunctor__&) = default ; - foo_rng_L21C9_cfunctor__(foo_rng_L21C9_cfunctor__&&) = default ; - foo_rng_L21C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& bar_lpdf) const - { - return foo_rng_L21C9_impl__(bar_lpdf, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_rng_L21C9_cfunctor__; - using CopyOf__ = foo_rng_L21C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_rng_L21C9_make__() { -return foo_rng_L21C9_cfunctor__(); -} -template -void -hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, - std::ostream* pstream__) ; -class hof_L17C9_cfunctor__ { + $ ../../../../../../install/default/bin/stanc --print-cpp rng_and_lpdf.stan + +// Code generated by %%NAME%% %%VERSION%% +#include +namespace rng_and_lpdf_model_namespace { + +using stan::io::dump; +using stan::model::assign; +using stan::model::index_uni; +using stan::model::index_max; +using stan::model::index_min; +using stan::model::index_min_max; +using stan::model::index_multi; +using stan::model::index_omni; +using stan::model::model_base_crtp; +using stan::model::rvalue; +using namespace stan::math; + + +stan::math::profile_map profiles__; +static constexpr std::array locations_array__ = +{" (found before start of program)", + " (in 'rng_and_lpdf.stan', line 2, column 4 to column 11)", + " (in 'rng_and_lpdf.stan', line 3, column 4 to column 11)", + " (in 'rng_and_lpdf.stan', line 6, column 4 to line 9, column 5)", + " (in 'rng_and_lpdf.stan', line 10, column 4 to line 13, column 5)", + " (in 'rng_and_lpdf.stan', line 20, column 4 to column 33)", + " (in 'rng_and_lpdf.stan', line 16, column 4 to column 37)", + " (in 'rng_and_lpdf.stan', line 17, column 4 to column 38)", + " (in 'rng_and_lpdf.stan', line 12, column 8 to column 35)", + " (in 'rng_and_lpdf.stan', line 11, column 43 to line 13, column 5)", + " (in 'rng_and_lpdf.stan', line 8, column 8 to column 31)", + " (in 'rng_and_lpdf.stan', line 7, column 34 to line 9, column 5)"}; + +template +stan::promote_args_t +closure_dist_lpdf_L11C9_impl__(const T0__& y, const T1__& x, + std::ostream* pstream__) ; + +class closure_dist_lpdf_L11C9_cfunctor__ { public: const size_t vars_count__; - hof_L17C9_cfunctor__(const hof_L17C9_cfunctor__&) = default ; - hof_L17C9_cfunctor__(hof_L17C9_cfunctor__&&) = default ; - hof_L17C9_cfunctor__() + closure_dist_lpdf_L11C9_cfunctor__(const closure_dist_lpdf_L11C9_cfunctor__&) = default ; + closure_dist_lpdf_L11C9_cfunctor__(closure_dist_lpdf_L11C9_cfunctor__&&) = default ; + closure_dist_lpdf_L11C9_cfunctor__() : vars_count__(count_vars()) {} - template - void - operator()(std::ostream* pstream__, const T0__& s_rng, const T1__& s_lpdf, - const T2__& s_lp) const + template + stan::promote_args_t + operator()(std::ostream* pstream__, const T0__& y, const T1__& x) const { - return hof_L17C9_impl__(s_rng, s_lpdf, s_lp, pstream__); + return closure_dist_lpdf_L11C9_impl__(y, x, pstream__); } using captured_scalar_t__ = double; - using ValueOf__ = hof_L17C9_cfunctor__; - using CopyOf__ = hof_L17C9_cfunctor__; + using ValueOf__ = closure_dist_lpdf_L11C9_cfunctor__; + using CopyOf__ = closure_dist_lpdf_L11C9_cfunctor__; size_t count_vars__() const { return vars_count__; } @@ -4309,192 +4555,81 @@ class hof_L17C9_cfunctor__ { return stan::math::accumulate_adjoints(dest); } stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto hof_L17C9_make__() { -return hof_L17C9_cfunctor__(); -} - -template -stan::promote_args_t -ff_lpdf(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 13; - s = std_normal_lpdf(0); - current_statement__ = 14; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 16; - s = std_normal_rng(base_rng__); - current_statement__ = 17; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 19; - s = get_lp(lp__, lp_accum__); - current_statement__ = 20; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f2_L33C9_impl__(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 22; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f3_lpdf_L37C9_impl__(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 24; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -stan::promote_args_t -f4_rng_L41C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 26; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + return stan::math::save_varis(dest); + } + template + auto with_propto() { + return stan::math::lpdf_wrapper(*this); + } + auto copy_of__() { + return CopyOf__(); } + }; +auto closure_dist_lpdf_L11C9_make__() { +return closure_dist_lpdf_L11C9_cfunctor__(); } -template + +template stan::promote_args_t -f5_lp_L45C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 28; - return x; - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); +closure_dist_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, + std::ostream* pstream__) ; + +class closure_dist_rng_L7C9_cfunctor__ { + + public: + const size_t vars_count__; + closure_dist_rng_L7C9_cfunctor__(const closure_dist_rng_L7C9_cfunctor__&) = default ; + closure_dist_rng_L7C9_cfunctor__(closure_dist_rng_L7C9_cfunctor__&&) = default ; + closure_dist_rng_L7C9_cfunctor__() + : vars_count__(count_vars()) {} + template + stan::promote_args_t + operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const + { + return closure_dist_rng_L7C9_impl__(x, base_rng__, pstream__); } -} -template -stan::promote_args_t -foo_lp_L29C9_impl__(const T0__& bar_lp, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 30; - return bar_lp.template operator()(lp__, lp_accum__, pstream__, - 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + using captured_scalar_t__ = double; + using ValueOf__ = closure_dist_rng_L7C9_cfunctor__; + using CopyOf__ = closure_dist_rng_L7C9_cfunctor__; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(); + } + auto deep_copy_vars__() const { + return CopyOf__(); + } + void zero_adjoints__() { + + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest); } + + }; +auto closure_dist_rng_L7C9_make__() { +return closure_dist_rng_L7C9_cfunctor__(); } + template stan::promote_args_t -foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +T1__> +closure_dist_lpdf_L11C9_impl__(const T0__& y, const T1__& x, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 32; - return bar_lpdf.template operator()(pstream__, 1); + current_statement__ = 8; + return normal_lpdf(y, x, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4503,39 +4638,18 @@ foo_lpdf_L25C9_impl__(const T0__& zz, const T1__& bar_lpdf, } template -stan::promote_args_t -foo_rng_L21C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; - int current_statement__ = 0; - static constexpr bool propto__ = true; - (void) propto__; - local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); - (void) DUMMY_VAR__; // suppress unused var warning - try { - current_statement__ = 34; - return bar_lpdf.template operator()(pstream__, 1); - } catch (const std::exception& e) { - stan::lang::rethrow_located(e, locations_array__[current_statement__]); - // Next line prevents compiler griping about no return - throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); - } - -} -template -void -hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +stan::promote_args_t +closure_dist_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - + current_statement__ = 10; + return normal_rng(x, 1, base_rng__); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4543,31 +4657,31 @@ hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, } } -class closures7_model final : public model_base_crtp { +class rng_and_lpdf_model final : public model_base_crtp { private: - double z; + public: - ~closures7_model() { } + ~rng_and_lpdf_model() { } - inline std::string model_name() const final { return "closures7_model"; } + inline std::string model_name() const final { return "rng_and_lpdf_model"; } inline std::vector model_compile_info() const noexcept { return std::vector{"stanc_version = %%NAME%%3 %%VERSION%%", "stancflags = --print-cpp"}; } - closures7_model(stan::io::var_context& context__, - unsigned int random_seed__ = 0, - std::ostream* pstream__ = nullptr) : model_base_crtp(0) { + rng_and_lpdf_model(stan::io::var_context& context__, + unsigned int random_seed__ = 0, + std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); (void) base_rng__; // suppress unused var warning - static constexpr const char* function__ = "closures7_model_namespace::closures7_model"; + static constexpr const char* function__ = "rng_and_lpdf_model_namespace::rng_and_lpdf_model"; (void) function__; // suppress unused var warning local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -4576,46 +4690,12 @@ class closures7_model final : public model_base_crtp { pos__ = std::numeric_limits::min(); pos__ = 1; - - current_statement__ = 1; - auto hof = hof_L17C9_make__(); - current_statement__ = 11; - hof(pstream__, rng_from_lambda(ff_rng_functor__()), - lpdf_from_lambda(ff_lpdf_functor__()), - lp_from_lambda(ff_lp_functor__())); - - current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); - - current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); - - current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); - - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); - current_statement__ = 12; - z = std::numeric_limits::quiet_NaN(); - - current_statement__ = 12; - z = foo_rng(base_rng__, pstream__, - f3_lpdf.template with_propto()); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); } - num_params_r__ = 0U; + num_params_r__ = 1 + 1; } @@ -4633,45 +4713,33 @@ class closures7_model final : public model_base_crtp { int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures7_model_namespace::log_prob"; + static constexpr const char* function__ = "rng_and_lpdf_model_namespace::log_prob"; (void) function__; // suppress unused var warning try { + local_scalar_t__ s; + s = DUMMY_VAR__; current_statement__ = 1; - auto hof = hof_L17C9_make__(); + s = in__.template read(); + local_scalar_t__ k; + k = DUMMY_VAR__; current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); + k = in__.template read(); current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); + auto closure_dist_rng = closure_dist_rng_L7C9_make__(); current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); - - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); - local_scalar_t__ s; - s = DUMMY_VAR__; - - current_statement__ = 9; - s = foo_lp.template operator()(lp__, lp_accum__, pstream__, - f5_lp); + auto closure_dist_lpdf = closure_dist_lpdf_L11C9_make__(); { - current_statement__ = 10; + current_statement__ = 6; lp_accum__.add( - foo_lpdf.template operator()(pstream__, 1, - f3_lpdf.template with_propto())); + closure_dist_lpdf.template operator()(pstream__, s, k)); + current_statement__ = 7; + lp_accum__.add( + closure_dist_lpdf.template operator()(pstream__, s, k)); } } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -4703,50 +4771,41 @@ class closures7_model final : public model_base_crtp { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); constexpr bool jacobian__ = false; (void) DUMMY_VAR__; // suppress unused var warning - static constexpr const char* function__ = "closures7_model_namespace::write_array"; + static constexpr const char* function__ = "rng_and_lpdf_model_namespace::write_array"; (void) function__; // suppress unused var warning try { + double s; + s = std::numeric_limits::quiet_NaN(); current_statement__ = 1; - auto hof = hof_L17C9_make__(); + s = in__.template read(); + double k; + k = std::numeric_limits::quiet_NaN(); current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); - - current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); - - current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); + k = in__.template read(); - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); - double s; - s = std::numeric_limits::quiet_NaN(); + vars__.emplace_back(s); + vars__.emplace_back(k); if (logical_negation((primitive_value(emit_transformed_parameters__) || primitive_value(emit_generated_quantities__)))) { return ; } - current_statement__ = 9; - s = foo_lp.template operator()(lp__, lp_accum__, pstream__, - f5_lp); - if (emit_transformed_parameters__) { - vars__.emplace_back(s); - } + current_statement__ = 3; + auto closure_dist_rng = closure_dist_rng_L7C9_make__(); + current_statement__ = 4; + auto closure_dist_lpdf = closure_dist_lpdf_L11C9_make__(); if (logical_negation(emit_generated_quantities__)) { return ; } + double m; + m = std::numeric_limits::quiet_NaN(); + + current_statement__ = 5; + m = closure_dist_rng(base_rng__, pstream__, k); + vars__.emplace_back(m); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4766,34 +4825,22 @@ class closures7_model final : public model_base_crtp { int current_statement__ = 0; try { - - current_statement__ = 1; - auto hof = hof_L17C9_make__(); - - current_statement__ = 2; - auto foo_rng = foo_rng_L21C9_make__(); - - current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L25C9_make__(); - - current_statement__ = 4; - auto foo_lp = foo_lp_L29C9_make__(); - - current_statement__ = 5; - auto f2 = f2_L33C9_make__(); - - current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L37C9_make__(); - - current_statement__ = 7; - auto f4_rng = f4_rng_L41C9_make__(); - - current_statement__ = 8; - auto f5_lp = f5_lp_L45C9_make__(); int pos__; pos__ = std::numeric_limits::min(); pos__ = 1; + double s; + s = std::numeric_limits::quiet_NaN(); + + current_statement__ = 1; + s = context__.vals_r("s")[(1 - 1)]; + double k; + k = std::numeric_limits::quiet_NaN(); + + current_statement__ = 2; + k = context__.vals_r("k")[(1 - 1)]; + vars__.emplace_back(s); + vars__.emplace_back(k); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4803,13 +4850,14 @@ class closures7_model final : public model_base_crtp { inline void get_param_names(std::vector& names__) const { - names__ = std::vector{"s"}; + names__ = std::vector{"s", "k", "m"}; } // get_param_names() inline void get_dims(std::vector>& dimss__) const { - dimss__ = std::vector>{std::vector{}}; + dimss__ = std::vector>{std::vector{}, + std::vector{}, std::vector{}}; } // get_dims() @@ -4819,13 +4867,14 @@ class closures7_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - + param_names__.emplace_back(std::string() + "s"); + param_names__.emplace_back(std::string() + "k"); if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "s"); + } if (emit_generated_quantities__) { - + param_names__.emplace_back(std::string() + "m"); } } // constrained_param_names() @@ -4836,26 +4885,27 @@ class closures7_model final : public model_base_crtp { bool emit_generated_quantities__ = true) const final { - + param_names__.emplace_back(std::string() + "s"); + param_names__.emplace_back(std::string() + "k"); if (emit_transformed_parameters__) { - param_names__.emplace_back(std::string() + "s"); + } if (emit_generated_quantities__) { - + param_names__.emplace_back(std::string() + "m"); } } // unconstrained_param_names() inline std::string get_constrained_sizedtypes() const { - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); } // get_constrained_sizedtypes() inline std::string get_unconstrained_sizedtypes() const { - return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"transformed_parameters\"}]"); + return std::string("[{\"name\":\"s\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"k\",\"type\":{\"name\":\"real\"},\"block\":\"parameters\"},{\"name\":\"m\",\"type\":{\"name\":\"real\"},\"block\":\"generated_quantities\"}]"); } // get_unconstrained_sizedtypes() @@ -4922,7 +4972,7 @@ class closures7_model final : public model_base_crtp { }; } -using stan_model = closures7_model_namespace::closures7_model; +using stan_model = rng_and_lpdf_model_namespace::rng_and_lpdf_model; #ifndef USING_R @@ -4936,7 +4986,7 @@ stan::model::model_base& new_model( } stan::math::profile_map& get_stan_profile_data() { - return closures7_model_namespace::profiles__; + return rng_and_lpdf_model_namespace::profiles__; } #endif diff --git a/test/integration/good/code-gen/closures/closures3.stan b/test/integration/good/code-gen/closures/higher_order.stan similarity index 52% rename from test/integration/good/code-gen/closures/closures3.stan rename to test/integration/good/code-gen/closures/higher_order.stan index 4d17ac0024..f88b8b82ac 100644 --- a/test/integration/good/code-gen/closures/closures3.stan +++ b/test/integration/good/code-gen/closures/higher_order.stan @@ -1,30 +1,30 @@ functions { - real foo(real(real) g, real x) { + real higher_order_func(real(real) g, real x) { function real g2(real y) { return g(y) * x; } return g2(1.0); } - real foo2(real x) { + real func(real x) { return x; } } transformed data { - real x = foo(foo2, 2.0); + real x = higher_order_func(func, 2.0); function - real bar(real y) { + real data_closure(real y) { return x*y; } - real z = foo(bar, 1.0); + real z = higher_order_func(data_closure, 1.0); } parameters { real p; } transformed parameters { function - real baz(real y) { + real closure(real y) { return p*y; } - real w = foo(baz, 1.0); + real w = higher_order_func(closure, 1.0); } \ No newline at end of file diff --git a/test/integration/good/code-gen/closures/closures7.stan b/test/integration/good/code-gen/closures/higher_order_suffixes.stan similarity index 94% rename from test/integration/good/code-gen/closures/closures7.stan rename to test/integration/good/code-gen/closures/higher_order_suffixes.stan index 70b8b7fe47..da9c4703fa 100644 --- a/test/integration/good/code-gen/closures/closures7.stan +++ b/test/integration/good/code-gen/closures/higher_order_suffixes.stan @@ -14,8 +14,10 @@ functions { } transformed data { function - void hof(real(real) s_rng,real(real) s_lpdf, real(real) s_lp) {} - hof(ff_rng,ff_lpdf,ff_lp); + void hof(real(real) s_rng,real(real) s_lpdf, real(real) s_lp) { + // nothing + } + hof(ff_rng, ff_lpdf, ff_lp); function real foo_rng(real(real) bar_lpdf) { diff --git a/test/integration/good/code-gen/closures/closures4.stan b/test/integration/good/code-gen/closures/ode_rk45.stan similarity index 100% rename from test/integration/good/code-gen/closures/closures4.stan rename to test/integration/good/code-gen/closures/ode_rk45.stan diff --git a/test/integration/good/code-gen/closures/reduce_sum.stan b/test/integration/good/code-gen/closures/reduce_sum.stan new file mode 100644 index 0000000000..c74205d5d0 --- /dev/null +++ b/test/integration/good/code-gen/closures/reduce_sum.stan @@ -0,0 +1,20 @@ +data { + int N; +} +parameters { + real mu; + real x[N]; +} +model { + function + real partial_sum_closure(real[] slice, int start, int end) { + return normal_lpdf(slice|mu,1); + } + function + real closure_dist_lpdf(real[] slice, int start, int end) { + return normal_lupdf(slice|mu, 1); + } + target += reduce_sum(partial_sum_closure, x, 1); + target += reduce_sum(closure_dist_lpdf, x, 1); + target += reduce_sum(closure_dist_lupdf, x, 1); +} \ No newline at end of file diff --git a/test/integration/good/code-gen/closures/closures6.stan b/test/integration/good/code-gen/closures/rng_and_lpdf.stan similarity index 51% rename from test/integration/good/code-gen/closures/closures6.stan rename to test/integration/good/code-gen/closures/rng_and_lpdf.stan index c17751b1c5..df2d13e2b4 100644 --- a/test/integration/good/code-gen/closures/closures6.stan +++ b/test/integration/good/code-gen/closures/rng_and_lpdf.stan @@ -4,18 +4,18 @@ parameters { } transformed parameters { function - real foo_rng(real x) { + real closure_dist_rng(real x) { return normal_rng(x,1); } function - real foo_lpdf(real y, real x) { + real closure_dist_lpdf(real y, real x) { return normal_lupdf(y|x,1); } } model { - target += foo_lpdf(s|k); - target += foo_lupdf(s|k); + target += closure_dist_lpdf(s|k); + target += closure_dist_lupdf(s|k); } generated quantities { - real m = foo_rng(k); + real m = closure_dist_rng(k); } \ No newline at end of file diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 5ed91c6fd0..219460e0b4 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -143,3 +143,103 @@ sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, } } |}] + +let%expect_test "closure" = + let with_no_loc stmt = + Stmt.Fixed.{pattern= stmt; meta= Locations.no_span_num} + in + let w e = Expr.{Fixed.pattern= e; meta= Typed.Meta.empty} in + { fdrt= None + ; fdname= "sars" + ; fdsuffix= FnPlain + ; fdcaptures= + Some + [(Ref, DataOnly, "x", UMatrix); (Copy, AutoDiffable, "y", URowVector)] + ; fdargs= [] + ; fdbody= + Stmt.Fixed.Pattern.Return + (Some + ( w + @@ FunApp + (StanLib ("add", FnPlain), [w @@ Var "x"; w @@ Lit (Int, "1")]) + )) + |> with_no_loc |> List.return |> Stmt.Fixed.Pattern.Block |> with_no_loc + |> Some + ; fdloc= Location_span.empty } + |> strf "@[%a" pp_fun_def |> print_endline ; + [%expect + {| +template +void +sars_impl__(const T0__& x, const T1__& y, std::ostream* pstream__) ; + +template +class sars_cfunctor__ { + const Eigen::Matrix& x; + stan::capture_type_t, ref__> y; + public: + const size_t vars_count__; + sars_cfunctor__(const sars_cfunctor__&) = default ; + sars_cfunctor__(sars_cfunctor__&&) = default ; + sars_cfunctor__(const Eigen::Matrix& x__, + const Eigen::Matrix& y__) + : x(x__), y(y__), vars_count__(count_vars(x__, y__)) {} + void + operator()(std::ostream* pstream__) const + { + return sars_impl__(x, y, pstream__); + } + + using captured_scalar_t__ = stan::return_type_t; + using ValueOf__ = sars_cfunctor__; + using CopyOf__ = sars_cfunctor__>; + size_t count_vars__() const { + return vars_count__; + } + auto value_of__() const { + return ValueOf__(x, eval(value_of(y))); + } + auto deep_copy_vars__() const { + return CopyOf__(x, eval(deep_copy_vars(y))); + } + void zero_adjoints__() { + stan::math::zero_adjoints(x); + stan::math::zero_adjoints(y); + } + double* accumulate_adjoints__(double *dest) const { + return stan::math::accumulate_adjoints(dest, x, y); + } + stan::math::vari** save_varis__(stan::math::vari **dest) const { + return stan::math::save_varis(dest, x, y); + } + + + }; +template +auto sars_make__(const Eigen::Matrix& x, + const Eigen::Matrix& y) { +return sars_cfunctor__(x, y); +} + +template +void +sars_impl__(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + stan::value_type_t>; + int current_statement__ = 0; + const auto& x = to_ref(x_arg__); + const auto& y = to_ref(y_arg__); + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + return add(x, 1); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} |}] From 15037f43709c1c54e88fdccbe144bb553d6f96f4 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Mon, 19 Jul 2021 16:40:38 +0300 Subject: [PATCH 21/24] use from_lambda more --- src/stan_math_backend/Expression_gen.ml | 11 +- .../good/code-gen/closures/cpp.expected | 100 ++++++++++++------ 2 files changed, 74 insertions(+), 37 deletions(-) diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 31ac27f309..07ba67736b 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -435,8 +435,15 @@ and pp_compiler_internal_fn ad ut f ppf es = in match f with | Internal_fun.FnMakeClosure -> ( - match es with - | {Expr.Fixed.pattern= Lit (Str, implname); _} :: args -> + match (ut, es) with + | ( UnsizedType.UFun (_, _, (FnPlain, _)) + , {Expr.Fixed.pattern= Lit (Str, implname); _} :: args ) -> + let c = if List.is_empty args then "" else "," in + pf ppf + "@[from_lambda([](const auto&... s) { return \ + %s_impl__(s...); }%s@,%a)@]" + implname c (list ~sep:comma pp_expr) args + | _, {Expr.Fixed.pattern= Lit (Str, implname); _} :: args -> gen_fun_app FnPlain ppf (implname ^ "_make__") args | _ -> raise_s diff --git a/test/integration/good/code-gen/closures/cpp.expected b/test/integration/good/code-gen/closures/cpp.expected index f557919723..d80aedf4b2 100644 --- a/test/integration/good/code-gen/closures/cpp.expected +++ b/test/integration/good/code-gen/closures/cpp.expected @@ -387,7 +387,8 @@ class capture_types_model final : public model_base_crtp { } current_statement__ = 1; - auto capture_data = capture_data_L9C9_make__(v, x, y); + auto capture_data = from_lambda([](const auto&... s) { return capture_data_L9C9_impl__(s...); }, + v, x, y); current_statement__ = 16; validate_non_negative_index("pa", "N", N); current_statement__ = 17; @@ -421,7 +422,8 @@ class capture_types_model final : public model_base_crtp { try { current_statement__ = 1; - auto capture_data = capture_data_L9C9_make__(v, x, y); + auto capture_data = from_lambda([](const auto&... s) { return capture_data_L9C9_impl__(s...); }, + v, x, y); local_scalar_t__ p; p = DUMMY_VAR__; @@ -441,7 +443,7 @@ class capture_types_model final : public model_base_crtp { { current_statement__ = 5; - auto capture_data_and_params = capture_data_and_params_L23C9_make__( + auto capture_data_and_params = from_lambda([](const auto&... s) { return capture_data_and_params_L23C9_impl__(s...); }, p, pa, pv, v, x, y); current_statement__ = 6; lp_accum__.add( @@ -496,7 +498,8 @@ class capture_types_model final : public model_base_crtp { try { current_statement__ = 1; - auto capture_data = capture_data_L9C9_make__(v, x, y); + auto capture_data = from_lambda([](const auto&... s) { return capture_data_L9C9_impl__(s...); }, + v, x, y); double p; p = std::numeric_limits::quiet_NaN(); @@ -548,7 +551,8 @@ class capture_types_model final : public model_base_crtp { try { current_statement__ = 1; - auto capture_data = capture_data_L9C9_make__(v, x, y); + auto capture_data = from_lambda([](const auto&... s) { return capture_data_L9C9_impl__(s...); }, + v, x, y); int pos__; pos__ = std::numeric_limits::min(); @@ -1113,7 +1117,8 @@ closure_in_closure_L20C9_impl__(const T0__& s, std::ostream* pstream__) { try { current_statement__ = 13; - auto gar = gar_L22C13_make__(); + auto gar = from_lambda([](const auto&... s) { return gar_L22C13_impl__(s...); } + ); current_statement__ = 14; return gar(pstream__, s); } catch (const std::exception& e) { @@ -1196,10 +1201,11 @@ class capture_types2_model final : public model_base_crtp pos__ = 1; current_statement__ = 1; - auto foo = foo_L3C9_make__(); + auto foo = from_lambda([](const auto&... s) { return foo_L3C9_impl__(s...); } + ); current_statement__ = 2; - auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + auto capture_dataonly_closure = from_lambda([](const auto&... s) { return capture_dataonly_closure_L7C9_impl__(s...); }, foo); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1230,10 +1236,11 @@ class capture_types2_model final : public model_base_crtp try { current_statement__ = 1; - auto foo = foo_L3C9_make__(); + auto foo = from_lambda([](const auto&... s) { return foo_L3C9_impl__(s...); } + ); current_statement__ = 2; - auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + auto capture_dataonly_closure = from_lambda([](const auto&... s) { return capture_dataonly_closure_L7C9_impl__(s...); }, foo); local_scalar_t__ alpha; alpha = DUMMY_VAR__; @@ -1242,10 +1249,12 @@ class capture_types2_model final : public model_base_crtp alpha = in__.template read(); current_statement__ = 4; - auto capture_closure = capture_closure_L16C9_make__(foo); + auto capture_closure = from_lambda([](const auto&... s) { return capture_closure_L16C9_impl__(s...); }, + foo); current_statement__ = 5; - auto closure_in_closure = closure_in_closure_L20C9_make__(); + auto closure_in_closure = from_lambda([](const auto&... s) { return closure_in_closure_L20C9_impl__(s...); } + ); local_scalar_t__ s1; s1 = DUMMY_VAR__; @@ -1297,10 +1306,11 @@ class capture_types2_model final : public model_base_crtp try { current_statement__ = 1; - auto foo = foo_L3C9_make__(); + auto foo = from_lambda([](const auto&... s) { return foo_L3C9_impl__(s...); } + ); current_statement__ = 2; - auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + auto capture_dataonly_closure = from_lambda([](const auto&... s) { return capture_dataonly_closure_L7C9_impl__(s...); }, foo); double alpha; alpha = std::numeric_limits::quiet_NaN(); @@ -1324,9 +1334,11 @@ class capture_types2_model final : public model_base_crtp return ; } current_statement__ = 4; - auto capture_closure = capture_closure_L16C9_make__(foo); + auto capture_closure = from_lambda([](const auto&... s) { return capture_closure_L16C9_impl__(s...); }, + foo); current_statement__ = 5; - auto closure_in_closure = closure_in_closure_L20C9_make__(); + auto closure_in_closure = from_lambda([](const auto&... s) { return closure_in_closure_L20C9_impl__(s...); } + ); current_statement__ = 6; s1 = capture_dataonly_closure(pstream__, 1.0); current_statement__ = 7; @@ -1362,10 +1374,11 @@ class capture_types2_model final : public model_base_crtp try { current_statement__ = 1; - auto foo = foo_L3C9_make__(); + auto foo = from_lambda([](const auto&... s) { return foo_L3C9_impl__(s...); } + ); current_statement__ = 2; - auto capture_dataonly_closure = capture_dataonly_closure_L7C9_make__( + auto capture_dataonly_closure = from_lambda([](const auto&... s) { return capture_dataonly_closure_L7C9_impl__(s...); }, foo); int pos__; pos__ = std::numeric_limits::min(); @@ -1775,7 +1788,8 @@ higher_order_func(const T0__& g, const T1__& x, std::ostream* pstream__) { try { current_statement__ = 7; - auto g2 = g2_L4C13_make__(g, x); + auto g2 = from_lambda([](const auto&... s) { return g2_L4C13_impl__(s...); }, + g, x); current_statement__ = 8; return g2(pstream__, 1.0); } catch (const std::exception& e) { @@ -1908,7 +1922,8 @@ class higher_order_model final : public model_base_crtp { x = higher_order_func(from_lambda(func_functor__()), 2.0, pstream__); current_statement__ = 1; - auto data_closure = data_closure_L16C9_make__(x); + auto data_closure = from_lambda([](const auto&... s) { return data_closure_L16C9_impl__(s...); }, + x); current_statement__ = 6; z = std::numeric_limits::quiet_NaN(); @@ -1943,7 +1958,8 @@ class higher_order_model final : public model_base_crtp { try { current_statement__ = 1; - auto data_closure = data_closure_L16C9_make__(x); + auto data_closure = from_lambda([](const auto&... s) { return data_closure_L16C9_impl__(s...); }, + x); local_scalar_t__ p; p = DUMMY_VAR__; @@ -1951,7 +1967,8 @@ class higher_order_model final : public model_base_crtp { p = in__.template read(); current_statement__ = 3; - auto closure = closure_L26C9_make__(p); + auto closure = from_lambda([](const auto&... s) { return closure_L26C9_impl__(s...); }, + p); local_scalar_t__ w; w = DUMMY_VAR__; @@ -1993,7 +2010,8 @@ class higher_order_model final : public model_base_crtp { try { current_statement__ = 1; - auto data_closure = data_closure_L16C9_make__(x); + auto data_closure = from_lambda([](const auto&... s) { return data_closure_L16C9_impl__(s...); }, + x); double p; p = std::numeric_limits::quiet_NaN(); @@ -2009,7 +2027,8 @@ class higher_order_model final : public model_base_crtp { return ; } current_statement__ = 3; - auto closure = closure_L26C9_make__(p); + auto closure = from_lambda([](const auto&... s) { return closure_L26C9_impl__(s...); }, + p); current_statement__ = 4; w = higher_order_func(closure, 1.0, pstream__); if (emit_transformed_parameters__) { @@ -2039,7 +2058,8 @@ class higher_order_model final : public model_base_crtp { try { current_statement__ = 1; - auto data_closure = data_closure_L16C9_make__(x); + auto data_closure = from_lambda([](const auto&... s) { return data_closure_L16C9_impl__(s...); }, + x); int pos__; pos__ = std::numeric_limits::min(); @@ -2964,7 +2984,8 @@ class higher_order_suffixes_model final : public model_base_crtp>& k, try { current_statement__ = 6; - auto harmonic = harmonic_L4C15_make__(k); + auto harmonic = from_lambda([](const auto&... s) { return harmonic_L4C15_impl__(s...); }, + k); current_statement__ = 7; return ode_rk45(stan::math::ode_closure_adapter(), init, 0, ts, pstream__, harmonic); @@ -4211,7 +4240,8 @@ class reduce_sum_model final : public model_base_crtp { { current_statement__ = 3; - auto partial_sum_closure = partial_sum_closure_L10C9_make__(mu); + auto partial_sum_closure = from_lambda([](const auto&... s) { return partial_sum_closure_L10C9_impl__(s...); }, + mu); current_statement__ = 4; auto closure_dist_lpdf = closure_dist_lpdf_L14C9_make__(mu); From 97df74c0466ce0f6cb554a8993a629394c01c15d Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Tue, 27 Jul 2021 19:56:10 +0300 Subject: [PATCH 22/24] use *_from_lambda() instead of custom closure structs --- src/stan_math_backend/Expression_gen.ml | 44 +++-- src/stan_math_backend/Stan_math_code_gen.ml | 203 +++----------------- 2 files changed, 55 insertions(+), 192 deletions(-) diff --git a/src/stan_math_backend/Expression_gen.ml b/src/stan_math_backend/Expression_gen.ml index 07ba67736b..0ebc54e203 100644 --- a/src/stan_math_backend/Expression_gen.ml +++ b/src/stan_math_backend/Expression_gen.ml @@ -173,9 +173,10 @@ let wrap_fn f = let wrapper = match suffix with | FnPlain -> "from_lambda" - | FnLpdf _ -> "lpdf_from_lambda" + | FnLpdf true -> "lpdf_from_lambda" + | FnLpdf false -> "lpdf_from_lambda" | FnRng -> "rng_from_lambda" - | FnTarget -> "lp_from_lambda" + | FnTarget -> "lp_from_lambda" in { Expr.Fixed.meta= {f.meta with type_= UFun (args, rt, (suffix, true))} ; pattern= FunApp (StanLib (wrapper, FnPlain), [f]) } @@ -436,18 +437,37 @@ and pp_compiler_internal_fn ad ut f ppf es = match f with | Internal_fun.FnMakeClosure -> ( match (ut, es) with - | ( UnsizedType.UFun (_, _, (FnPlain, _)) - , {Expr.Fixed.pattern= Lit (Str, implname); _} :: args ) -> - let c = if List.is_empty args then "" else "," in - pf ppf - "@[from_lambda([](const auto&... s) { return \ - %s_impl__(s...); }%s@,%a)@]" - implname c (list ~sep:comma pp_expr) args - | _, {Expr.Fixed.pattern= Lit (Str, implname); _} :: args -> - gen_fun_app FnPlain ppf (implname ^ "_make__") args + | ( UnsizedType.UFun (args, _, (sfx, _)) + , {Expr.Fixed.pattern= Lit (Str, implname); _} :: captured ) -> ( + let c = if List.is_empty captured then "" else "," in + match sfx with + | FnPlain -> + pf ppf + "@[from_lambda([](const auto&... s) { return \ + %s_impl__(s...); }%s@,%a)@]" + implname c (list ~sep:comma pp_expr) captured + | FnRng -> + let all = + List.range 0 (List.length captured + List.length args) + |> List.map ~f:(strf "s%d") + in + let c1 = if List.is_empty all then "" else "," in + pf ppf + "@[rng_from_lambda([](%a%s@ auto& rng, auto msgs) { \ + return %s_impl__(%a%s rng, msgs); }%s@ %a)@]" + (Fmt.list ~sep:comma (fun ppf -> pf ppf "const auto& %s")) + all c1 implname (list ~sep:comma string) all c1 c + (list ~sep:comma pp_expr) captured + | FnLpdf _ -> + pf ppf + "@[lpdf_from_lambda(%s_pfunctor__()%s@,%a)@]" + implname c (list ~sep:comma pp_expr) captured + | FnTarget -> + pf ppf "@[lp_from_lambda(%s_pfunctor__()%s@,%a)@]" + implname c (list ~sep:comma pp_expr) captured ) | _ -> raise_s - [%message "Missing closure constructor " (es : Expr.Typed.t list)] ) + [%message "Invalid closure constructor " (es : Expr.Typed.t list)] ) | FnMakeArray -> let ut = match ut with diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 0b115db1c5..1a2ea36a67 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -286,6 +286,19 @@ let pp_rs_functor ppf (fdrt, fdsuffix, fdname, fdargs) = raise_s [%message "Ill-formed reduce_sum call! This is a bug in the compiler."] +let pp_propto_functor ppf (fdrt, fdsuffix, fdname, fdargs) = + let extra_args = + match fdsuffix with + | Fun_kind.FnTarget -> ["lp__"; "lp_accum__"; "pstream__"] + | _ -> ["pstream__"] + in + pf ppf "struct %s_pfunctor__ {@,%aconst {@,return %a;@,}@,};@," fdname + (pp_signature fdsuffix false false None) + (fdrt, "operator()", fdargs) + pp_call_str + ( fdname ^ "_impl__" + , List.map ~f:(fun (_, name, _) -> name) fdargs @ extra_args ) + let pp_function_body ppf (fdrt, fdname, fdsuffix, fdargs, fdbody) = let pp_body ppf (Stmt.Fixed.({pattern; _}) as fdbody) = pf ppf "@[using local_scalar_t__ = %a;@]@," pp_promoted_scalar @@ -314,181 +327,6 @@ let pp_function_body ppf (fdrt, fdname, fdsuffix, fdargs, fdbody) = pp_signature fdsuffix true false None ppf (fdrt, fdname, fdargs) ; pp_block ppf (pp_body, fdbody) -let pp_closure ppf (fdrt, fdname, fdsuffix, fdcaptures, fdargs) = - let clsname = fdname ^ "_cfunctor__" in - let templates, ctor_args = get_templates_and_captures fdcaptures in - let pp_member ppf (i, (ref, adlevel, name, type_)) = - let scalar = - if capture_needs_template (ref, adlevel, name, type_) then - sprintf "F%d__" i - else stantype_prim_str type_ - in - let empty = List.is_empty templates in - match ref with - | UnsizedType.Ref -> - pf ppf "const %a& %s;" pp_unsizedtype_custom_scalar (scalar, type_) - name - | UnsizedType.Copy -> - if empty then - pf ppf "%a %s;" pp_unsizedtype_custom_scalar (scalar, type_) name - else - pf ppf "stan::capture_type_t<%a, ref__> %s;" - pp_unsizedtype_custom_scalar (scalar, type_) name - in - let pp_template ppf b = - if not (List.is_empty templates) then ( - if b then pf ppf "template" ; - pf ppf "<@[%a@]>" (list ~sep:comma string) - ( if b then "bool ref__" :: List.map ~f:typename templates - else "ref__" :: templates ) ; - if b then pf ppf "@," ) - in - let pp_types ppf b = - if not (List.is_empty templates) then ( - if b then pf ppf "template" ; - pf ppf "<@[%a@]>" (list ~sep:comma string) - (if b then List.map ~f:typename templates else templates) ; - if b then pf ppf "@," ) - in - let pp_ctor ppf name = - let pp_init ppf (_, _, id, _) = pf ppf "%s(%s__)" id id in - let pp_count ppf () = - if not (List.is_empty fdcaptures) then comma ppf () ; - pf ppf "vars_count__(count_vars(@[%a@]))" (list ~sep:comma string) - (List.map ~f:(fun (_, _, id, _) -> id ^ "__") fdcaptures) - in - pf ppf "%s(const %s%a&) = default ;@ " name name pp_template false ; - pf ppf "%s(%s%a&&) = default ;@ " name name pp_template false ; - pf ppf "%s(@[%a@])@ : @[%a%a {}@]" name - (list ~sep:comma (fun ppf s -> pf ppf "%s__" s)) - ctor_args (list ~sep:comma pp_init) fdcaptures pp_count () - in - let pp_op ppf () = - let scalar_types = - List.mapi fdcaptures ~f:(fun i ((_, _, _, ut) as a) -> - if not (capture_needs_template a) then None - else if UnsizedType.is_fun_type ut then - Some (sprintf "typename F%d__::captured_scalar_t__" i) - else Some (sprintf "F%d__" i) ) - in - let pp_sig = pp_signature fdsuffix false false (Some scalar_types) in - let extra_args = - match fdsuffix with - | FnRng -> ["base_rng__"; "pstream__"] - | FnTarget -> ["lp__"; "lp_accum__"; "pstream__"] - | FnLpdf () | FnPlain -> ["pstream__"] - in - let sfx = - match fdsuffix with - | FnLpdf () | FnTarget -> "_impl__" - | FnPlain | FnRng -> "_impl__" - in - pf ppf "%a const @,{@,return %a;@,}" pp_sig - (fdrt, "operator()", fdargs) - pp_call_str - ( fdname ^ sfx - , List.map - ~f:(fun (_, name, _) -> name) - (Program.captures_to_args fdcaptures @ fdargs) - @ extra_args ) - in - let pp_api ppf () = - let pp_using ppf () = - if List.is_empty templates then ( - pf ppf "using captured_scalar_t__ = double;@," ; - pf ppf "using ValueOf__ = %s;@ " clsname ; - pf ppf "using CopyOf__ = %s;" clsname ) - else ( - pf ppf "using captured_scalar_t__ = stan::return_type_t%a;@," pp_types - false ; - let templates = - List.filter_mapi fdcaptures ~f:(fun i (r, ad, id, ty) -> - if not (capture_needs_template (r, ad, id, ty)) then None - else if UnsizedType.is_fun_type ty then - Some (sprintf "typename F%d__::ValueOf__" i) - else Some "double" ) - in - pf ppf "using ValueOf__ = %s<@[false,@ %a@]>;@ " clsname - (list ~sep:comma string) templates ; - let templates = - List.filter_mapi fdcaptures ~f:(fun i (r, ad, id, ty) -> - if not (capture_needs_template (r, ad, id, ty)) then None - else Some (sprintf "stan::capture_type_t" i) ) - in - pf ppf "using CopyOf__ = %s<@[false,@ %a@]>;" clsname - (list ~sep:comma string) templates ) - in - let pp f = - list ~sep:comma (fun ppf -> function - | _, UnsizedType.DataOnly, id, _ -> pf ppf "%s" id - | _, AutoDiffable, id, _ -> pf ppf "eval(%s(%s))" f id ) - in - let valueof ppf () = - pf ppf "auto value_of__() const {@ return ValueOf__(@[%a@]);@ }" - (pp "value_of") fdcaptures - in - let deepcopy ppf () = - pf ppf - "auto deep_copy_vars__() const {@ return CopyOf__(@[%a@]);@ }" - (pp "deep_copy_vars") fdcaptures - in - let zeros ppf () = - pf ppf "void zero_adjoints__() {@ @[%a@]@ }" - (list ~sep:cut (fun ppf (_, _, id, _) -> - pf ppf "stan::math::zero_adjoints(@[%s@]);" id )) - fdcaptures - in - let pp = list ~sep:comma (fun ppf (_, _, id, _) -> string ppf id) in - let comma ppf () = if not (List.is_empty fdcaptures) then comma ppf () in - let accumulate ppf () = - pf ppf - "double* accumulate_adjoints__(double *dest) const {@ return \ - stan::math::accumulate_adjoints(@[dest%a%a@]);@ }" - comma () pp fdcaptures - in - let save ppf () = - pf ppf - "stan::math::vari** save_varis__(stan::math::vari **dest) const {@ \ - return stan::math::save_varis(@[dest%a%a@]);@ }" - comma () pp fdcaptures - in - let count ppf () = - pf ppf "size_t count_vars__() const {@ return vars_count__;@ }" - in - let pp_lpdf ppf () = - if fdsuffix = FnLpdf () then - pf ppf - "template@ auto with_propto() {@ return \ - stan::math::lpdf_wrapper<@[propto, %s%a, true@]>(*this);@ }@ \ - auto copy_of__() {@ return CopyOf__(@[%a@]);@ }" - clsname pp_template false (list ~sep:comma string) - (List.map ~f:(fun (_, _, x, _) -> x) fdcaptures) - in - pf ppf "@ @[%a@ %a@ %a@ %a@ %a@ %a@ %a@ %a@]@ " pp_using () count () - valueof () deepcopy () zeros () accumulate () save () pp_lpdf () ; - () - in - pf ppf - "@,@,%a@[class %s {@,@[%a@]@,public:@,const size_t vars_count__;@ \ - %a@ %a@ %a@ @]};@," - pp_template true clsname (list ~sep:cut pp_member) - (List.mapi ~f:(fun i a -> (i, a)) fdcaptures) - pp_ctor clsname pp_op () pp_api () ; - let pp_make_template ppf () = - if not (List.is_empty templates) then - pf ppf "template<%a>@ " (list ~sep:comma string) - (List.map ~f:typename templates) - in - let pp_types ppf () = - if not (List.is_empty templates) then - pf ppf "<%a>" (list ~sep:comma string) ("false" :: templates) - in - pf ppf - "@[%aauto %s_make__(@[%a@]) {@ return %s%a(@[%a@]);@ }@]@," - pp_make_template () fdname (list ~sep:comma string) ctor_args clsname - pp_types () (list ~sep:comma string) - (List.map ~f:(fun (_, _, id, _) -> id) fdcaptures) - let pp_forward_decl funs_used_in_reduce_sum ppf Program.({fdrt; fdname; fdsuffix; fdcaptures; fdargs; fdbody; _}) = let pp_sig = pp_signature fdsuffix false false None in @@ -504,10 +342,13 @@ let pp_forward_decl funs_used_in_reduce_sum ppf pp_call_str ( (if fdsuffix = FnLpdf () then fdname ^ "" else fdname) , List.map ~f:(fun (_, name, _) -> name) fdargs @ ["pstream__"] ) ) - | Some captures -> - pf ppf "%a ;" pp_sig - (fdrt, fdname ^ "_impl__", Program.captures_to_args captures @ fdargs) ; - pp_closure ppf (fdrt, fdname, fdsuffix, captures, fdargs) + | Some captures -> ( + let all_args = Program.captures_to_args captures @ fdargs in + pf ppf "%a ;" pp_sig (fdrt, fdname ^ "_impl__", all_args) ; + match fdsuffix with + | FnPlain | FnRng -> () + | FnTarget | FnLpdf _ -> + pp_propto_functor ppf (fdrt, fdsuffix, fdname, all_args) ) let get_impl = function | {Program.fdbody= None; _} -> None @@ -624,6 +465,7 @@ let pp_ctor ppf p = pp_block ppf ( (fun ppf {Program.prog_name; prepare_data; output_vars; _} -> pf ppf "int current_statement__ = 0;@ " ; + pf ppf "static constexpr bool propto__ = true;@ (void) propto__;@ " ; pf ppf "using local_scalar_t__ = double ;@ " ; pf ppf "boost::ecuyer1988 base_rng__ = @ " ; pf ppf " stan::services::util::create_rng(random_seed__, 0);@ " ; @@ -909,7 +751,8 @@ let pp_transform_inits ppf {Program.transform_inits; _} = pf ppf "using local_scalar_t__ = \ double;@,vars__.clear();@,vars__.reserve(num_params_r__);@ int \ - current_statement__ = 0; " + current_statement__ = 0;@ static constexpr bool propto__ = true;@ \ + (void) propto__; " in let cv_attr = ["const"] in pp_method_b ppf "void" "transform_inits_impl" params intro transform_inits From c20d1554878bb80dc7b567a20ed3f9971a024c95 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Tue, 27 Jul 2021 20:42:16 +0300 Subject: [PATCH 23/24] dune promote --- .../cli-args/filename_good.expected | 6 +- test/integration/good/code-gen/cl.expected | 6 +- .../good/code-gen/closures/cpp.expected | 1306 ++--------------- test/integration/good/code-gen/cpp.expected | 96 +- .../good/code-gen/expressions/cpp.expected | 6 +- .../good/code-gen/ode/cpp.expected | 6 +- .../good/code-gen/opencl/cpp.expected | 12 +- .../good/code-gen/profiling/cpp.expected | 6 +- .../good/code-gen/reduce_sum/cpp.expected | 24 +- .../good/compiler-optimizations/cpp.expected | 156 +- test/unit/Stan_math_code_gen_tests.ml | 50 - 11 files changed, 397 insertions(+), 1277 deletions(-) diff --git a/test/integration/cli-args/filename_good.expected b/test/integration/cli-args/filename_good.expected index fa91bba2f1..5c3cac290c 100644 --- a/test/integration/cli-args/filename_good.expected +++ b/test/integration/cli-args/filename_good.expected @@ -46,6 +46,8 @@ class filename_good_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -152,7 +154,9 @@ class filename_good_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; diff --git a/test/integration/good/code-gen/cl.expected b/test/integration/good/code-gen/cl.expected index bdc9ab4e8e..3a40930e9d 100644 --- a/test/integration/good/code-gen/cl.expected +++ b/test/integration/good/code-gen/cl.expected @@ -288,6 +288,8 @@ class optimize_glm_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -1396,7 +1398,9 @@ class optimize_glm_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; diff --git a/test/integration/good/code-gen/closures/cpp.expected b/test/integration/good/code-gen/closures/cpp.expected index d80aedf4b2..cd957f24bc 100644 --- a/test/integration/good/code-gen/closures/cpp.expected +++ b/test/integration/good/code-gen/closures/cpp.expected @@ -56,58 +56,6 @@ stan::value_type_t> capture_data_L9C9_impl__(const T0__& v, const double& x, const std::vector& y, const T3__& z, const T4__& r, std::ostream* pstream__) ; - -class capture_data_L9C9_cfunctor__ { - const Eigen::Matrix& v; - double x; - const std::vector& y; - public: - const size_t vars_count__; - capture_data_L9C9_cfunctor__(const capture_data_L9C9_cfunctor__&) = default ; - capture_data_L9C9_cfunctor__(capture_data_L9C9_cfunctor__&&) = default ; - capture_data_L9C9_cfunctor__(const Eigen::Matrix& v__, - const double& x__, - const std::vector& y__) - : v(v__), x(x__), y(y__), vars_count__(count_vars(v__, x__, y__)) {} - template - stan::promote_args_t> - operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const - { - return capture_data_L9C9_impl__(v, x, y, z, r, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = capture_data_L9C9_cfunctor__; - using CopyOf__ = capture_data_L9C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(v, x, y); - } - auto deep_copy_vars__() const { - return CopyOf__(v, x, y); - } - void zero_adjoints__() { - stan::math::zero_adjoints(v); - stan::math::zero_adjoints(x); - stan::math::zero_adjoints(y); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, v, x, y); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, v, x, y); - } - - - }; -auto capture_data_L9C9_make__(const Eigen::Matrix& v, - const double& x, const std::vector& y) { -return capture_data_L9C9_cfunctor__(v, x, y); -} - template stan::promote_args_t, @@ -120,88 +68,6 @@ capture_data_and_params_L23C9_impl__(const T0__& p, const std::vector& y, const T6__& z, const T7__& r, std::ostream* pstream__) ; - -template -class capture_data_and_params_L23C9_cfunctor__ { - stan::capture_type_t p; - stan::capture_type_t, ref__> pa; - stan::capture_type_t, ref__> pv; - const Eigen::Matrix& v; - stan::capture_type_t x; - const std::vector& y; - public: - const size_t vars_count__; - capture_data_and_params_L23C9_cfunctor__(const capture_data_and_params_L23C9_cfunctor__< - ref__, F0__, F1__, F2__>&) = default ; - capture_data_and_params_L23C9_cfunctor__(capture_data_and_params_L23C9_cfunctor__< - ref__, F0__, F1__, F2__>&&) = default ; - capture_data_and_params_L23C9_cfunctor__(const F0__& p__, - const std::vector& pa__, - const Eigen::Matrix& pv__, - const Eigen::Matrix& v__, - const double& x__, - const std::vector& y__) - : p(p__), pa(pa__), pv(pv__), v(v__), x(x__), y(y__), - vars_count__(count_vars(p__, pa__, pv__, v__, x__, y__)) {} - template - stan::promote_args_t> - operator()(std::ostream* pstream__, const T0__& z, const T1__& r) const - { - return capture_data_and_params_L23C9_impl__(p, pa, pv, v, x, y, z, r, - pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = capture_data_and_params_L23C9_cfunctor__; - using CopyOf__ = capture_data_and_params_L23C9_cfunctor__, - stan::capture_type_t, - stan::capture_type_t>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(p)), eval(value_of(pa)), eval(value_of(pv)), - v, x, y); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(p)), eval(deep_copy_vars(pa)), - eval(deep_copy_vars(pv)), v, x, y); - } - void zero_adjoints__() { - stan::math::zero_adjoints(p); - stan::math::zero_adjoints(pa); - stan::math::zero_adjoints(pv); - stan::math::zero_adjoints(v); - stan::math::zero_adjoints(x); - stan::math::zero_adjoints(y); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, p, pa, pv, v, x, y); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, p, pa, pv, v, x, y); - } - - - }; -template -auto capture_data_and_params_L23C9_make__(const F0__& p, - const std::vector& pa, - const Eigen::Matrix& pv, - const Eigen::Matrix& v, - const double& x, - const std::vector& y) { -return capture_data_and_params_L23C9_cfunctor__(p, pa, pv, v, x, y); -} - template stan::promote_args_t, T3__, stan::value_type_t> @@ -326,6 +192,8 @@ class capture_types_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -546,7 +414,9 @@ class capture_types_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { @@ -811,256 +681,20 @@ stan::promote_args_t capture_closure_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; - -template -class capture_closure_L16C9_cfunctor__ { - stan::capture_type_t foo; - public: - const size_t vars_count__; - capture_closure_L16C9_cfunctor__(const capture_closure_L16C9_cfunctor__< - ref__, F0__>&) = default ; - capture_closure_L16C9_cfunctor__(capture_closure_L16C9_cfunctor__&&) = default ; - capture_closure_L16C9_cfunctor__(const F0__& foo__) - : foo(foo__), vars_count__(count_vars(foo__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return capture_closure_L16C9_impl__(foo, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = capture_closure_L16C9_cfunctor__; - using CopyOf__ = capture_closure_L16C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(foo))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(foo))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(foo); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, foo); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, foo); - } - - - }; -template -auto capture_closure_L16C9_make__(const F0__& foo) { -return capture_closure_L16C9_cfunctor__(foo); -} - template stan::promote_args_t capture_dataonly_closure_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; - -template -class capture_dataonly_closure_L7C9_cfunctor__ { - stan::capture_type_t foo; - public: - const size_t vars_count__; - capture_dataonly_closure_L7C9_cfunctor__(const capture_dataonly_closure_L7C9_cfunctor__< - ref__, F0__>&) = default ; - capture_dataonly_closure_L7C9_cfunctor__(capture_dataonly_closure_L7C9_cfunctor__< - ref__, F0__>&&) = default ; - capture_dataonly_closure_L7C9_cfunctor__(const F0__& foo__) - : foo(foo__), vars_count__(count_vars(foo__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return capture_dataonly_closure_L7C9_impl__(foo, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = capture_dataonly_closure_L7C9_cfunctor__; - using CopyOf__ = capture_dataonly_closure_L7C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(foo))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(foo))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(foo); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, foo); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, foo); - } - - - }; -template -auto capture_dataonly_closure_L7C9_make__(const F0__& foo) { -return capture_dataonly_closure_L7C9_cfunctor__(foo); -} - template stan::promote_args_t closure_in_closure_L20C9_impl__(const T0__& s, std::ostream* pstream__) ; - -class closure_in_closure_L20C9_cfunctor__ { - - public: - const size_t vars_count__; - closure_in_closure_L20C9_cfunctor__(const closure_in_closure_L20C9_cfunctor__&) = default ; - closure_in_closure_L20C9_cfunctor__(closure_in_closure_L20C9_cfunctor__&&) = default ; - closure_in_closure_L20C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& s) const - { - return closure_in_closure_L20C9_impl__(s, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = closure_in_closure_L20C9_cfunctor__; - using CopyOf__ = closure_in_closure_L20C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto closure_in_closure_L20C9_make__() { -return closure_in_closure_L20C9_cfunctor__(); -} - template stan::promote_args_t foo_L3C9_impl__(const T0__& x, std::ostream* pstream__) ; - -class foo_L3C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_L3C9_cfunctor__(const foo_L3C9_cfunctor__&) = default ; - foo_L3C9_cfunctor__(foo_L3C9_cfunctor__&&) = default ; - foo_L3C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return foo_L3C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_L3C9_cfunctor__; - using CopyOf__ = foo_L3C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_L3C9_make__() { -return foo_L3C9_cfunctor__(); -} - template stan::promote_args_t gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) ; - -class gar_L22C13_cfunctor__ { - - public: - const size_t vars_count__; - gar_L22C13_cfunctor__(const gar_L22C13_cfunctor__&) = default ; - gar_L22C13_cfunctor__(gar_L22C13_cfunctor__&&) = default ; - gar_L22C13_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& b) const - { - return gar_L22C13_impl__(b, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = gar_L22C13_cfunctor__; - using CopyOf__ = gar_L22C13_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto gar_L22C13_make__() { -return gar_L22C13_cfunctor__(); -} - template stan::promote_args_t @@ -1186,6 +820,8 @@ class capture_types2_model final : public model_base_crtp unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -1369,7 +1005,9 @@ class capture_types2_model final : public model_base_crtp using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { @@ -1617,163 +1255,15 @@ template stan::promote_args_t closure_L26C9_impl__(const T0__& p, const T1__& y, std::ostream* pstream__) ; - -template -class closure_L26C9_cfunctor__ { - stan::capture_type_t p; - public: - const size_t vars_count__; - closure_L26C9_cfunctor__(const closure_L26C9_cfunctor__&) = default ; - closure_L26C9_cfunctor__(closure_L26C9_cfunctor__&&) = default ; - closure_L26C9_cfunctor__(const F0__& p__) - : p(p__), vars_count__(count_vars(p__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return closure_L26C9_impl__(p, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = closure_L26C9_cfunctor__; - using CopyOf__ = closure_L26C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(p))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(p))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(p); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, p); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, p); - } - - - }; -template -auto closure_L26C9_make__(const F0__& p) { -return closure_L26C9_cfunctor__(p); -} - template stan::promote_args_t data_closure_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; - -class data_closure_L16C9_cfunctor__ { - double x; - public: - const size_t vars_count__; - data_closure_L16C9_cfunctor__(const data_closure_L16C9_cfunctor__&) = default ; - data_closure_L16C9_cfunctor__(data_closure_L16C9_cfunctor__&&) = default ; - data_closure_L16C9_cfunctor__(const double& x__) - : x(x__), vars_count__(count_vars(x__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return data_closure_L16C9_impl__(x, y, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = data_closure_L16C9_cfunctor__; - using CopyOf__ = data_closure_L16C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(x); - } - auto deep_copy_vars__() const { - return CopyOf__(x); - } - void zero_adjoints__() { - stan::math::zero_adjoints(x); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, x); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, x); - } - - - }; -auto data_closure_L16C9_make__(const double& x) { -return data_closure_L16C9_cfunctor__(x); -} - template stan::promote_args_t g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, std::ostream* pstream__) ; - -template -class g2_L4C13_cfunctor__ { - stan::capture_type_t g; - stan::capture_type_t x; - public: - const size_t vars_count__; - g2_L4C13_cfunctor__(const g2_L4C13_cfunctor__&) = default ; - g2_L4C13_cfunctor__(g2_L4C13_cfunctor__&&) = default ; - g2_L4C13_cfunctor__(const F0__& g__, const F1__& x__) - : g(g__), x(x__), vars_count__(count_vars(g__, x__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y) const - { - return g2_L4C13_impl__(g, x, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = g2_L4C13_cfunctor__; - using CopyOf__ = g2_L4C13_cfunctor__, - stan::capture_type_t>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(g)), eval(value_of(x))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(g)), eval(deep_copy_vars(x))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(g); - stan::math::zero_adjoints(x); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, g, x); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, g, x); - } - - - }; -template -auto g2_L4C13_make__(const F0__& g, const F1__& x) { -return g2_L4C13_cfunctor__(g, x); -} - template stan::promote_args_t @@ -1902,6 +1392,8 @@ class higher_order_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -2053,7 +1545,9 @@ class higher_order_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { @@ -2325,405 +1819,68 @@ return ff_lp(x, pstream__); template stan::promote_args_t f2_L35C9_impl__(const T0__& x, std::ostream* pstream__) ; - -class f2_L35C9_cfunctor__ { - - public: - const size_t vars_count__; - f2_L35C9_cfunctor__(const f2_L35C9_cfunctor__&) = default ; - f2_L35C9_cfunctor__(f2_L35C9_cfunctor__&&) = default ; - f2_L35C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return f2_L35C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f2_L35C9_cfunctor__; - using CopyOf__ = f2_L35C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f2_L35C9_make__() { -return f2_L35C9_cfunctor__(); -} - template stan::promote_args_t -f3_lpdf_L39C9_impl__(const T0__& x, std::ostream* pstream__) ; - -class f3_lpdf_L39C9_cfunctor__ { - - public: - const size_t vars_count__; - f3_lpdf_L39C9_cfunctor__(const f3_lpdf_L39C9_cfunctor__&) = default ; - f3_lpdf_L39C9_cfunctor__(f3_lpdf_L39C9_cfunctor__&&) = default ; - f3_lpdf_L39C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& x) const - { - return f3_lpdf_L39C9_impl__(x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f3_lpdf_L39C9_cfunctor__; - using CopyOf__ = f3_lpdf_L39C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto f3_lpdf_L39C9_make__() { -return f3_lpdf_L39C9_cfunctor__(); +f3_lpdf_L39C9_impl__(const T0__& x, std::ostream* pstream__) ;struct f3_lpdf_L39C9_pfunctor__ { +template +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const { +return f3_lpdf_L39C9_impl__(x, pstream__); } +}; template stan::promote_args_t f4_rng_L43C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; - -class f4_rng_L43C9_cfunctor__ { - - public: - const size_t vars_count__; - f4_rng_L43C9_cfunctor__(const f4_rng_L43C9_cfunctor__&) = default ; - f4_rng_L43C9_cfunctor__(f4_rng_L43C9_cfunctor__&&) = default ; - f4_rng_L43C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const - { - return f4_rng_L43C9_impl__(x, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f4_rng_L43C9_cfunctor__; - using CopyOf__ = f4_rng_L43C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f4_rng_L43C9_make__() { -return f4_rng_L43C9_cfunctor__(); -} - template stan::promote_args_t f5_lp_L47C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ; - -class f5_lp_L47C9_cfunctor__ { - - public: - const size_t vars_count__; - f5_lp_L47C9_cfunctor__(const f5_lp_L47C9_cfunctor__&) = default ; - f5_lp_L47C9_cfunctor__(f5_lp_L47C9_cfunctor__&&) = default ; - f5_lp_L47C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, - const T0__& x) const - { - return f5_lp_L47C9_impl__(x, lp__, lp_accum__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = f5_lp_L47C9_cfunctor__; - using CopyOf__ = f5_lp_L47C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto f5_lp_L47C9_make__() { -return f5_lp_L47C9_cfunctor__(); + std::ostream* pstream__) ;struct f5_lp_L47C9_pfunctor__ { +template +stan::promote_args_t +operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { +return f5_lp_L47C9_impl__(x, lp__, lp_accum__, pstream__); } +}; template stan::promote_args_t foo_lp_L31C9_impl__(const T0__& bar_lp, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) ; - -class foo_lp_L31C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_lp_L31C9_cfunctor__(const foo_lp_L31C9_cfunctor__&) = default ; - foo_lp_L31C9_cfunctor__(foo_lp_L31C9_cfunctor__&&) = default ; - foo_lp_L31C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__, - const T0__& bar_lp) const - { - return foo_lp_L31C9_impl__(bar_lp, lp__, lp_accum__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_lp_L31C9_cfunctor__; - using CopyOf__ = foo_lp_L31C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_lp_L31C9_make__() { -return foo_lp_L31C9_cfunctor__(); + T_lp_accum__& lp_accum__, std::ostream* pstream__) ;struct foo_lp_L31C9_pfunctor__ { +template +stan::promote_args_t +operator()(const T0__& bar_lp, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { +return foo_lp_L31C9_impl__(bar_lp, lp__, lp_accum__, pstream__); } +}; template stan::promote_args_t foo_lpdf_L27C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) ; - -class foo_lpdf_L27C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_lpdf_L27C9_cfunctor__(const foo_lpdf_L27C9_cfunctor__&) = default ; - foo_lpdf_L27C9_cfunctor__(foo_lpdf_L27C9_cfunctor__&&) = default ; - foo_lpdf_L27C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t +stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& zz, const T1__& bar_lpdf) const - { - return foo_lpdf_L27C9_impl__(zz, bar_lpdf, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_lpdf_L27C9_cfunctor__; - using CopyOf__ = foo_lpdf_L27C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto foo_lpdf_L27C9_make__() { -return foo_lpdf_L27C9_cfunctor__(); +operator()(const T0__& zz, const T1__& bar_lpdf, std::ostream* pstream__) const { +return foo_lpdf_L27C9_impl__(zz, bar_lpdf, pstream__); } +}; template stan::promote_args_t foo_rng_L23C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, std::ostream* pstream__) ; - -class foo_rng_L23C9_cfunctor__ { - - public: - const size_t vars_count__; - foo_rng_L23C9_cfunctor__(const foo_rng_L23C9_cfunctor__&) = default ; - foo_rng_L23C9_cfunctor__(foo_rng_L23C9_cfunctor__&&) = default ; - foo_rng_L23C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& bar_lpdf) const - { - return foo_rng_L23C9_impl__(bar_lpdf, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = foo_rng_L23C9_cfunctor__; - using CopyOf__ = foo_rng_L23C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto foo_rng_L23C9_make__() { -return foo_rng_L23C9_cfunctor__(); -} - template void hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, std::ostream* pstream__) ; - -class hof_L17C9_cfunctor__ { - - public: - const size_t vars_count__; - hof_L17C9_cfunctor__(const hof_L17C9_cfunctor__&) = default ; - hof_L17C9_cfunctor__(hof_L17C9_cfunctor__&&) = default ; - hof_L17C9_cfunctor__() - : vars_count__(count_vars()) {} - template - void - operator()(std::ostream* pstream__, const T0__& s_rng, const T1__& s_lpdf, - const T2__& s_lp) const - { - return hof_L17C9_impl__(s_rng, s_lpdf, s_lp, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = hof_L17C9_cfunctor__; - using CopyOf__ = hof_L17C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto hof_L17C9_make__() { -return hof_L17C9_cfunctor__(); -} - template stan::promote_args_t ff_lpdf(const T0__& x, std::ostream* pstream__) { @@ -2969,6 +2126,8 @@ class higher_order_suffixes_model final : public model_base_crtp(ff_lpdf_functor__()), + lp_from_lambda(ff_lp_functor__())); current_statement__ = 2; - auto foo_rng = foo_rng_L23C9_make__(); + auto foo_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return foo_rng_L23C9_impl__(s0, rng, msgs); } + ); current_statement__ = 3; - auto foo_lpdf = foo_lpdf_L27C9_make__(); + auto foo_lpdf = lpdf_from_lambda(foo_lpdf_L27C9_pfunctor__()); current_statement__ = 4; - auto foo_lp = foo_lp_L31C9_make__(); + auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); current_statement__ = 5; auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } ); current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L39C9_make__(); + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); current_statement__ = 7; - auto f4_rng = f4_rng_L43C9_make__(); + auto f4_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + ); current_statement__ = 8; - auto f5_lp = f5_lp_L47C9_make__(); + auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); current_statement__ = 12; z = std::numeric_limits::quiet_NaN(); @@ -3051,26 +2214,30 @@ class higher_order_suffixes_model final : public model_base_crtp(foo_lpdf_L27C9_pfunctor__()); current_statement__ = 4; - auto foo_lp = foo_lp_L31C9_make__(); + auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); current_statement__ = 5; auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } ); current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L39C9_make__(); + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); current_statement__ = 7; - auto f4_rng = f4_rng_L43C9_make__(); + auto f4_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + ); current_statement__ = 8; - auto f5_lp = f5_lp_L47C9_make__(); + auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); local_scalar_t__ s; s = DUMMY_VAR__; @@ -3123,26 +2290,30 @@ class higher_order_suffixes_model final : public model_base_crtp(foo_lpdf_L27C9_pfunctor__()); current_statement__ = 4; - auto foo_lp = foo_lp_L31C9_make__(); + auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); current_statement__ = 5; auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } ); current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L39C9_make__(); + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); current_statement__ = 7; - auto f4_rng = f4_rng_L43C9_make__(); + auto f4_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + ); current_statement__ = 8; - auto f5_lp = f5_lp_L47C9_make__(); + auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); double s; s = std::numeric_limits::quiet_NaN(); @@ -3175,7 +2346,9 @@ class higher_order_suffixes_model final : public model_base_crtp(foo_lpdf_L27C9_pfunctor__()); current_statement__ = 4; - auto foo_lp = foo_lp_L31C9_make__(); + auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); current_statement__ = 5; auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } ); current_statement__ = 6; - auto f3_lpdf = f3_lpdf_L39C9_make__(); + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); current_statement__ = 7; - auto f4_rng = f4_rng_L43C9_make__(); + auto f4_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + ); current_statement__ = 8; - auto f5_lp = f5_lp_L47C9_make__(); + auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); int pos__; pos__ = std::numeric_limits::min(); @@ -3414,55 +2591,6 @@ Eigen::Matrix>, -1, 1> harmonic_L4C15_impl__(const std::vector>& k, const T1__& t, const T2__& y, std::ostream* pstream__) ; - -template -class harmonic_L4C15_cfunctor__ { - stan::capture_type_t>, ref__> k; - public: - const size_t vars_count__; - harmonic_L4C15_cfunctor__(const harmonic_L4C15_cfunctor__&) = default ; - harmonic_L4C15_cfunctor__(harmonic_L4C15_cfunctor__&&) = default ; - harmonic_L4C15_cfunctor__(const std::vector>& k__) - : k(k__), vars_count__(count_vars(k__)) {} - template - Eigen::Matrix>, -1, 1> - operator()(std::ostream* pstream__, const T0__& t, const T1__& y) const - { - return harmonic_L4C15_impl__(k, t, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = harmonic_L4C15_cfunctor__; - using CopyOf__ = harmonic_L4C15_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(k))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(k))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(k); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, k); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, k); - } - - - }; -template -auto harmonic_L4C15_make__(const std::vector>& k) { -return harmonic_L4C15_cfunctor__(k); -} - template std::vector, T2__>, -1, 1>> @@ -3538,6 +2666,8 @@ class ode_rk45_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -3697,7 +2827,9 @@ class ode_rk45_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -3994,66 +3126,16 @@ T1__> closure_dist_lpdf_L14C9_impl__(const T0__& mu, const std::vector& slice, const int& start, const int& end, - std::ostream* pstream__) ; - -template -class closure_dist_lpdf_L14C9_cfunctor__ { - stan::capture_type_t mu; - public: - const size_t vars_count__; - closure_dist_lpdf_L14C9_cfunctor__(const closure_dist_lpdf_L14C9_cfunctor__< - ref__, F0__>&) = default ; - closure_dist_lpdf_L14C9_cfunctor__(closure_dist_lpdf_L14C9_cfunctor__< - ref__, F0__>&&) = default ; - closure_dist_lpdf_L14C9_cfunctor__(const F0__& mu__) - : mu(mu__), vars_count__(count_vars(mu__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const std::vector& slice, - const int& start, const int& end) const - { - return closure_dist_lpdf_L14C9_impl__(mu, slice, start, end, - pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = closure_dist_lpdf_L14C9_cfunctor__; - using CopyOf__ = closure_dist_lpdf_L14C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(mu))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(mu))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(mu); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, mu); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, mu); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper, true>(*this); - } - auto copy_of__() { - return CopyOf__(mu); - } - - }; -template -auto closure_dist_lpdf_L14C9_make__(const F0__& mu) { -return closure_dist_lpdf_L14C9_cfunctor__(mu); + std::ostream* pstream__) ;struct closure_dist_lpdf_L14C9_pfunctor__ { +template +stan::promote_args_t +operator()(const T0__& mu, const std::vector& slice, const int& start, + const int& end, std::ostream* pstream__) const { +return closure_dist_lpdf_L14C9_impl__(mu, slice, start, end, + pstream__); } +}; template stan::promote_args_t& slice, const int& start, const int& end, std::ostream* pstream__) ; - -template -class partial_sum_closure_L10C9_cfunctor__ { - stan::capture_type_t mu; - public: - const size_t vars_count__; - partial_sum_closure_L10C9_cfunctor__(const partial_sum_closure_L10C9_cfunctor__< - ref__, F0__>&) = default ; - partial_sum_closure_L10C9_cfunctor__(partial_sum_closure_L10C9_cfunctor__< - ref__, F0__>&&) = default ; - partial_sum_closure_L10C9_cfunctor__(const F0__& mu__) - : mu(mu__), vars_count__(count_vars(mu__)) {} - template - stan::promote_args_t - operator()(std::ostream* pstream__, const std::vector& slice, - const int& start, const int& end) const - { - return partial_sum_closure_L10C9_impl__(mu, slice, start, end, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = partial_sum_closure_L10C9_cfunctor__; - using CopyOf__ = partial_sum_closure_L10C9_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(eval(value_of(mu))); - } - auto deep_copy_vars__() const { - return CopyOf__(eval(deep_copy_vars(mu))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(mu); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, mu); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, mu); - } - - - }; -template -auto partial_sum_closure_L10C9_make__(const F0__& mu) { -return partial_sum_closure_L10C9_cfunctor__(mu); -} - template stan::promote_args_t @@ -4178,6 +3208,8 @@ class reduce_sum_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -4244,7 +3276,8 @@ class reduce_sum_model final : public model_base_crtp { mu); current_statement__ = 4; - auto closure_dist_lpdf = closure_dist_lpdf_L14C9_make__(mu); + auto closure_dist_lpdf = lpdf_from_lambda(closure_dist_lpdf_L14C9_pfunctor__(), + mu); current_statement__ = 5; lp_accum__.add( reduce_sum(x, 1, pstream__, @@ -4329,7 +3362,9 @@ class reduce_sum_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -4548,106 +3583,19 @@ template stan::promote_args_t closure_dist_lpdf_L11C9_impl__(const T0__& y, const T1__& x, - std::ostream* pstream__) ; - -class closure_dist_lpdf_L11C9_cfunctor__ { - - public: - const size_t vars_count__; - closure_dist_lpdf_L11C9_cfunctor__(const closure_dist_lpdf_L11C9_cfunctor__&) = default ; - closure_dist_lpdf_L11C9_cfunctor__(closure_dist_lpdf_L11C9_cfunctor__&&) = default ; - closure_dist_lpdf_L11C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t +stan::promote_args_t - operator()(std::ostream* pstream__, const T0__& y, const T1__& x) const - { - return closure_dist_lpdf_L11C9_impl__(y, x, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = closure_dist_lpdf_L11C9_cfunctor__; - using CopyOf__ = closure_dist_lpdf_L11C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - template - auto with_propto() { - return stan::math::lpdf_wrapper(*this); - } - auto copy_of__() { - return CopyOf__(); - } - - }; -auto closure_dist_lpdf_L11C9_make__() { -return closure_dist_lpdf_L11C9_cfunctor__(); +operator()(const T0__& y, const T1__& x, std::ostream* pstream__) const { +return closure_dist_lpdf_L11C9_impl__(y, x, pstream__); } +}; template stan::promote_args_t closure_dist_rng_L7C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; - -class closure_dist_rng_L7C9_cfunctor__ { - - public: - const size_t vars_count__; - closure_dist_rng_L7C9_cfunctor__(const closure_dist_rng_L7C9_cfunctor__&) = default ; - closure_dist_rng_L7C9_cfunctor__(closure_dist_rng_L7C9_cfunctor__&&) = default ; - closure_dist_rng_L7C9_cfunctor__() - : vars_count__(count_vars()) {} - template - stan::promote_args_t - operator()(RNG& base_rng__, std::ostream* pstream__, const T0__& x) const - { - return closure_dist_rng_L7C9_impl__(x, base_rng__, pstream__); - } - - using captured_scalar_t__ = double; - using ValueOf__ = closure_dist_rng_L7C9_cfunctor__; - using CopyOf__ = closure_dist_rng_L7C9_cfunctor__; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(); - } - auto deep_copy_vars__() const { - return CopyOf__(); - } - void zero_adjoints__() { - - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest); - } - - - }; -auto closure_dist_rng_L7C9_make__() { -return closure_dist_rng_L7C9_cfunctor__(); -} - template stan::promote_args_t @@ -4707,6 +3655,8 @@ class rng_and_lpdf_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -4759,10 +3709,13 @@ class rng_and_lpdf_model final : public model_base_crtp { k = in__.template read(); current_statement__ = 3; - auto closure_dist_rng = closure_dist_rng_L7C9_make__(); + auto closure_dist_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return closure_dist_rng_L7C9_impl__(s0, rng, msgs); } + ); current_statement__ = 4; - auto closure_dist_lpdf = closure_dist_lpdf_L11C9_make__(); + auto closure_dist_lpdf = lpdf_from_lambda(closure_dist_lpdf_L11C9_pfunctor__() + ); { current_statement__ = 6; lp_accum__.add( @@ -4824,9 +3777,12 @@ class rng_and_lpdf_model final : public model_base_crtp { return ; } current_statement__ = 3; - auto closure_dist_rng = closure_dist_rng_L7C9_make__(); + auto closure_dist_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return closure_dist_rng_L7C9_impl__(s0, rng, msgs); } + ); current_statement__ = 4; - auto closure_dist_lpdf = closure_dist_lpdf_L11C9_make__(); + auto closure_dist_lpdf = lpdf_from_lambda(closure_dist_lpdf_L11C9_pfunctor__() + ); if (logical_negation(emit_generated_quantities__)) { return ; } @@ -4852,7 +3808,9 @@ class rng_and_lpdf_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index bc142a4a84..10a8e71aaf 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -60,6 +60,8 @@ class _8_schools_ncp_model final : public model_base_crtp<_8_schools_ncp_model> unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -265,7 +267,9 @@ class _8_schools_ncp_model final : public model_base_crtp<_8_schools_ncp_model> using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -529,6 +533,8 @@ class _8start_with_number_model final : public model_base_crtp<_8start_with_numb unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -644,7 +650,9 @@ class _8start_with_number_model final : public model_base_crtp<_8start_with_numb using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -869,6 +877,8 @@ class eight_schools_ncp_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -8994,7 +9012,9 @@ class mother_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -11764,6 +11784,8 @@ class motherHOF_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -12766,7 +12788,9 @@ class motherHOF_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -14089,6 +14113,8 @@ class new_integrate_interface_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -20236,7 +20270,9 @@ class optimize_glm_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -20701,6 +20737,8 @@ class param_constraint_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -21825,7 +21871,9 @@ class tilde_block_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -22158,6 +22206,8 @@ class transform_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -23838,7 +23888,9 @@ class transform_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -25354,6 +25406,8 @@ class truncate_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -25571,7 +25625,9 @@ class truncate_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -25826,6 +25882,8 @@ class udf_tilde_stmt_conflict_model final : public model_base_crtp unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -26297,7 +26359,9 @@ class user_constrain_model final : public model_base_crtp using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index ffa3ae3af6..f364971116 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -187,6 +187,8 @@ class simple_function_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -6066,7 +6068,9 @@ class distributions_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -6466,6 +6470,8 @@ class restricted_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -6838,7 +6844,9 @@ class restricted_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; diff --git a/test/integration/good/code-gen/profiling/cpp.expected b/test/integration/good/code-gen/profiling/cpp.expected index 710f4de493..07fa646823 100644 --- a/test/integration/good/code-gen/profiling/cpp.expected +++ b/test/integration/good/code-gen/profiling/cpp.expected @@ -74,6 +74,8 @@ class simple_function_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -780,7 +786,9 @@ class reduce_sum_m1_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -2222,6 +2230,8 @@ class reduce_sum_m2_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -2771,7 +2781,9 @@ class reduce_sum_m2_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -5993,6 +6005,8 @@ class reduce_sum_m3_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -7275,7 +7289,9 @@ class reduce_sum_m3_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index 6cbbc37b34..ee5a1b3d68 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -159,6 +159,8 @@ class ad_level_failing_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -2864,7 +2870,9 @@ class copy_fail_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym53__; @@ -3298,6 +3306,8 @@ class dce_fail_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -4148,7 +4158,9 @@ class dce_fail_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym27__; @@ -4776,6 +4788,8 @@ class expr_prop_experiment_model final : public model_base_crtp unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -5700,7 +5722,9 @@ class expr_prop_fail_model final : public model_base_crtp using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym9__; @@ -6029,6 +6053,8 @@ class expr_prop_fail2_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -18973,7 +19027,9 @@ class fails_test_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym53__; @@ -20306,6 +20362,8 @@ class inlining_fail2_model final : public model_base_crtp unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -22534,7 +22592,9 @@ class inlining_fail2_model final : public model_base_crtp using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym142__; @@ -23024,6 +23084,8 @@ class lcm_experiment_model final : public model_base_crtp unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -23151,7 +23213,9 @@ class lcm_experiment_model final : public model_base_crtp using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -23359,6 +23423,8 @@ class lcm_experiment2_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -23846,7 +23916,9 @@ class lcm_fails_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym3__; @@ -24428,6 +24500,8 @@ class lcm_fails2_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -25851,7 +25925,9 @@ class lcm_fails2_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -26248,6 +26324,8 @@ class lupdf_inlining_model final : public model_base_crtp unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -26470,7 +26548,9 @@ class lupdf_inlining_model final : public model_base_crtp using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -26754,6 +26834,8 @@ class off_dce_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -27402,7 +27484,9 @@ class off_dce_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; @@ -27736,6 +27820,8 @@ class off_small_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -28262,7 +28348,9 @@ class off_small_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym10__; @@ -28861,6 +28949,8 @@ class optimizations_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -29631,7 +29721,9 @@ class optimizations_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym53__; @@ -30132,6 +30224,8 @@ class partial_eval_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -30571,7 +30665,9 @@ class partial_eval_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { double lcm_sym10__; @@ -30963,6 +31059,8 @@ class stalled1_failure_model final : public model_base_crtp { unsigned int random_seed__ = 0, std::ostream* pstream__ = nullptr) : model_base_crtp(0) { int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; using local_scalar_t__ = double ; boost::ecuyer1988 base_rng__ = stan::services::util::create_rng(random_seed__, 0); @@ -32305,7 +32407,9 @@ class unroll_limit_model final : public model_base_crtp { using local_scalar_t__ = double; vars__.clear(); vars__.reserve(num_params_r__); - int current_statement__ = 0; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; try { int pos__; diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 219460e0b4..b85d1ef696 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -172,56 +172,6 @@ let%expect_test "closure" = template void sars_impl__(const T0__& x, const T1__& y, std::ostream* pstream__) ; - -template -class sars_cfunctor__ { - const Eigen::Matrix& x; - stan::capture_type_t, ref__> y; - public: - const size_t vars_count__; - sars_cfunctor__(const sars_cfunctor__&) = default ; - sars_cfunctor__(sars_cfunctor__&&) = default ; - sars_cfunctor__(const Eigen::Matrix& x__, - const Eigen::Matrix& y__) - : x(x__), y(y__), vars_count__(count_vars(x__, y__)) {} - void - operator()(std::ostream* pstream__) const - { - return sars_impl__(x, y, pstream__); - } - - using captured_scalar_t__ = stan::return_type_t; - using ValueOf__ = sars_cfunctor__; - using CopyOf__ = sars_cfunctor__>; - size_t count_vars__() const { - return vars_count__; - } - auto value_of__() const { - return ValueOf__(x, eval(value_of(y))); - } - auto deep_copy_vars__() const { - return CopyOf__(x, eval(deep_copy_vars(y))); - } - void zero_adjoints__() { - stan::math::zero_adjoints(x); - stan::math::zero_adjoints(y); - } - double* accumulate_adjoints__(double *dest) const { - return stan::math::accumulate_adjoints(dest, x, y); - } - stan::math::vari** save_varis__(stan::math::vari **dest) const { - return stan::math::save_varis(dest, x, y); - } - - - }; -template -auto sars_make__(const Eigen::Matrix& x, - const Eigen::Matrix& y) { -return sars_cfunctor__(x, y); -} - template void sars_impl__(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { From e5d6414ae372ea88688509a0d999652754335297 Mon Sep 17 00:00:00 2001 From: Niko Huurre Date: Thu, 12 Aug 2021 12:54:53 +0300 Subject: [PATCH 24/24] fix _lp and _rng in higher-order functions --- src/frontend/Semantic_check.ml | 14 +- src/stan_math_backend/Stan_math_code_gen.ml | 15 +- .../good/code-gen/closures/cpp.expected | 399 +++++++++++------- .../closures/higher_order_suffixes.stan | 16 +- test/integration/good/code-gen/cpp.expected | 13 +- .../standalone_functions/cpp.expected | 4 +- .../good/compiler-optimizations/cpp.expected | 10 +- 7 files changed, 304 insertions(+), 167 deletions(-) diff --git a/src/frontend/Semantic_check.ml b/src/frontend/Semantic_check.ml index 984a47501b..8af776f126 100644 --- a/src/frontend/Semantic_check.ml +++ b/src/frontend/Semantic_check.ml @@ -1716,12 +1716,22 @@ and semantic_check_fundef_return_tys ~loc id return_type body = else error @@ Semantic_error.incompatible_return_types loc) and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = + let suffix = Fun_kind.suffix_from_name id.name in let uargs = List.map args ~f:(fun (at, ut, id) -> Validate.( semantic_check_autodifftype at |> apply_const (semantic_check_unsizedtype ut) |> apply_const (semantic_check_identifier id) + |> apply_const + ( match ut with + | UnsizedType.UFun (_, _, (FnRng, _)) when suffix <> FnRng -> + Semantic_error.invalid_rng_fn id.id_loc |> Validate.error + | UFun (_, _, (FnTarget, _)) when suffix <> FnTarget -> + Semantic_error.target_plusequals_outisde_model_or_logprob + id.id_loc + |> Validate.error + | _ -> Validate.ok () ) |> map ~f:(fun at -> (at, ut, id))) ) |> Validate.sequence in @@ -1739,9 +1749,7 @@ and semantic_check_fundef ~loc ~cf ~is_closure return_ty id args body = >>= fun () -> (* WARNING: SIDE EFFECTING *) Symbol_table.enter vm id.name - ( Functions - , UFun (uarg_types, urt, (Fun_kind.suffix_from_name id.name, is_closure)) - ) ; + (Functions, UFun (uarg_types, urt, (suffix, is_closure))) ; let body', captures = Symbol_table.with_capturing_scope vm (fun () -> (* Check that function args and loop identifiers are not modified in diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 1a2ea36a67..e98b6be4a2 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -88,7 +88,7 @@ let return_arg_types (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i ((_, _, ut) as a) -> if not (needs_template a) then None else if UnsizedType.is_fun_type ut then - Some (sprintf "typename %s%d__::captured_scalar_t__" prefix i) + Some (sprintf "stan::return_type_t<%s%d__>" prefix i) else if UnsizedType.is_eigen_type ut then Some (sprintf "stan::value_type_t<%s%d__>" prefix i) else Some (sprintf "%s%d__" prefix i) ) @@ -336,12 +336,21 @@ let pp_forward_decl funs_used_in_reduce_sum ppf if fdbody <> None then ( if Set.mem funs_used_in_reduce_sum fdname then pp_rs_functor ppf (fdrt, fdsuffix, fdname, fdargs) ; + let extra = + match fdsuffix with + | Fun_kind.FnTarget -> ["lp__"; "lp_accum__"] + | FnRng -> ["base_rng__"] + | FnLpdf _ | FnPlain -> [] + in pf ppf "@,@,struct %s%s {@,%a const @,{@,return %a;@,}@,};@," fdname functor_suffix pp_sig (fdrt, "operator()", fdargs) pp_call_str - ( (if fdsuffix = FnLpdf () then fdname ^ "" else fdname) - , List.map ~f:(fun (_, name, _) -> name) fdargs @ ["pstream__"] ) ) + ( ( match fdsuffix with + | FnLpdf () | FnTarget -> fdname ^ "" + | FnRng | FnPlain -> fdname ) + , List.map ~f:(fun (_, name, _) -> name) fdargs + @ extra @ ["pstream__"] ) ) | Some captures -> ( let all_args = Program.captures_to_args captures @ fdargs in pf ppf "%a ;" pp_sig (fdrt, fdname ^ "_impl__", all_args) ; diff --git a/test/integration/good/code-gen/closures/cpp.expected b/test/integration/good/code-gen/closures/cpp.expected index cd957f24bc..e4d0f1727c 100644 --- a/test/integration/good/code-gen/closures/cpp.expected +++ b/test/integration/good/code-gen/closures/cpp.expected @@ -677,12 +677,12 @@ static constexpr std::array locations_array__ = " (in 'capture_types2.stan', line 22, column 25 to line 24, column 9)"}; template -stan::promote_args_t, T1__> capture_closure_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; template -stan::promote_args_t, T1__> capture_dataonly_closure_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) ; @@ -696,11 +696,11 @@ template stan::promote_args_t gar_L22C13_impl__(const T0__& b, std::ostream* pstream__) ; template -stan::promote_args_t, T1__> capture_closure_L16C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, T1__>; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -718,11 +718,11 @@ capture_closure_L16C9_impl__(const T0__& foo, const T1__& y, } template -stan::promote_args_t, T1__> capture_dataonly_closure_L7C9_impl__(const T0__& foo, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, T1__>; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1224,13 +1224,13 @@ static constexpr std::array locations_array__ = " (in 'higher_order.stan', line 4, column 24 to line 6, column 9)"}; template -stan::promote_args_t, T1__> higher_order_func(const T0__& g, const T1__& x, std::ostream* pstream__) ; struct higher_order_func_functor__ { template -stan::promote_args_t, T1__> operator()(const T0__& g, const T1__& x, std::ostream* pstream__) const { @@ -1260,15 +1260,15 @@ stan::promote_args_t data_closure_L16C9_impl__(const double& x, const T1__& y, std::ostream* pstream__) ; template -stan::promote_args_t, T1__, T2__> g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, std::ostream* pstream__) ; template -stan::promote_args_t, T1__> higher_order_func(const T0__& g, const T1__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, T1__>; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1349,11 +1349,11 @@ data_closure_L16C9_impl__(const double& x, const T1__& y, } template -stan::promote_args_t, T1__, T2__> g2_L4C13_impl__(const T0__& g, const T1__& x, const T2__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, T1__, T2__>; int current_statement__ = 0; @@ -1734,20 +1734,24 @@ 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 'higher_order_suffixes.stan', line 16, column 4 to line 19, column 5)", - " (in 'higher_order_suffixes.stan', line 22, column 4 to line 25, column 5)", - " (in 'higher_order_suffixes.stan', line 26, column 4 to line 29, column 5)", - " (in 'higher_order_suffixes.stan', line 30, column 4 to line 33, column 5)", - " (in 'higher_order_suffixes.stan', line 34, column 4 to line 37, column 5)", - " (in 'higher_order_suffixes.stan', line 38, column 4 to line 41, column 5)", - " (in 'higher_order_suffixes.stan', line 42, column 4 to line 45, column 5)", - " (in 'higher_order_suffixes.stan', line 46, column 4 to line 49, column 5)", - " (in 'higher_order_suffixes.stan', line 53, column 4 to column 27)", - " (in 'higher_order_suffixes.stan', line 56, column 4 to column 36)", - " (in 'higher_order_suffixes.stan', line 20, column 4 to column 32)", - " (in 'higher_order_suffixes.stan', line 50, column 4 to column 30)", + " (in 'higher_order_suffixes.stan', line 20, column 4 to line 23, column 5)", + " (in 'higher_order_suffixes.stan', line 24, column 4 to line 27, column 5)", + " (in 'higher_order_suffixes.stan', line 31, column 4 to line 34, column 5)", + " (in 'higher_order_suffixes.stan', line 35, column 4 to line 38, column 5)", + " (in 'higher_order_suffixes.stan', line 39, column 4 to line 42, column 5)", + " (in 'higher_order_suffixes.stan', line 43, column 4 to line 46, column 5)", + " (in 'higher_order_suffixes.stan', line 47, column 4 to line 50, column 5)", + " (in 'higher_order_suffixes.stan', line 51, column 4 to line 54, column 5)", + " (in 'higher_order_suffixes.stan', line 55, column 4 to line 58, column 5)", + " (in 'higher_order_suffixes.stan', line 62, column 4 to column 27)", + " (in 'higher_order_suffixes.stan', line 63, column 4 to column 21)", + " (in 'higher_order_suffixes.stan', line 66, column 4 to column 36)", + " (in 'higher_order_suffixes.stan', line 28, column 4 to column 26)", + " (in 'higher_order_suffixes.stan', line 29, column 4 to column 24)", + " (in 'higher_order_suffixes.stan', line 59, column 4 to column 30)", " (in 'higher_order_suffixes.stan', line 3, column 8 to column 38)", " (in 'higher_order_suffixes.stan', line 4, column 8 to column 17)", " (in 'higher_order_suffixes.stan', line 2, column 25 to line 5, column 5)", @@ -1757,21 +1761,26 @@ static constexpr std::array locations_array__ = " (in 'higher_order_suffixes.stan', line 11, column 8 to column 26)", " (in 'higher_order_suffixes.stan', line 12, column 8 to column 17)", " (in 'higher_order_suffixes.stan', line 10, column 23 to line 13, column 5)", - " (in 'higher_order_suffixes.stan', line 36, column 8 to column 17)", - " (in 'higher_order_suffixes.stan', line 35, column 20 to line 37, column 5)", - " (in 'higher_order_suffixes.stan', line 40, column 8 to column 17)", - " (in 'higher_order_suffixes.stan', line 39, column 25 to line 41, column 5)", - " (in 'higher_order_suffixes.stan', line 44, column 8 to column 17)", - " (in 'higher_order_suffixes.stan', line 43, column 24 to line 45, column 5)", - " (in 'higher_order_suffixes.stan', line 48, column 8 to column 17)", - " (in 'higher_order_suffixes.stan', line 47, column 23 to line 49, column 5)", - " (in 'higher_order_suffixes.stan', line 32, column 8 to column 25)", - " (in 'higher_order_suffixes.stan', line 31, column 35 to line 33, column 5)", - " (in 'higher_order_suffixes.stan', line 28, column 8 to column 28)", - " (in 'higher_order_suffixes.stan', line 27, column 48 to line 29, column 5)", - " (in 'higher_order_suffixes.stan', line 24, column 8 to column 27)", - " (in 'higher_order_suffixes.stan', line 23, column 38 to line 25, column 5)", - " (in 'higher_order_suffixes.stan', line 17, column 66 to line 19, column 5)"}; + " (in 'higher_order_suffixes.stan', line 45, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 44, column 20 to line 46, column 5)", + " (in 'higher_order_suffixes.stan', line 49, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 48, column 25 to line 50, column 5)", + " (in 'higher_order_suffixes.stan', line 53, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 52, column 24 to line 54, column 5)", + " (in 'higher_order_suffixes.stan', line 57, column 8 to column 17)", + " (in 'higher_order_suffixes.stan', line 56, column 23 to line 58, column 5)", + " (in 'higher_order_suffixes.stan', line 41, column 8 to column 25)", + " (in 'higher_order_suffixes.stan', line 40, column 35 to line 42, column 5)", + " (in 'higher_order_suffixes.stan', line 37, column 8 to column 28)", + " (in 'higher_order_suffixes.stan', line 36, column 48 to line 38, column 5)", + " (in 'higher_order_suffixes.stan', line 33, column 8 to column 27)", + " (in 'higher_order_suffixes.stan', line 32, column 38 to line 34, column 5)", + " (in 'higher_order_suffixes.stan', line 18, column 8 to column 28)", + " (in 'higher_order_suffixes.stan', line 17, column 32 to line 19, column 5)", + " (in 'higher_order_suffixes.stan', line 26, column 8 to column 26)", + " (in 'higher_order_suffixes.stan', line 25, column 41 to line 27, column 5)", + " (in 'higher_order_suffixes.stan', line 22, column 8 to column 26)", + " (in 'higher_order_suffixes.stan', line 21, column 35 to line 23, column 5)"}; template stan::promote_args_t @@ -1795,7 +1804,7 @@ template stan::promote_args_t operator()(const T0__& x, RNG& base_rng__, std::ostream* pstream__) const { -return ff_rng(x, pstream__); +return ff_rng(x, base_rng__, pstream__); } }; @@ -1812,75 +1821,92 @@ stan::promote_args_t operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return ff_lp(x, pstream__); +return ff_lp(x, lp__, lp_accum__, pstream__); } }; template stan::promote_args_t -f2_L35C9_impl__(const T0__& x, std::ostream* pstream__) ; +f2_L44C9_impl__(const T0__& x, std::ostream* pstream__) ; template stan::promote_args_t -f3_lpdf_L39C9_impl__(const T0__& x, std::ostream* pstream__) ;struct f3_lpdf_L39C9_pfunctor__ { +f3_lpdf_L48C9_impl__(const T0__& x, std::ostream* pstream__) ;struct f3_lpdf_L48C9_pfunctor__ { template stan::promote_args_t operator()(const T0__& x, std::ostream* pstream__) const { -return f3_lpdf_L39C9_impl__(x, pstream__); +return f3_lpdf_L48C9_impl__(x, pstream__); } }; template stan::promote_args_t -f4_rng_L43C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; +f4_rng_L52C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) ; template stan::promote_args_t -f5_lp_L47C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) ;struct f5_lp_L47C9_pfunctor__ { +f5_lp_L56C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) ;struct f5_lp_L56C9_pfunctor__ { template stan::promote_args_t operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return f5_lp_L47C9_impl__(x, lp__, lp_accum__, pstream__); +return f5_lp_L56C9_impl__(x, lp__, lp_accum__, pstream__); } }; template -stan::promote_args_t -foo_lp_L31C9_impl__(const T0__& bar_lp, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) ;struct foo_lp_L31C9_pfunctor__ { +stan::promote_args_t> +foo_lp_L40C9_impl__(const T0__& bar_lp, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) ;struct foo_lp_L40C9_pfunctor__ { template -stan::promote_args_t +stan::promote_args_t> operator()(const T0__& bar_lp, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return foo_lp_L31C9_impl__(bar_lp, lp__, lp_accum__, pstream__); +return foo_lp_L40C9_impl__(bar_lp, lp__, lp_accum__, pstream__); } }; template stan::promote_args_t -foo_lpdf_L27C9_impl__(const T0__& zz, const T1__& bar_lpdf, - std::ostream* pstream__) ;struct foo_lpdf_L27C9_pfunctor__ { +stan::return_type_t> +foo_lpdf_L36C9_impl__(const T0__& zz, const T1__& bar_lpdf, + std::ostream* pstream__) ;struct foo_lpdf_L36C9_pfunctor__ { template stan::promote_args_t +stan::return_type_t> operator()(const T0__& zz, const T1__& bar_lpdf, std::ostream* pstream__) const { -return foo_lpdf_L27C9_impl__(zz, bar_lpdf, pstream__); +return foo_lpdf_L36C9_impl__(zz, bar_lpdf, pstream__); } }; template -stan::promote_args_t -foo_rng_L23C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, +stan::promote_args_t> +foo_rng_L32C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, std::ostream* pstream__) ; -template +template +stan::promote_args_t> +hof_L17C9_impl__(const T0__& s_lpdf, std::ostream* pstream__) ; +template +void +hof_lp_L25C9_impl__(const T0__& s_lp, const T1__& a, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) ;struct hof_lp_L25C9_pfunctor__ { +template void -hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, - std::ostream* pstream__) ; +operator()(const T0__& s_lp, const T1__& a, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) const { +return hof_lp_L25C9_impl__(s_lp, a, lp__, lp_accum__, pstream__); +} +}; + +template +stan::promote_args_t> +hof_rng_L21C9_impl__(const T0__& s_rng, RNG& base_rng__, + std::ostream* pstream__) ; template stan::promote_args_t ff_lpdf(const T0__& x, std::ostream* pstream__) { @@ -1892,9 +1918,9 @@ ff_lpdf(const T0__& x, std::ostream* pstream__) { local_scalar_t__ s; s = DUMMY_VAR__; - current_statement__ = 13; + current_statement__ = 17; s = std_normal_lpdf(0); - current_statement__ = 14; + current_statement__ = 18; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1916,9 +1942,9 @@ ff_rng(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { local_scalar_t__ s; s = DUMMY_VAR__; - current_statement__ = 16; + current_statement__ = 20; s = std_normal_rng(base_rng__); - current_statement__ = 17; + current_statement__ = 21; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1940,9 +1966,9 @@ ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, local_scalar_t__ s; s = DUMMY_VAR__; - current_statement__ = 19; + current_statement__ = 23; s = get_lp(lp__, lp_accum__); - current_statement__ = 20; + current_statement__ = 24; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1953,7 +1979,7 @@ ff_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, } template stan::promote_args_t -f2_L35C9_impl__(const T0__& x, std::ostream* pstream__) { +f2_L44C9_impl__(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1961,7 +1987,7 @@ f2_L35C9_impl__(const T0__& x, std::ostream* pstream__) { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 22; + current_statement__ = 26; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1972,13 +1998,13 @@ f2_L35C9_impl__(const T0__& x, std::ostream* pstream__) { } template stan::promote_args_t -f3_lpdf_L39C9_impl__(const T0__& x, std::ostream* pstream__) { +f3_lpdf_L48C9_impl__(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 24; + current_statement__ = 28; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -1989,7 +2015,7 @@ f3_lpdf_L39C9_impl__(const T0__& x, std::ostream* pstream__) { } template stan::promote_args_t -f4_rng_L43C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { +f4_rng_L52C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1997,7 +2023,7 @@ f4_rng_L43C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 26; + current_statement__ = 30; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2009,14 +2035,14 @@ f4_rng_L43C9_impl__(const T0__& x, RNG& base_rng__, std::ostream* pstream__) { template stan::promote_args_t -f5_lp_L47C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, +f5_lp_L56C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 28; + current_statement__ = 32; return x; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2027,15 +2053,15 @@ f5_lp_L47C9_impl__(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, } template -stan::promote_args_t -foo_lp_L31C9_impl__(const T0__& bar_lp, T_lp__& lp__, +stan::promote_args_t> +foo_lp_L40C9_impl__(const T0__& bar_lp, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 30; + current_statement__ = 34; return bar_lp.template operator()(lp__, lp_accum__, pstream__, 1); } catch (const std::exception& e) { @@ -2047,16 +2073,16 @@ foo_lp_L31C9_impl__(const T0__& bar_lp, T_lp__& lp__, } template stan::promote_args_t -foo_lpdf_L27C9_impl__(const T0__& zz, const T1__& bar_lpdf, +stan::return_type_t> +foo_lpdf_L36C9_impl__(const T0__& zz, const T1__& bar_lpdf, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; + stan::return_type_t>; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 32; + current_statement__ = 36; return bar_lpdf.template operator()(pstream__, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2066,17 +2092,17 @@ foo_lpdf_L27C9_impl__(const T0__& zz, const T1__& bar_lpdf, } template -stan::promote_args_t -foo_rng_L23C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, +stan::promote_args_t> +foo_rng_L32C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement__ = 34; + current_statement__ = 38; return bar_lpdf.template operator()(pstream__, 1); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); @@ -2085,20 +2111,59 @@ foo_rng_L23C9_impl__(const T0__& bar_lpdf, RNG& base_rng__, } } -template +template +stan::promote_args_t> +hof_L17C9_impl__(const T0__& s_lpdf, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; + int current_statement__ = 0; + static constexpr bool propto__ = true; + (void) propto__; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 40; + return s_lpdf.template operator()(pstream__, 1.0); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template void -hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +hof_lp_L25C9_impl__(const T0__& s_lp, const T1__& a, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t, + T1__>; + int current_statement__ = 0; + local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); + (void) DUMMY_VAR__; // suppress unused var warning + try { + current_statement__ = 42; + lp_accum__.add( + s_lp.template operator()(lp__, lp_accum__, pstream__, a)); + } catch (const std::exception& e) { + stan::lang::rethrow_located(e, locations_array__[current_statement__]); + // Next line prevents compiler griping about no return + throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); + } + +} +template +stan::promote_args_t> +hof_rng_L21C9_impl__(const T0__& s_rng, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning try { - + current_statement__ = 44; + return s_rng(base_rng__, pstream__, 1.0); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -2109,6 +2174,7 @@ hof_L17C9_impl__(const T0__& s_rng, const T1__& s_lpdf, const T2__& s_lp, class higher_order_suffixes_model final : public model_base_crtp { private: + double a; double z; @@ -2145,40 +2211,51 @@ class higher_order_suffixes_model final : public model_base_crtp(ff_lpdf_functor__()), - lp_from_lambda(ff_lp_functor__())); current_statement__ = 2; - auto foo_rng = rng_from_lambda([](const auto& s0, - auto& rng, auto msgs) { return foo_rng_L23C9_impl__(s0, rng, msgs); } + auto hof_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return hof_rng_L21C9_impl__(s0, rng, msgs); } ); current_statement__ = 3; - auto foo_lpdf = lpdf_from_lambda(foo_lpdf_L27C9_pfunctor__()); + auto hof_lp = lp_from_lambda(hof_lp_L25C9_pfunctor__()); + current_statement__ = 14; + a = std::numeric_limits::quiet_NaN(); + + current_statement__ = 14; + a = hof(pstream__, lpdf_from_lambda(ff_lpdf_functor__())); + current_statement__ = 15; + a = hof_rng(base_rng__, pstream__, rng_from_lambda(ff_rng_functor__())); current_statement__ = 4; - auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); + auto foo_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return foo_rng_L32C9_impl__(s0, rng, msgs); } + ); current_statement__ = 5; - auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } - ); + auto foo_lpdf = lpdf_from_lambda(foo_lpdf_L36C9_pfunctor__()); current_statement__ = 6; - auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); + auto foo_lp = lp_from_lambda(foo_lp_L40C9_pfunctor__()); current_statement__ = 7; + auto f2 = from_lambda([](const auto&... s) { return f2_L44C9_impl__(s...); } + ); + + current_statement__ = 8; + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L48C9_pfunctor__()); + + current_statement__ = 9; auto f4_rng = rng_from_lambda([](const auto& s0, - auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + auto& rng, auto msgs) { return f4_rng_L52C9_impl__(s0, rng, msgs); } ); - current_statement__ = 8; - auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); - current_statement__ = 12; + current_statement__ = 10; + auto f5_lp = lp_from_lambda(f5_lp_L56C9_pfunctor__()); + current_statement__ = 16; z = std::numeric_limits::quiet_NaN(); - current_statement__ = 12; + current_statement__ = 16; z = foo_rng(base_rng__, pstream__, f3_lpdf.template with_propto()); } catch (const std::exception& e) { @@ -2214,38 +2291,49 @@ class higher_order_suffixes_model final : public model_base_crtp(foo_lpdf_L27C9_pfunctor__()); + auto hof_lp = lp_from_lambda(hof_lp_L25C9_pfunctor__()); current_statement__ = 4; - auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); + auto foo_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return foo_rng_L32C9_impl__(s0, rng, msgs); } + ); current_statement__ = 5; - auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } - ); + auto foo_lpdf = lpdf_from_lambda(foo_lpdf_L36C9_pfunctor__()); current_statement__ = 6; - auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); + auto foo_lp = lp_from_lambda(foo_lp_L40C9_pfunctor__()); current_statement__ = 7; + auto f2 = from_lambda([](const auto&... s) { return f2_L44C9_impl__(s...); } + ); + + current_statement__ = 8; + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L48C9_pfunctor__()); + + current_statement__ = 9; auto f4_rng = rng_from_lambda([](const auto& s0, - auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + auto& rng, auto msgs) { return f4_rng_L52C9_impl__(s0, rng, msgs); } ); - current_statement__ = 8; - auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); + current_statement__ = 10; + auto f5_lp = lp_from_lambda(f5_lp_L56C9_pfunctor__()); local_scalar_t__ s; s = DUMMY_VAR__; - current_statement__ = 9; + current_statement__ = 11; s = foo_lp.template operator()(lp__, lp_accum__, pstream__, f5_lp); + current_statement__ = 12; + hof_lp.template operator()(lp__, lp_accum__, pstream__, + lp_from_lambda(ff_lp_functor__()), s); { - current_statement__ = 10; + current_statement__ = 13; lp_accum__.add( foo_lpdf.template operator()(pstream__, 1, f3_lpdf.template with_propto())); @@ -2290,30 +2378,38 @@ class higher_order_suffixes_model final : public model_base_crtp(foo_lpdf_L27C9_pfunctor__()); + auto hof_lp = lp_from_lambda(hof_lp_L25C9_pfunctor__()); current_statement__ = 4; - auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); + auto foo_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return foo_rng_L32C9_impl__(s0, rng, msgs); } + ); current_statement__ = 5; - auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } - ); + auto foo_lpdf = lpdf_from_lambda(foo_lpdf_L36C9_pfunctor__()); current_statement__ = 6; - auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); + auto foo_lp = lp_from_lambda(foo_lp_L40C9_pfunctor__()); current_statement__ = 7; + auto f2 = from_lambda([](const auto&... s) { return f2_L44C9_impl__(s...); } + ); + + current_statement__ = 8; + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L48C9_pfunctor__()); + + current_statement__ = 9; auto f4_rng = rng_from_lambda([](const auto& s0, - auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + auto& rng, auto msgs) { return f4_rng_L52C9_impl__(s0, rng, msgs); } ); - current_statement__ = 8; - auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); + current_statement__ = 10; + auto f5_lp = lp_from_lambda(f5_lp_L56C9_pfunctor__()); double s; s = std::numeric_limits::quiet_NaN(); @@ -2321,9 +2417,12 @@ class higher_order_suffixes_model final : public model_base_crtp(lp__, lp_accum__, pstream__, f5_lp); + current_statement__ = 12; + hof_lp.template operator()(lp__, lp_accum__, pstream__, + lp_from_lambda(ff_lp_functor__()), s); if (emit_transformed_parameters__) { vars__.emplace_back(s); } @@ -2357,30 +2456,38 @@ class higher_order_suffixes_model final : public model_base_crtp(foo_lpdf_L27C9_pfunctor__()); + auto hof_lp = lp_from_lambda(hof_lp_L25C9_pfunctor__()); current_statement__ = 4; - auto foo_lp = lp_from_lambda(foo_lp_L31C9_pfunctor__()); + auto foo_rng = rng_from_lambda([](const auto& s0, + auto& rng, auto msgs) { return foo_rng_L32C9_impl__(s0, rng, msgs); } + ); current_statement__ = 5; - auto f2 = from_lambda([](const auto&... s) { return f2_L35C9_impl__(s...); } - ); + auto foo_lpdf = lpdf_from_lambda(foo_lpdf_L36C9_pfunctor__()); current_statement__ = 6; - auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L39C9_pfunctor__()); + auto foo_lp = lp_from_lambda(foo_lp_L40C9_pfunctor__()); current_statement__ = 7; + auto f2 = from_lambda([](const auto&... s) { return f2_L44C9_impl__(s...); } + ); + + current_statement__ = 8; + auto f3_lpdf = lpdf_from_lambda(f3_lpdf_L48C9_pfunctor__()); + + current_statement__ = 9; auto f4_rng = rng_from_lambda([](const auto& s0, - auto& rng, auto msgs) { return f4_rng_L43C9_impl__(s0, rng, msgs); } + auto& rng, auto msgs) { return f4_rng_L52C9_impl__(s0, rng, msgs); } ); - current_statement__ = 8; - auto f5_lp = lp_from_lambda(f5_lp_L47C9_pfunctor__()); + current_statement__ = 10; + auto f5_lp = lp_from_lambda(f5_lp_L56C9_pfunctor__()); int pos__; pos__ = std::numeric_limits::min(); diff --git a/test/integration/good/code-gen/closures/higher_order_suffixes.stan b/test/integration/good/code-gen/closures/higher_order_suffixes.stan index da9c4703fa..ad7bc49cdd 100644 --- a/test/integration/good/code-gen/closures/higher_order_suffixes.stan +++ b/test/integration/good/code-gen/closures/higher_order_suffixes.stan @@ -14,10 +14,19 @@ functions { } transformed data { function - void hof(real(real) s_rng,real(real) s_lpdf, real(real) s_lp) { - // nothing + real hof(real(real) s_lpdf) { + return s_lpdf(1.0|); } - hof(ff_rng, ff_lpdf, ff_lp); + function + real hof_rng(real(real) s_rng) { + return s_rng(1.0); + } + function + void hof_lp(real(real) s_lp, real a) { + target += s_lp(a); + } + real a = hof(ff_lpdf); + a = hof_rng(ff_rng); function real foo_rng(real(real) bar_lpdf) { @@ -51,6 +60,7 @@ transformed data { } transformed parameters { real s = foo_lp(f5_lp); + hof_lp(ff_lp, s); } model { target += foo_lupdf(1|f3_lupdf); diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 10a8e71aaf..ec005bed7c 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -2720,7 +2720,7 @@ T1__> operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, std::ostream* pstream__) const { -return foo_rng(mu, sigma, pstream__); +return foo_rng(mu, sigma, base_rng__, pstream__); } }; @@ -2737,7 +2737,7 @@ void operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return unit_normal_lp(u, pstream__); +return unit_normal_lp(u, lp__, lp_accum__, pstream__); } }; @@ -2789,7 +2789,7 @@ stan::promote_args_t operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return foo_lp(x, pstream__); +return foo_lp(x, lp__, lp_accum__, pstream__); } }; @@ -2881,7 +2881,8 @@ operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, const T4__& x5, const T5__& x6, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return foo_five_args_lp(x1, x2, x3, x4, x5, x6, pstream__); +return foo_five_args_lp(x1, x2, x3, x4, x5, x6, lp__, lp_accum__, + pstream__); } }; @@ -21243,7 +21244,7 @@ double operator()(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return foo4_lp(y, pstream__); +return foo4_lp(y, lp__, lp_accum__, pstream__); } }; @@ -21286,7 +21287,7 @@ stan::promote_args_t operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return foo5_lp(y, pstream__); +return foo5_lp(y, lp__, lp_accum__, pstream__); } }; diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index 63899ec3e8..cbedf5754d 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -128,7 +128,7 @@ void operator()(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return test_lp(a, pstream__); +return test_lp(a, lp__, lp_accum__, pstream__); } }; @@ -141,7 +141,7 @@ template stan::promote_args_t operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const { -return test_rng(a, pstream__); +return test_rng(a, base_rng__, pstream__); } }; diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index ee5a1b3d68..980cc7097a 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -11341,7 +11341,8 @@ operator()(const std::vector>& y, const T7__& chi, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return js_super_lp(y, first, last, p, phi, psi, nu, chi, pstream__); +return js_super_lp(y, first, last, p, phi, psi, nu, chi, lp__, + lp_accum__, pstream__); } }; @@ -19545,7 +19546,8 @@ operator()(const std::vector>& y, const T6__& chi, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return jolly_seber_lp(y, first, last, p, phi, gamma, chi, pstream__); +return jolly_seber_lp(y, first, last, p, phi, gamma, chi, lp__, + lp_accum__, pstream__); } }; @@ -28825,7 +28827,7 @@ void operator()(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return nrfun_lp(x, y, pstream__); +return nrfun_lp(x, y, lp__, lp_accum__, pstream__); } }; @@ -28849,7 +28851,7 @@ template int operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { -return rfun_lp(pstream__); +return rfun_lp(lp__, lp_accum__, pstream__); } };