From a3d62e647c885d9bf62b1c4a382f492515876706 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Wed, 18 Aug 2021 21:45:22 -0400 Subject: [PATCH 1/7] Allows functions to accept std::vectors with non-standard allocators --- src/stan_math_backend/Stan_math_code_gen.ml | 56 +- test/integration/good/code-gen/cpp.expected | 2452 ++++++++--------- .../good/code-gen/expressions/cpp.expected | 54 +- .../good/code-gen/ode/cpp.expected | 48 +- .../standalone_functions/cpp.expected | 108 +- .../good/compiler-optimizations/cpp.expected | 342 +-- test/unit/Stan_math_code_gen_tests.ml | 28 +- 7 files changed, 1397 insertions(+), 1691 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index e4b3a90b61..bcc6d5d172 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -56,7 +56,8 @@ let pp_located ppf _ = throw std::runtime_error("*** IF YOU SEE THIS, PLEASE REPORT A BUG ***"); |} (** Detect if argument requires C++ template *) -let arg_needs_template = function +let arg_needs_template arg = + match arg with | UnsizedType.DataOnly, _, t -> UnsizedType.is_eigen_type t | _, _, t when UnsizedType.contains_int t -> false | _ -> true @@ -66,10 +67,12 @@ let arg_needs_template = function @return A list of arguments with template parameter names added. *) 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 "T%d__" i) - | false -> None ) + List.mapi args ~f:(fun i (adtype, _, ut) -> + match ut with + | UMatrix | UVector | URowVector -> Some [sprintf "T%d__" i] + | UReal when adtype = AutoDiffable -> Some [sprintf "T%d__" i] + | UArray _ -> Some [sprintf "T%d__" i; sprintf "Alloc%d__" i] + | UInt | UReal | UMathLibraryFunction | UFun _ -> None ) let return_arg_types (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i ((_, _, ut) as a) -> @@ -80,8 +83,8 @@ let return_arg_types (args : Program.fun_arg_decl) = 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 |> List.filter_opt |> List.concat + |> String.concat ~sep:"," |> print_endline ; [%expect {| T0__ |}] (** Print the code for promoting stan real types @@ -137,6 +140,22 @@ let pp_located_error ppf (pp_body_block, body) = string ppf " catch (const std::exception& e) " ; pp_block ppf (pp_located, ()) +(** + * Print the types used in the C++ function signature. + * For most types we'll simply use the template typename given + * such as `T{id}__, but for std::vector's we will specialize + * the function by wrapping the joint template parameters + * (`T{id}__, Alloc{id}__`) around `std::vector<{Templates}>. + *) +let pp_arg_types ppf (scalar, ut) = + match ut with + | UnsizedType.UInt | UReal | UMatrix | URowVector | UVector -> + string ppf scalar + | UArray _ -> + (* Expressions are not accepted for arrays of Eigen::Matrix *) + pf ppf "std::vector<%s>" scalar + | x -> raise_s [%message (x : UnsizedType.t) "not implemented yet"] + (** Print the type of an object. @param ppf A pretty printer @param custom_scalar_opt A string representing a types inner scalar value. @@ -150,8 +169,7 @@ let pp_arg ppf (custom_scalar_opt, (_, name, ut)) = | None -> stantype_prim_str ut in (* we add the _arg suffix for any Eigen types *) - pf ppf "const %a& %s" pp_unsizedtype_custom_scalar_eigen_exprs (scalar, ut) - name + pf ppf "const %a& %s" pp_arg_types (scalar, ut) name let pp_arg_eigen_suffix ppf (custom_scalar_opt, (_, name, ut)) = let scalar = @@ -163,8 +181,7 @@ let pp_arg_eigen_suffix ppf (custom_scalar_opt, (_, name, ut)) = let opt_arg_suffix = if UnsizedType.is_eigen_type ut then name ^ "_arg__" else name in - pf ppf "const %a& %s" pp_unsizedtype_custom_scalar_eigen_exprs (scalar, ut) - opt_arg_suffix + pf ppf "const %a& %s" pp_arg_types (scalar, ut) opt_arg_suffix (** [pp_located_error_b] automatically adds a Block wrapper *) let pp_located_error_b ppf body_stmts = @@ -178,16 +195,17 @@ let typename = ( ^ ) "typename " @param fdargs A sexp list of strings representing C++ types. *) let get_templates_and_args exprs fdargs = - let argtypetemplates = maybe_templated_arg_types fdargs in - ( List.filter_opt argtypetemplates + let argtype_templates = maybe_templated_arg_types fdargs in + let templates = + List.map ~f:(Option.map ~f:(String.concat ~sep:", ")) argtype_templates + in + ( List.concat (List.filter_opt argtype_templates) , if not exprs then - List.map - ~f:(fun a -> strf "%a" pp_arg a) - (List.zip_exn argtypetemplates fdargs) + List.map ~f:(fun a -> strf "%a" pp_arg a) (List.zip_exn templates fdargs) else List.map ~f:(fun a -> strf "%a" pp_arg_eigen_suffix a) - (List.zip_exn argtypetemplates fdargs) ) + (List.zip_exn templates fdargs) ) (** Print the C++ template parameter decleration before a function. @param ppf A pretty printer. @@ -205,7 +223,7 @@ let mk_extra_args templates args = 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; fdsuffix; fdargs; fdbody; _}) +let pp_fun_def ppf Program.({fdname; fdsuffix; fdargs; fdbody; _}) funs_used_in_reduce_sum funs_used_in_variadic_ode = let extra, extra_templates = match fdsuffix with @@ -244,7 +262,7 @@ let pp_fun_def ppf Program.({fdrt; fdname; fdsuffix; fdargs; fdbody; _}) | (FnLpdf _ | FnTarget), `None -> pp_template_decorator ppf ("bool propto__" :: templates) | _ -> pp_template_decorator ppf templates ) ; - pp_returntype ppf fdargs fdrt ; + pf ppf "auto " ; let args, variadic_args = match variadic with | `ReduceSum -> List.split_n args 3 diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 1e16e5267d..1672092846 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -2529,11 +2529,9 @@ static constexpr std::array locations_array__ = " (in 'mother.stan', line 309, column 78 to line 313, column 3)"}; -int -foo(const int& n, std::ostream* pstream__) ; +auto foo(const int& n, std::ostream* pstream__) ; -int -foo(const int& n, std::ostream* pstream__) { +auto foo(const int& n, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -2557,26 +2555,27 @@ foo(const int& n, std::ostream* pstream__) { } struct foo_functor__ { -int -operator()(const int& n, std::ostream* pstream__) const +auto 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__) { +template +auto 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 +auto 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; @@ -2606,19 +2605,20 @@ sho(const T0__& t, const 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 +template +auto 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__) { +auto foo_bar0(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -2637,16 +2637,14 @@ foo_bar0(std::ostream* pstream__) { } struct foo_bar0_functor__ { -double -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return foo_bar0(pstream__); } }; template -stan::promote_args_t -foo_bar1(const T0__& x, std::ostream* pstream__) { +auto 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; @@ -2666,17 +2664,14 @@ 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 +auto 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__) { +auto 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; @@ -2696,17 +2691,14 @@ 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 +auto 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__) { +auto 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()); @@ -2724,16 +2716,14 @@ 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 +auto 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__) { +auto 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; @@ -2753,16 +2743,14 @@ 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 +auto 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__) { +auto 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; @@ -2782,18 +2770,15 @@ 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 +auto 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__) { +auto 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; @@ -2813,10 +2798,8 @@ foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, struct foo_rng_functor__ { template -stan::promote_args_t -operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) const +auto operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) const { return foo_rng(mu, sigma, base_rng__, pstream__); } @@ -2824,9 +2807,8 @@ return foo_rng(mu, sigma, base_rng__, pstream__); template -void -unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +auto 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()); @@ -2847,16 +2829,14 @@ unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, struct unit_normal_lp_functor__ { template -void -operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +auto operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return unit_normal_lp(u, lp__, lp_accum__, pstream__); } }; -int -foo_1(const int& a, std::ostream* pstream__) { +auto foo_1(const int& a, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -3089,15 +3069,13 @@ foo_1(const int& a, std::ostream* pstream__) { } struct foo_1_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const +auto operator()(const int& a, std::ostream* pstream__) const { return foo_1(a, pstream__); } }; -int -foo_2(const int& a, std::ostream* pstream__) { +auto foo_2(const int& a, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -3130,16 +3108,14 @@ foo_2(const int& a, std::ostream* pstream__) { } struct foo_2_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const +auto 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__) { +auto 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; @@ -3159,8 +3135,7 @@ 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 +auto operator()(const T0__& t, const int& n, std::ostream* pstream__) const { return foo_3(t, n, pstream__); } @@ -3168,9 +3143,8 @@ 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__) { +auto 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()); @@ -3189,17 +3163,15 @@ foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, 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 +auto 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__) { +auto 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; @@ -3222,18 +3194,15 @@ foo_4(const T0__& x, std::ostream* pstream__) { struct foo_4_functor__ { template -void -operator()(const T0__& x, std::ostream* pstream__) const +auto 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__) { +auto 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; @@ -3287,21 +3256,18 @@ relative_diff(const T0__& x, const T1__& y, const T2__& max_, 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 +auto 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_arg__, const T1__& job_params_arg__, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) { +template +auto 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; @@ -3323,12 +3289,12 @@ foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, } 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 +template +auto 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__); } @@ -3336,10 +3302,8 @@ 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__) { +auto 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 -stan::promote_args_t -operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, - const T4__& x5, std::ostream* pstream__) const +auto 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__); } @@ -3376,12 +3338,10 @@ 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__) { +auto 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 -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 +auto 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__); @@ -3417,9 +3375,8 @@ return foo_five_args_lp(x1, x2, x3, x4, x5, x6, lp__, lp_accum__, }; template -Eigen::Matrix>, -1, -1> -covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, - std::ostream* pstream__) { +auto 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__); @@ -3453,25 +3410,25 @@ covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, struct covsqrt2corsqrt_functor__ { template -Eigen::Matrix>, -1, -1> -operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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_arg__, const std::vector>& a8, - const std::vector>>& a9, - const T9__& a10_arg__, - const std::vector>& a11, - const std::vector>>& a12, - std::ostream* pstream__) { +template +auto 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& a2, } 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 +template +auto 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__) { +auto foo_6(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4276,15 +4221,13 @@ foo_6(std::ostream* pstream__) { } struct foo_6_functor__ { -void -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return foo_6(pstream__); } }; -Eigen::Matrix -matfoo(std::ostream* pstream__) { +auto matfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4307,15 +4250,13 @@ matfoo(std::ostream* pstream__) { } struct matfoo_functor__ { -Eigen::Matrix -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return matfoo(pstream__); } }; -Eigen::Matrix -vecfoo(std::ostream* pstream__) { +auto vecfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4335,16 +4276,14 @@ vecfoo(std::ostream* pstream__) { } struct vecfoo_functor__ { -Eigen::Matrix -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return vecfoo(pstream__); } }; template -Eigen::Matrix, -1, 1> -vecmufoo(const T0__& mu, std::ostream* pstream__) { +auto vecmufoo(const T0__& mu, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4367,16 +4306,14 @@ vecmufoo(const T0__& mu, std::ostream* pstream__) { struct vecmufoo_functor__ { template -Eigen::Matrix, -1, 1> -operator()(const T0__& mu, std::ostream* pstream__) const +auto operator()(const T0__& mu, std::ostream* pstream__) const { return vecmufoo(mu, pstream__); } }; template -Eigen::Matrix, -1, 1> -vecmubar(const T0__& mu, std::ostream* pstream__) { +auto vecmubar(const T0__& mu, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4401,19 +4338,18 @@ vecmubar(const T0__& mu, std::ostream* pstream__) { struct vecmubar_functor__ { template -Eigen::Matrix, -1, 1> -operator()(const T0__& mu, std::ostream* pstream__) const +auto 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_arg__, const T1__& y_arg__, - const std::vector& dat, const std::vector& dat_int, - std::ostream* pstream__) { +template +auto 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__>; @@ -4448,22 +4384,23 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, } 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 +template +auto 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_arg__, const T1__& theta_arg__, - const std::vector& x_r, const std::vector& x_i, - std::ostream* pstream__) { +template +auto 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; @@ -4491,12 +4428,12 @@ binomialf(const T0__& phi_arg__, const T1__& theta_arg__, } 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 +template +auto 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__); } @@ -10451,12 +10388,13 @@ static constexpr std::array locations_array__ = " (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__) { +template +auto 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; @@ -10486,23 +10424,26 @@ sho(const T0__& t, const 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 +template +auto 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__) { +template +auto 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; @@ -10521,23 +10462,23 @@ 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 +template +auto 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_arg__, const T1__& job_params_arg__, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) { +template +auto 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__>; @@ -10560,23 +10501,22 @@ foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, } 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 +template +auto 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_arg__, const T1__& job_params_arg__, - const std::vector& data_r, const std::vector& data_i, - std::ostream* pstream__) { +template +auto 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__>; @@ -10599,20 +10539,19 @@ goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, } 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 +template +auto 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__) { +auto 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; @@ -10632,19 +10571,18 @@ 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 +auto 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_arg__, const T1__& y_arg__, - const std::vector& dat, const std::vector& dat_int, - std::ostream* pstream__) { +template +auto 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__>; @@ -10679,11 +10617,12 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, } 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 +template +auto 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__); } @@ -12845,10 +12784,8 @@ static constexpr std::array locations_array__ = 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__) { +auto 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__, @@ -12873,10 +12810,8 @@ f(const T0__& t, const T1__& z_arg__, const T2__& a, const T3__& b_arg__, 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 +auto operator()(const T0__& t, const T1__& z, const T2__& a, const T3__& b, + std::ostream* pstream__) const { return f(t, z, a, b, pstream__); } @@ -12885,10 +12820,8 @@ return f(t, z, a, b, pstream__); struct f_odefunctor__ { template -Eigen::Matrix, T2__, -stan::value_type_t>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a, const T3__& b) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a, const T3__& b) const { return f(t, z, a, b, pstream__); } @@ -16272,12 +16205,13 @@ static constexpr std::array locations_array__ = " (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__) { +template +auto 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; @@ -16320,12 +16254,14 @@ dz_dt(const T0__& t, const 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 +template +auto 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__); } @@ -18908,10 +18844,9 @@ 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__) { +template +auto 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; @@ -18936,10 +18871,9 @@ g(const std::vector& y_slice, const int& start, const int& end, } struct g_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g(y_slice, start, end, pstream__); } @@ -18947,20 +18881,18 @@ return g(y_slice, start, end, 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 +template +auto 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 -stan::promote_args_t -h(const std::vector& y_slice, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) { +template +auto 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; @@ -18986,12 +18918,10 @@ h(const std::vector& y_slice, const int& start, const int& end, } 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 +template +auto 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__); } @@ -18999,21 +18929,18 @@ return h(y_slice, start, end, a, 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 +template +auto 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__); } }; -template -stan::promote_args_t -foo_lpdf(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { +template +auto 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()); @@ -19030,10 +18957,9 @@ foo_lpdf(const std::vector& y_slice, const int& start, const int& end, } 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return foo_lpdf(y_slice, start, end, pstream__); } @@ -19042,10 +18968,9 @@ 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 +template +auto 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__); } @@ -19659,10 +19584,9 @@ 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__) { +template +auto 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; @@ -19681,10 +19605,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g1(y_slice, start, end, pstream__); } @@ -19692,19 +19615,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -19733,10 +19654,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g2(y_slice, start, end, pstream__); } @@ -19744,19 +19664,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -19785,10 +19703,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g3(y_slice, start, end, pstream__); } @@ -19796,19 +19713,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -19838,10 +19753,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g4(y_slice, start, end, pstream__); } @@ -19849,19 +19763,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -19895,10 +19807,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g5(y_slice, start, end, pstream__); } @@ -19906,19 +19817,17 @@ 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 +template +auto 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, - const int& start, const int& end, std::ostream* pstream__) { +template +auto 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; @@ -19953,10 +19862,9 @@ g6(const std::vector>>& y_slice, } struct g6_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g6(y_slice, start, end, pstream__); } @@ -19964,19 +19872,17 @@ 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 +template +auto 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 -stan::promote_args_t -g7(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { +template +auto 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; @@ -20011,10 +19917,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g7(y_slice, start, end, pstream__); } @@ -20022,19 +19927,17 @@ 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 +template +auto 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, - const int& start, const int& end, std::ostream* pstream__) { +template +auto 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; @@ -20069,10 +19972,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g8(y_slice, start, end, pstream__); } @@ -20080,20 +19982,18 @@ 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 +template +auto 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 -h1(const std::vector& y, const int& start, const int& end, - const std::vector& a, std::ostream* pstream__) { +template +auto 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; @@ -20113,11 +20013,10 @@ 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 +template +auto 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__); } @@ -20125,21 +20024,19 @@ 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 +template +auto 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 -h2(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -20167,12 +20064,10 @@ 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 +template +auto 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__); } @@ -20180,22 +20075,19 @@ 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 +template +auto 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 -h3(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -20223,12 +20115,10 @@ 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 +template +auto 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__); } @@ -20236,22 +20126,19 @@ 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 +template +auto 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 -h4(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -20280,12 +20167,10 @@ 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 +template +auto 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__); } @@ -20293,22 +20178,19 @@ 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 +template +auto 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 -h5(const std::vector& y, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -20340,11 +20222,10 @@ 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 +template +auto 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__); } @@ -20352,22 +20233,19 @@ 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 +template +auto 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 -h6(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { +template +auto 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; @@ -20400,12 +20278,10 @@ 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 +template +auto 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__); } @@ -20413,23 +20289,19 @@ 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 +template +auto 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 -h7(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { +template +auto 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; @@ -20462,12 +20334,10 @@ 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 +template +auto 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__); } @@ -20475,23 +20345,19 @@ 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 +template +auto 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 -h8(const std::vector& y, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { +template +auto 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; @@ -20524,12 +20390,10 @@ 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 +template +auto 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__); } @@ -20537,12 +20401,10 @@ 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 +template +auto 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__); } @@ -22170,10 +22032,9 @@ 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__) { +template +auto 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; @@ -22192,10 +22053,9 @@ f1(const std::vector& y_slice, const int& start, const int& end, } struct f1_functor__ { -template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f1(y_slice, start, end, pstream__); } @@ -22203,19 +22063,17 @@ return f1(y_slice, start, end, 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 +template +auto 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__); } }; -template -stan::promote_args_t -f1a(const std::vector& y_slice, const int& start, const int& end, - std::ostream* pstream__) { +template +auto 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; @@ -22234,10 +22092,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f1a(y_slice, start, end, pstream__); } @@ -22245,19 +22102,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22276,10 +22131,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f2(y_slice, start, end, pstream__); } @@ -22287,19 +22141,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22318,10 +22170,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f3(y_slice, start, end, pstream__); } @@ -22329,19 +22180,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22360,10 +22209,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f4(y_slice, start, end, pstream__); } @@ -22371,19 +22219,17 @@ 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 +template +auto 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, - const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22402,10 +22248,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f5(y_slice, start, end, pstream__); } @@ -22413,19 +22258,17 @@ 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 +template +auto 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, - const int& start, const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22444,10 +22287,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f6(y_slice, start, end, pstream__); } @@ -22455,19 +22297,17 @@ 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 +template +auto 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, - const int& start, const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22486,10 +22326,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f7(y_slice, start, end, pstream__); } @@ -22497,19 +22336,17 @@ 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 +template +auto 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, - const int& start, const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22528,10 +22365,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f8(y_slice, start, end, pstream__); } @@ -22539,18 +22375,17 @@ 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 +template +auto 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__) { +template +auto 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; @@ -22569,9 +22404,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f9(y_slice, start, end, pstream__); } @@ -22579,17 +22414,17 @@ 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 +template +auto 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__) { +template +auto 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; @@ -22608,9 +22443,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f10(y_slice, start, end, pstream__); } @@ -22618,17 +22453,17 @@ 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 +template +auto 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__) { +template +auto 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; @@ -22647,9 +22482,9 @@ f11(const std::vector>>& y_slice, } struct f11_functor__ { -double -operator()(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) const +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f11(y_slice, start, end, pstream__); } @@ -22657,18 +22492,17 @@ 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 +template +auto 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__); } }; -template -stan::promote_args_t -f12(const std::vector>>& y_slice, - const int& start, const int& end, std::ostream* pstream__) { +template +auto 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; @@ -22687,10 +22521,9 @@ 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 +template +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f12(y_slice, start, end, pstream__); } @@ -22698,20 +22531,17 @@ 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 +template +auto 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 -g1(const std::vector& y_slice, const int& start, const int& end, - const T3__& a, std::ostream* pstream__) { +template +auto 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; @@ -22730,11 +22560,9 @@ 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 +template +auto 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__); } @@ -22742,21 +22570,17 @@ 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 +template +auto 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> -g2(const std::vector& y_slice, const int& start, const int& end, - const T3__& a_arg__, std::ostream* pstream__) { +template +auto 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; @@ -22777,11 +22601,9 @@ 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 T3__& a, std::ostream* pstream__) const +template +auto 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__); } @@ -22789,21 +22611,17 @@ 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 T3__& a) const +template +auto 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__); } }; -template -stan::promote_args_t> -g3(const std::vector& y_slice, const int& start, const int& end, - const T3__& a_arg__, std::ostream* pstream__) { +template +auto 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; @@ -22824,11 +22642,9 @@ 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 T3__& a, std::ostream* pstream__) const +template +auto 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__); } @@ -22836,21 +22652,17 @@ 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 T3__& a) const +template +auto 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__); } }; -template -stan::promote_args_t> -g4(const std::vector& y_slice, const int& start, const int& end, - const T3__& a_arg__, std::ostream* pstream__) { +template +auto 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; @@ -22871,11 +22683,9 @@ 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 T3__& a, std::ostream* pstream__) const +template +auto 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__); } @@ -22883,21 +22693,18 @@ 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 T3__& a) const +template +auto 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__); } }; -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 +auto 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; @@ -22916,12 +22723,10 @@ 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 +template +auto 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__); } @@ -22929,22 +22734,19 @@ 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 +template +auto 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 -g6(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -22963,12 +22765,10 @@ 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 +template +auto 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__); } @@ -22976,22 +22776,19 @@ 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 +template +auto 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 -g7(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -23010,12 +22807,10 @@ 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 +template +auto 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__); } @@ -23023,22 +22818,19 @@ 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 +template +auto 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 -g8(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -23057,12 +22849,10 @@ 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 +template +auto 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__); } @@ -23070,22 +22860,19 @@ 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 +template +auto 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 -g9(const std::vector& y_slice, const int& start, const int& end, - const std::vector>& a, std::ostream* pstream__) { +template +auto 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; @@ -23104,12 +22891,10 @@ g9(const std::vector& y_slice, const int& start, const int& end, } 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 +template +auto 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__); } @@ -23117,23 +22902,19 @@ 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 +template +auto 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 -g10(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { +template +auto 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; @@ -23152,13 +22933,10 @@ 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 +template +auto 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__); } @@ -23166,23 +22944,19 @@ 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 +template +auto 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 -g11(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { +template +auto 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; @@ -23201,13 +22975,10 @@ 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 +template +auto 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__); } @@ -23215,23 +22986,19 @@ 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 +template +auto 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 -g12(const std::vector& y_slice, const int& start, const int& end, - const std::vector>>& a, - std::ostream* pstream__) { +template +auto 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; @@ -23250,13 +23017,10 @@ 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 +template +auto 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__); } @@ -23264,40 +23028,38 @@ 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 +template +auto 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 -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__) { +template +auto 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, @@ -23331,30 +23093,30 @@ s(const std::vector& y_slice, const int& start, const int& end, } 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 +template +auto 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__); @@ -23363,37 +23125,36 @@ return s(y_slice, start, end, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, 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 +template +auto 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__); } }; -double -r(std::ostream* pstream__) { +auto r(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -23729,8 +23490,7 @@ r(std::ostream* pstream__) { } struct r_functor__ { -double -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return r(pstream__); } @@ -25580,8 +25340,7 @@ static constexpr std::array locations_array__ = template -double -foo0_log(const int& y, std::ostream* pstream__) { +auto foo0_log(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -25599,16 +25358,14 @@ foo0_log(const int& y, std::ostream* pstream__) { struct foo0_log_functor__ { template -double -operator()(const int& y, std::ostream* pstream__) const +auto operator()(const int& y, std::ostream* pstream__) const { return foo0_log(y, pstream__); } }; template -double -foo1_lpmf(const int& y, std::ostream* pstream__) { +auto foo1_lpmf(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -25626,17 +25383,15 @@ foo1_lpmf(const int& y, std::ostream* pstream__) { struct foo1_lpmf_functor__ { template -double -operator()(const int& y, std::ostream* pstream__) const +auto 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__) { +auto foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -25654,17 +25409,15 @@ 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 +auto 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__) { +auto foo2_log(const T0__& y, 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()); @@ -25682,16 +25435,14 @@ 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 +auto 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__) { +auto foo3_lpdf(const T0__& y, 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()); @@ -25709,8 +25460,7 @@ 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 +auto operator()(const T0__& y, std::ostream* pstream__) const { return foo3_lpdf(y, pstream__); } @@ -25718,9 +25468,8 @@ 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__) { +auto foo5_lp(const T0__& y, 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()); @@ -25739,9 +25488,8 @@ 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 +auto operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return foo5_lp(y, lp__, lp_accum__, pstream__); } @@ -29518,8 +29266,7 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -normal(const T0__& a, std::ostream* pstream__) { +auto normal(const T0__& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -29539,8 +29286,7 @@ normal(const T0__& a, std::ostream* pstream__) { struct normal_functor__ { template -stan::promote_args_t -operator()(const T0__& a, std::ostream* pstream__) const +auto operator()(const T0__& a, std::ostream* pstream__) const { return normal(a, pstream__); } @@ -29880,9 +29626,7 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { +auto lb_constrain(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; @@ -29902,9 +29646,7 @@ 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 +auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return lb_constrain(x, y, pstream__); } diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index 60b99c503a..614032b8c7 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -32,14 +32,11 @@ static constexpr std::array locations_array__ = " (in 'simple_function.stan', line 8, column 36 to line 10, column 5)"}; -template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t> -foo1(const T0__& a, const int& b, const std::vector& c, - const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, - std::ostream* pstream__) { +template +auto foo1(const T0__& a, const int& b, const std::vector& c, + const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, @@ -65,25 +62,20 @@ foo1(const T0__& a, const int& b, const std::vector& c, } struct foo1_functor__ { -template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t> -operator()(const T0__& a, const int& b, const std::vector& c, - const T3__& d, const T4__& e, const T5__& f, - std::ostream* pstream__) const +template +auto operator()(const T0__& a, const int& b, + const std::vector& c, const T3__& d, + const T4__& e, const T5__& f, std::ostream* pstream__) const { return foo1(a, b, c, d, e, f, pstream__); } }; -template -Eigen::Matrix, T1__, -T2__>, -1, 1> -foo2(const T0__& a_arg__, const std::vector>& b, - const std::vector>& c, - std::ostream* pstream__) { +template +auto foo2(const T0__& a_arg__, const std::vector& b, + const std::vector& c, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, T1__, T2__>; @@ -105,21 +97,17 @@ foo2(const T0__& a_arg__, const std::vector>& b, } struct foo2_functor__ { -template -Eigen::Matrix, T1__, -T2__>, -1, 1> -operator()(const T0__& a, const std::vector>& b, - const std::vector>& c, - std::ostream* pstream__) const +template +auto operator()(const T0__& a, const std::vector& b, + const std::vector& c, std::ostream* pstream__) const { return foo2(a, b, c, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { +auto foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -142,9 +130,7 @@ foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { struct foo3_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const +auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return foo3(a, b, pstream__); } diff --git a/test/integration/good/code-gen/ode/cpp.expected b/test/integration/good/code-gen/ode/cpp.expected index 5fbbb4fba4..1eeef31e77 100644 --- a/test/integration/good/code-gen/ode/cpp.expected +++ b/test/integration/good/code-gen/ode/cpp.expected @@ -58,9 +58,7 @@ static constexpr std::array locations_array__ = template -Eigen::Matrix>, -1, 1> -f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { +auto f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; @@ -82,9 +80,7 @@ f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { struct f_0_arg_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } @@ -93,19 +89,15 @@ return f_0_arg(t, z, pstream__); struct f_0_arg_odefunctor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } }; template -Eigen::Matrix, -T2__>, -1, 1> -f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, - std::ostream* pstream__) { +auto f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, T2__>; @@ -128,10 +120,8 @@ f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, struct f_1_arg_functor__ { template -Eigen::Matrix, -T2__>, -1, 1> -operator()(const T0__& t, const T1__& z, const T2__& a, - std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, const T2__& a, + std::ostream* pstream__) const { return f_1_arg(t, z, a, pstream__); } @@ -140,20 +130,16 @@ return f_1_arg(t, z, a, pstream__); struct f_1_arg_odefunctor__ { template -Eigen::Matrix, -T2__>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a) const { return f_1_arg(t, z, a, pstream__); } }; template -Eigen::Matrix, -T3__>, -1, 1> -f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, - std::ostream* pstream__) { +auto f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, T3__>; @@ -176,10 +162,8 @@ f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, struct f_2_arg_functor__ { template -Eigen::Matrix, -T3__>, -1, 1> -operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, - std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, + std::ostream* pstream__) const { return f_2_arg(t, z, b, a, pstream__); } @@ -188,10 +172,8 @@ return f_2_arg(t, z, b, a, pstream__); struct f_2_arg_odefunctor__ { template -Eigen::Matrix, -T3__>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const int& b, const T3__& a) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const int& b, const T3__& a) const { return f_2_arg(t, z, b, a, pstream__); } diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index c36e7fb292..d77d5429aa 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -43,8 +43,7 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -my_log1p_exp(const T0__& x, std::ostream* pstream__) { +auto my_log1p_exp(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -64,16 +63,14 @@ 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 +auto 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__) { +template +auto array_fun(const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -92,16 +89,16 @@ 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 +template +auto 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__) { +template +auto int_array_fun(const std::vector& a, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -120,16 +117,15 @@ 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 +template +auto 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 T0__& x_arg__, std::ostream* pstream__) { +auto my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; const auto& x = to_ref(x_arg__); @@ -155,15 +151,14 @@ my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { struct my_vector_mul_by_5_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& x, std::ostream* pstream__) const +auto operator()(const T0__& 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__) { +auto int_only_multiplication(const int& a, const int& b, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -182,16 +177,14 @@ 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 +auto 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__) { +auto test_lgamma(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -211,8 +204,7 @@ 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 +auto operator()(const T0__& x, std::ostream* pstream__) const { return test_lgamma(x, pstream__); } @@ -220,9 +212,8 @@ return test_lgamma(x, pstream__); template -void -test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +auto test_lp(const T0__& a, 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()); @@ -241,17 +232,15 @@ 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 +auto 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__) { +auto test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -271,17 +260,14 @@ 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 +auto operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const { return test_rng(a, base_rng__, pstream__); } }; template -stan::promote_args_t -test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { +auto test_lpdf(const T0__& a, const T1__& b, 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()); @@ -299,9 +285,7 @@ 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 +auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return test_lpdf(a, b, pstream__); } @@ -416,8 +400,7 @@ static constexpr std::array locations_array__ = template -Eigen::Matrix>, -1, 1> -integrand(const T0__& x_arg__, std::ostream* pstream__) { +auto integrand(const T0__& x_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; const auto& x = to_ref(x_arg__); @@ -438,19 +421,20 @@ integrand(const T0__& x_arg__, std::ostream* pstream__) { struct integrand_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& x, std::ostream* pstream__) const +auto operator()(const T0__& 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__) { +template +auto 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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -478,19 +462,20 @@ 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 +template +auto 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__) { +auto ode_integrate(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -517,8 +502,7 @@ ode_integrate(std::ostream* pstream__) { } struct ode_integrate_functor__ { -double -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return ode_integrate(pstream__); } diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index 6bd6732340..a80ddbf32e 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -55,12 +55,14 @@ static constexpr std::array locations_array__ = " (in 'ad-level-failing.stan', line 24, column 4 to column 16)"}; -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__) { +template +auto 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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -111,12 +113,14 @@ simple_SIR(const T0__& t, const 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 +template +auto 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__); } @@ -904,8 +908,9 @@ static constexpr std::array locations_array__ = " (in 'copy_fail.stan', line 45, column 4 to column 15)"}; -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { +template +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -943,15 +948,17 @@ 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 +template +auto 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__) { +template +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -995,18 +1002,18 @@ 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 +template +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -1121,10 +1128,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -7993,8 +7998,9 @@ static constexpr std::array locations_array__ = " (in 'expr-prop-fail5.stan', line 47, column 4 to column 15)"}; -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { +template +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -8032,15 +8038,17 @@ 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 +template +auto 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__) { +template +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -8084,18 +8092,18 @@ 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 +template +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -8210,10 +8218,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -10094,8 +10100,9 @@ static constexpr std::array locations_array__ = " (in 'expr-prop-fail6.stan', line 86, column 4 to line 142, column 5)"}; -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { +template +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -10133,15 +10140,17 @@ 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 +template +auto 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__) { +template +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -10185,18 +10194,17 @@ 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 +template +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { +auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -10313,22 +10321,22 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +auto operator()(const T0__& p, const T1__& 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 T3__& p_arg__, const T4__& phi_arg__, const T5__& psi, - const T6__& nu_arg__, const T7__& chi_arg__, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { +template +auto js_super_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, + const T3__& p_arg__, const T4__& phi_arg__, const T5__& psi, + const T6__& nu_arg__, const T7__& chi_arg__, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t, T5__, @@ -10766,14 +10774,16 @@ 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 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 +template +auto 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, lp__, lp_accum__, pstream__); @@ -15262,8 +15272,9 @@ static constexpr std::array locations_array__ = " (in 'fails-test.stan', line 45, column 4 to column 15)"}; -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { +template +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -15301,15 +15312,17 @@ 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 +template +auto 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__) { +template +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -15353,18 +15366,18 @@ 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 +template +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -15479,10 +15492,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -17452,8 +17463,9 @@ static constexpr std::array locations_array__ = " (in 'inlining-fail2.stan', line 156, column 4 to column 26)"}; -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { +template +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -17491,15 +17503,17 @@ 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 +template +auto 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__) { +template +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -17543,18 +17557,17 @@ 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 +template +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { +auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -17671,22 +17684,23 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +auto operator()(const T0__& p, const T1__& 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 T3__& p_arg__, const T4__& phi_arg__, - const T5__& gamma_arg__, const T6__& chi_arg__, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { +template +auto jolly_seber_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, + const T3__& p_arg__, const T4__& phi_arg__, + const T5__& gamma_arg__, const T6__& chi_arg__, + T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t, stan::value_type_t, @@ -18120,14 +18134,16 @@ 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 T3__& p, const T4__& phi, const T5__& gamma, - const T6__& chi, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +template +auto 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, lp__, lp_accum__, pstream__); @@ -18135,8 +18151,7 @@ return jolly_seber_lp(y, first, last, p, phi, gamma, chi, lp__, }; template -Eigen::Matrix>, -1, 1> -seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { +auto seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; const auto& gamma = to_ref(gamma_arg__); @@ -18192,8 +18207,7 @@ seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { struct seq_cprob_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& gamma, std::ostream* pstream__) const +auto operator()(const T0__& gamma, std::ostream* pstream__) const { return seq_cprob(gamma, pstream__); } @@ -21803,8 +21817,9 @@ static constexpr std::array locations_array__ = " (in 'lcm-fails2.stan', line 45, column 4 to column 15)"}; -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { +template +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -21842,15 +21857,17 @@ 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 +template +auto 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__) { +template +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -21894,18 +21911,18 @@ 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 +template +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -22020,10 +22037,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -23674,9 +23689,7 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { +auto foo_lpdf(const T0__& x, const T1__& mu, 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()); @@ -23695,17 +23708,14 @@ 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 +auto 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__) { +auto bar_lpmf(const int& n, const T1__& mu, 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()); @@ -23724,16 +23734,14 @@ 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 +auto 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__) { +auto baz_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()); @@ -23752,8 +23760,7 @@ 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 +auto operator()(const T0__& x, std::ostream* pstream__) const { return baz_lpdf(x, pstream__); } @@ -26056,9 +26063,8 @@ static constexpr std::array locations_array__ = template -void -nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +auto nrfun_lp(const T0__& x, const int& y, 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()); @@ -26083,16 +26089,14 @@ 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 +auto 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__) { +auto rfun(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -26119,16 +26123,14 @@ rfun(const int& y, std::ostream* pstream__) { } struct rfun_functor__ { -int -operator()(const int& y, std::ostream* pstream__) const +auto 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__) { +auto rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -26148,8 +26150,8 @@ 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 +auto operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return rfun_lp(lp__, lp_accum__, pstream__); } diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 060cebc4f4..1426a0f025 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -29,8 +29,7 @@ let%expect_test "udf" = [%expect {| template - void - sars(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { + auto sars(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; @@ -52,8 +51,7 @@ let%expect_test "udf" = struct sars_functor__ { template - void - operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const + auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return sars(x, y, pstream__); } @@ -87,13 +85,10 @@ let%expect_test "udf-expressions" = |> print_endline ; [%expect {| - template - Eigen::Matrix, stan::value_type_t, - stan::value_type_t, - T3__>, -1, -1> - sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, - const std::vector>& w, - std::ostream* pstream__) { + template + auto sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, + const std::vector& w, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t, stan::value_type_t, @@ -117,13 +112,10 @@ let%expect_test "udf-expressions" = } struct sars_functor__ { - template - Eigen::Matrix, stan::value_type_t, - stan::value_type_t, - T3__>, -1, -1> - operator()(const T0__& x, const T1__& y, const T2__& z, - const std::vector>& w, - std::ostream* pstream__) const + template + auto operator()(const T0__& x, const T1__& y, const T2__& z, + const std::vector& w, std::ostream* pstream__) const { return sars(x, y, z, w, pstream__); } From 3a4da5b8d921b25a0b1ba7c2343a997a36b4a59d Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Thu, 19 Aug 2021 11:17:59 -0400 Subject: [PATCH 2/7] do not use auto return type --- src/stan_math_backend/Stan_math_code_gen.ml | 4 +- test/integration/good/code-gen/cpp.expected | 1888 ++++++++++------- .../good/code-gen/expressions/cpp.expected | 38 +- .../good/code-gen/ode/cpp.expected | 48 +- .../standalone_functions/cpp.expected | 96 +- .../good/compiler-optimizations/cpp.expected | 290 +-- test/unit/Stan_math_code_gen_tests.ml | 20 +- 7 files changed, 1426 insertions(+), 958 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index bcc6d5d172..688a4ef724 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -223,7 +223,7 @@ let mk_extra_args templates args = 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.({fdname; fdsuffix; fdargs; fdbody; _}) +let pp_fun_def ppf Program.({fdrt; fdname; fdsuffix; fdargs; fdbody; _}) funs_used_in_reduce_sum funs_used_in_variadic_ode = let extra, extra_templates = match fdsuffix with @@ -262,7 +262,7 @@ let pp_fun_def ppf Program.({fdname; fdsuffix; fdargs; fdbody; _}) | (FnLpdf _ | FnTarget), `None -> pp_template_decorator ppf ("bool propto__" :: templates) | _ -> pp_template_decorator ppf templates ) ; - pf ppf "auto " ; + pp_returntype ppf fdargs fdrt ; let args, variadic_args = match variadic with | `ReduceSum -> List.split_n args 3 diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 1672092846..74ed60fe05 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -2529,9 +2529,11 @@ static constexpr std::array locations_array__ = " (in 'mother.stan', line 309, column 78 to line 313, column 3)"}; -auto foo(const int& n, std::ostream* pstream__) ; +int +foo(const int& n, std::ostream* pstream__) ; -auto foo(const int& n, std::ostream* pstream__) { +int +foo(const int& n, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -2555,7 +2557,8 @@ auto foo(const int& n, std::ostream* pstream__) { } struct foo_functor__ { -auto operator()(const int& n, std::ostream* pstream__) const +int +operator()(const int& n, std::ostream* pstream__) const { return foo(n, pstream__); } @@ -2564,18 +2567,22 @@ return foo(n, pstream__); template -auto sho(const T0__& t, const std::vector& y, - const std::vector& theta, - const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) ; +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 -auto sho(const T0__& t, const std::vector& y, - const std::vector& theta, - const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) { +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; @@ -2608,17 +2615,19 @@ struct sho_functor__ { template -auto 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 +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__); } }; -auto foo_bar0(std::ostream* pstream__) { +double +foo_bar0(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -2637,14 +2646,16 @@ auto foo_bar0(std::ostream* pstream__) { } struct foo_bar0_functor__ { -auto operator()(std::ostream* pstream__) const +double +operator()(std::ostream* pstream__) const { return foo_bar0(pstream__); } }; template -auto foo_bar1(const T0__& x, std::ostream* pstream__) { +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; @@ -2664,14 +2675,17 @@ auto foo_bar1(const T0__& x, std::ostream* pstream__) { struct foo_bar1_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const { return foo_bar1(x, pstream__); } }; template -auto foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { +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; @@ -2691,14 +2705,17 @@ auto foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { struct foo_bar2_functor__ { template -auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return foo_bar2(x, y, pstream__); } }; template -auto foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { +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()); @@ -2716,14 +2733,16 @@ auto foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lpmf_functor__ { template -auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +stan::promote_args_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lpmf(y, lambda, pstream__); } }; template -auto foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { +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; @@ -2743,14 +2762,16 @@ auto foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lcdf_functor__ { template -auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +stan::promote_args_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lcdf(y, lambda, pstream__); } }; template -auto foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { +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; @@ -2770,15 +2791,18 @@ auto foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lccdf_functor__ { template -auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +stan::promote_args_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lccdf(y, lambda, pstream__); } }; template -auto foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) { +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; @@ -2798,8 +2822,10 @@ auto foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, struct foo_rng_functor__ { template -auto operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) const { return foo_rng(mu, sigma, base_rng__, pstream__); } @@ -2807,8 +2833,9 @@ return foo_rng(mu, sigma, base_rng__, pstream__); template -auto unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +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()); @@ -2829,14 +2856,16 @@ auto unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, struct unit_normal_lp_functor__ { template -auto operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +void +operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return unit_normal_lp(u, lp__, lp_accum__, pstream__); } }; -auto foo_1(const int& a, std::ostream* pstream__) { +int +foo_1(const int& a, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -3069,13 +3098,15 @@ auto foo_1(const int& a, std::ostream* pstream__) { } struct foo_1_functor__ { -auto operator()(const int& a, std::ostream* pstream__) const +int +operator()(const int& a, std::ostream* pstream__) const { return foo_1(a, pstream__); } }; -auto foo_2(const int& a, std::ostream* pstream__) { +int +foo_2(const int& a, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -3108,14 +3139,16 @@ auto foo_2(const int& a, std::ostream* pstream__) { } struct foo_2_functor__ { -auto operator()(const int& a, std::ostream* pstream__) const +int +operator()(const int& a, std::ostream* pstream__) const { return foo_2(a, pstream__); } }; template -auto foo_3(const T0__& t, const int& n, std::ostream* 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; @@ -3135,7 +3168,8 @@ auto foo_3(const T0__& t, const int& n, std::ostream* pstream__) { struct foo_3_functor__ { template -auto operator()(const T0__& t, const int& n, std::ostream* pstream__) const +std::vector> +operator()(const T0__& t, const int& n, std::ostream* pstream__) const { return foo_3(t, n, pstream__); } @@ -3143,8 +3177,9 @@ return foo_3(t, n, pstream__); template -auto foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +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()); @@ -3163,15 +3198,17 @@ auto foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo_lp_functor__ { template -auto operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +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 -auto foo_4(const T0__& x, std::ostream* 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; @@ -3194,15 +3231,18 @@ auto foo_4(const T0__& x, std::ostream* pstream__) { struct foo_4_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +void +operator()(const T0__& x, std::ostream* pstream__) const { return foo_4(x, pstream__); } }; template -auto relative_diff(const T0__& x, const T1__& y, const T2__& max_, - const T3__& min_, std::ostream* pstream__) { +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; @@ -3256,8 +3296,10 @@ auto relative_diff(const T0__& x, const T1__& y, const T2__& max_, struct relative_diff_functor__ { template -auto operator()(const T0__& x, const T1__& y, const T2__& max_, - const T3__& min_, std::ostream* pstream__) const +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__); } @@ -3265,9 +3307,11 @@ return relative_diff(x, y, max_, min_, pstream__); template -auto 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__) { +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; @@ -3291,10 +3335,11 @@ auto foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, struct foo_5_functor__ { template -auto operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, - const std::vector& data_i, - std::ostream* pstream__) const +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__); } @@ -3302,8 +3347,10 @@ return foo_5(shared_params, job_params, data_r, data_i, pstream__); template -auto foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, - const T3__& x4, const T4__& x5, std::ostream* pstream__) { +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 -auto operator()(const T0__& x1, const T1__& x2, const T2__& x3, - const T3__& x4, const T4__& x5, std::ostream* pstream__) const +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__); } @@ -3338,10 +3387,12 @@ return foo_five_args(x1, x2, x3, x4, x5, pstream__); template -auto 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__) { +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 -auto 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 +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__); @@ -3375,8 +3428,9 @@ return foo_five_args_lp(x1, x2, x3, x4, x5, x6, lp__, lp_accum__, }; template -auto covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, - std::ostream* 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__); @@ -3410,7 +3464,8 @@ auto covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, struct covsqrt2corsqrt_functor__ { template -auto operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const +Eigen::Matrix>, -1, -1> +operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const { return covsqrt2corsqrt(mat, invert, pstream__); } @@ -3421,14 +3476,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3483,14 +3539,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3542,14 +3599,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3601,14 +3659,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3660,14 +3719,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3719,14 +3783,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3778,14 +3847,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3837,14 +3911,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3896,14 +3975,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -3955,14 +4039,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -4014,14 +4103,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -4073,14 +4167,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } @@ -4132,14 +4231,17 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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__) { +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 -auto 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 +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__); } }; -auto foo_6(std::ostream* pstream__) { +void +foo_6(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4221,13 +4326,15 @@ auto foo_6(std::ostream* pstream__) { } struct foo_6_functor__ { -auto operator()(std::ostream* pstream__) const +void +operator()(std::ostream* pstream__) const { return foo_6(pstream__); } }; -auto matfoo(std::ostream* pstream__) { +Eigen::Matrix +matfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4250,13 +4357,15 @@ auto matfoo(std::ostream* pstream__) { } struct matfoo_functor__ { -auto operator()(std::ostream* pstream__) const +Eigen::Matrix +operator()(std::ostream* pstream__) const { return matfoo(pstream__); } }; -auto vecfoo(std::ostream* pstream__) { +Eigen::Matrix +vecfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4276,14 +4385,16 @@ auto vecfoo(std::ostream* pstream__) { } struct vecfoo_functor__ { -auto operator()(std::ostream* pstream__) const +Eigen::Matrix +operator()(std::ostream* pstream__) const { return vecfoo(pstream__); } }; template -auto vecmufoo(const T0__& mu, std::ostream* pstream__) { +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; @@ -4306,14 +4417,16 @@ auto vecmufoo(const T0__& mu, std::ostream* pstream__) { struct vecmufoo_functor__ { template -auto operator()(const T0__& mu, std::ostream* pstream__) const +Eigen::Matrix, -1, 1> +operator()(const T0__& mu, std::ostream* pstream__) const { return vecmufoo(mu, pstream__); } }; template -auto vecmubar(const T0__& mu, std::ostream* pstream__) { +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; @@ -4338,7 +4451,8 @@ auto vecmubar(const T0__& mu, std::ostream* pstream__) { struct vecmubar_functor__ { template -auto operator()(const T0__& mu, std::ostream* pstream__) const +Eigen::Matrix, -1, 1> +operator()(const T0__& mu, std::ostream* pstream__) const { return vecmubar(mu, pstream__); } @@ -4346,10 +4460,12 @@ return vecmubar(mu, pstream__); template -auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, - const std::vector& dat, - const std::vector& dat_int, - std::ostream* pstream__) { +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__>; @@ -4386,10 +4502,12 @@ auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, struct algebra_system_functor__ { template -auto operator()(const T0__& x, const T1__& y, - const std::vector& dat, - const std::vector& dat_int, - std::ostream* pstream__) const +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__); } @@ -4397,10 +4515,11 @@ return algebra_system(x, y, dat, dat_int, pstream__); template -auto binomialf(const T0__& phi_arg__, const T1__& theta_arg__, - const std::vector& x_r, - const std::vector& x_i, - std::ostream* pstream__) { +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; @@ -4430,10 +4549,11 @@ auto binomialf(const T0__& phi_arg__, const T1__& theta_arg__, struct binomialf_functor__ { template -auto operator()(const T0__& phi, const T1__& theta, - const std::vector& x_r, - const std::vector& x_i, - std::ostream* pstream__) const +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__); } @@ -10391,10 +10511,12 @@ static constexpr std::array locations_array__ = template -auto sho(const T0__& t, const std::vector& y, - const std::vector& theta, - const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) { +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; @@ -10427,11 +10549,12 @@ struct sho_functor__ { template -auto 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 +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__); } @@ -10439,11 +10562,12 @@ return sho(t, y, theta, x, x_int, pstream__); template -auto integrand(const T0__& x, const T1__& xc, - const std::vector& theta, - const std::vector& x_r, - const std::vector& x_i, - std::ostream* pstream__) { +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; @@ -10464,11 +10588,12 @@ auto integrand(const T0__& x, const T1__& xc, struct integrand_functor__ { template -auto 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 +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__); } @@ -10476,9 +10601,11 @@ return integrand(x, xc, theta, x_r, x_i, pstream__); template -auto foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, - const std::vector& data_r, - const std::vector& data_i, std::ostream* pstream__) { +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__>; @@ -10503,10 +10630,11 @@ auto foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, struct foo_functor__ { template -auto operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, - const std::vector& data_i, - std::ostream* pstream__) const +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__); } @@ -10514,9 +10642,11 @@ return foo(shared_params, job_params, data_r, data_i, pstream__); template -auto goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, - const std::vector& data_r, - const std::vector& data_i, std::ostream* pstream__) { +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__>; @@ -10541,17 +10671,19 @@ auto goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, struct goo_functor__ { template -auto operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, - const std::vector& data_i, - std::ostream* pstream__) const +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 -auto map_rectfake(const T0__& x, std::ostream* pstream__) { +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; @@ -10571,7 +10703,8 @@ auto map_rectfake(const T0__& x, std::ostream* pstream__) { struct map_rectfake_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const { return map_rectfake(x, pstream__); } @@ -10579,10 +10712,12 @@ return map_rectfake(x, pstream__); template -auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, - const std::vector& dat, - const std::vector& dat_int, - std::ostream* pstream__) { +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__>; @@ -10619,10 +10754,12 @@ auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, struct algebra_system_functor__ { template -auto operator()(const T0__& x, const T1__& y, - const std::vector& dat, - const std::vector& dat_int, - std::ostream* pstream__) const +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__); } @@ -12784,8 +12921,10 @@ static constexpr std::array locations_array__ = template -auto f(const T0__& t, const T1__& z_arg__, const T2__& a, - const T3__& b_arg__, std::ostream* pstream__) { +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__, @@ -12810,8 +12949,10 @@ auto f(const T0__& t, const T1__& z_arg__, const T2__& a, struct f_functor__ { template -auto operator()(const T0__& t, const T1__& z, const T2__& a, const T3__& b, - std::ostream* pstream__) const +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__); } @@ -12820,8 +12961,10 @@ return f(t, z, a, b, pstream__); struct f_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a, const T3__& b) const +Eigen::Matrix, T2__, +stan::value_type_t>, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a, const T3__& b) const { return f(t, z, a, b, pstream__); } @@ -16208,10 +16351,12 @@ static constexpr std::array locations_array__ = template -auto 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__) { +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; @@ -16257,11 +16402,12 @@ struct dz_dt_functor__ { template -auto 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 +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__); } @@ -18845,8 +18991,9 @@ struct h_rsfunctor__; template struct foo_lpdf_rsfunctor__; template -auto g(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -18872,8 +19019,9 @@ auto g(const std::vector& y_slice, const int& start, struct g_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -18882,17 +19030,20 @@ return g(y_slice, start, end, pstream__); struct g_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto h(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -18919,9 +19070,11 @@ auto h(const std::vector& y_slice, const int& start, struct h_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -18930,17 +19083,20 @@ return h(y_slice, start, end, a, pstream__); struct h_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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__); } }; template -auto foo_lpdf(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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()); @@ -18958,8 +19114,9 @@ auto foo_lpdf(const std::vector& y_slice, const int& start, struct foo_lpdf_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -18969,8 +19126,9 @@ return foo_lpdf(y_slice, start, end, pstream__); template struct foo_lpdf_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19585,8 +19743,9 @@ struct h6_rsfunctor__; struct h7_rsfunctor__; struct h8_rsfunctor__; template -auto g1(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19606,8 +19765,9 @@ auto g1(const std::vector& y_slice, const int& start, struct g1_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19616,16 +19776,18 @@ return g1(y_slice, start, end, pstream__); struct g1_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g2(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19655,8 +19817,9 @@ auto g2(const std::vector& y_slice, const int& start, struct g2_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19665,16 +19828,18 @@ return g2(y_slice, start, end, pstream__); struct g2_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g3(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19704,8 +19869,9 @@ auto g3(const std::vector& y_slice, const int& start, struct g3_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19714,16 +19880,18 @@ return g3(y_slice, start, end, pstream__); struct g3_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g4(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19754,8 +19922,9 @@ auto g4(const std::vector& y_slice, const int& start, struct g4_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19764,16 +19933,18 @@ return g4(y_slice, start, end, pstream__); struct g4_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g5(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19808,8 +19979,9 @@ auto g5(const std::vector& y_slice, const int& start, struct g5_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19818,16 +19990,18 @@ return g5(y_slice, start, end, pstream__); struct g5_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g6(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19863,8 +20037,9 @@ auto g6(const std::vector& y_slice, const int& start, struct g6_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19873,16 +20048,18 @@ return g6(y_slice, start, end, pstream__); struct g6_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g7(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19918,8 +20095,9 @@ auto g7(const std::vector& y_slice, const int& start, struct g7_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19928,16 +20106,18 @@ return g7(y_slice, start, end, pstream__); struct g7_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g8(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -19973,8 +20153,9 @@ auto g8(const std::vector& y_slice, const int& start, struct g8_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -19983,17 +20164,19 @@ return g8(y_slice, start, end, pstream__); struct g8_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto h1(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20014,9 +20197,11 @@ auto h1(const std::vector& y, const int& start, struct h1_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20025,18 +20210,21 @@ return h1(y, start, end, a, pstream__); struct h1_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto h2(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20065,9 +20253,11 @@ auto h2(const std::vector& y, const int& start, struct h2_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20076,18 +20266,21 @@ return h2(y, start, end, a, pstream__); struct h2_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto h3(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20116,9 +20309,11 @@ auto h3(const std::vector& y, const int& start, struct h3_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20127,18 +20322,21 @@ return h3(y, start, end, a, pstream__); struct h3_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto h4(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20168,9 +20366,11 @@ auto h4(const std::vector& y, const int& start, struct h4_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20179,18 +20379,21 @@ return h4(y, start, end, a, pstream__); struct h4_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto h5(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20223,9 +20426,11 @@ auto h5(const std::vector& y, const int& start, struct h5_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20234,18 +20439,21 @@ return h5(y, start, end, a, pstream__); struct h5_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto h6(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20279,9 +20487,11 @@ auto h6(const std::vector& y, const int& start, struct h6_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20290,18 +20500,21 @@ return h6(y, start, end, a, pstream__); struct h6_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto h7(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20335,9 +20548,11 @@ auto h7(const std::vector& y, const int& start, struct h7_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20346,18 +20561,21 @@ return h7(y, start, end, a, pstream__); struct h7_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto h8(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -20391,9 +20609,11 @@ auto h8(const std::vector& y, const int& start, struct h8_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -20402,9 +20622,11 @@ return h8(y, start, end, a, pstream__); struct h8_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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__); } @@ -22033,8 +22255,9 @@ struct g8_rsfunctor__; struct g9_rsfunctor__; struct s_rsfunctor__; template -auto f1(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22054,8 +22277,9 @@ auto f1(const std::vector& y_slice, const int& start, struct f1_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22064,16 +22288,18 @@ return f1(y_slice, start, end, pstream__); struct f1_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } }; template -auto f1a(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22093,8 +22319,9 @@ auto f1a(const std::vector& y_slice, const int& start, struct f1a_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22103,16 +22330,18 @@ return f1a(y_slice, start, end, pstream__); struct f1a_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto f2(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22132,8 +22361,9 @@ auto f2(const std::vector& y_slice, const int& start, struct f2_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22142,16 +22372,18 @@ return f2(y_slice, start, end, pstream__); struct f2_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto f3(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22171,8 +22403,9 @@ auto f3(const std::vector& y_slice, const int& start, struct f3_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22181,16 +22414,18 @@ return f3(y_slice, start, end, pstream__); struct f3_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto f4(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22210,8 +22445,9 @@ auto f4(const std::vector& y_slice, const int& start, struct f4_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22220,16 +22456,18 @@ return f4(y_slice, start, end, pstream__); struct f4_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto f5(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22249,8 +22487,9 @@ auto f5(const std::vector& y_slice, const int& start, struct f5_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22259,16 +22498,18 @@ return f5(y_slice, start, end, pstream__); struct f5_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto f6(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22288,8 +22529,9 @@ auto f6(const std::vector& y_slice, const int& start, struct f6_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22298,16 +22540,18 @@ return f6(y_slice, start, end, pstream__); struct f6_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto f7(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22327,8 +22571,9 @@ auto f7(const std::vector& y_slice, const int& start, struct f7_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22337,16 +22582,18 @@ return f7(y_slice, start, end, pstream__); struct f7_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto f8(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22366,8 +22613,9 @@ auto f8(const std::vector& y_slice, const int& start, struct f8_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22376,16 +22624,18 @@ return f8(y_slice, start, end, pstream__); struct f8_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } }; template -auto f9(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22405,8 +22655,9 @@ auto f9(const std::vector& y_slice, const int& start, struct f9_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +double +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f9(y_slice, start, end, pstream__); } @@ -22415,16 +22666,18 @@ return f9(y_slice, start, end, pstream__); struct f9_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } }; template -auto f10(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22444,8 +22697,9 @@ auto f10(const std::vector& y_slice, const int& start, struct f10_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +double +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f10(y_slice, start, end, pstream__); } @@ -22454,16 +22708,18 @@ return f10(y_slice, start, end, pstream__); struct f10_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } }; template -auto f11(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22483,8 +22739,9 @@ auto f11(const std::vector& y_slice, const int& start, struct f11_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +double +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f11(y_slice, start, end, pstream__); } @@ -22493,16 +22750,18 @@ return f11(y_slice, start, end, pstream__); struct f11_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } }; template -auto f12(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { +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; @@ -22522,8 +22781,9 @@ auto f12(const std::vector& y_slice, const int& start, struct f12_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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__); } @@ -22532,16 +22792,19 @@ return f12(y_slice, start, end, pstream__); struct f12_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +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 -auto g1(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) { +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; @@ -22561,8 +22824,10 @@ auto g1(const std::vector& y_slice, const int& start, struct g1_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +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__); } @@ -22571,16 +22836,20 @@ return g1(y_slice, start, end, a, pstream__); struct g1_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +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 -auto g2(const std::vector& y_slice, const int& start, - const int& end, const T3__& a_arg__, std::ostream* pstream__) { +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; @@ -22602,8 +22871,10 @@ auto g2(const std::vector& y_slice, const int& start, struct g2_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +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__); } @@ -22612,16 +22883,20 @@ return g2(y_slice, start, end, a, pstream__); struct g2_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +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__); } }; template -auto g3(const std::vector& y_slice, const int& start, - const int& end, const T3__& a_arg__, std::ostream* pstream__) { +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; @@ -22643,8 +22918,10 @@ auto g3(const std::vector& y_slice, const int& start, struct g3_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +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__); } @@ -22653,16 +22930,20 @@ return g3(y_slice, start, end, a, pstream__); struct g3_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +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__); } }; template -auto g4(const std::vector& y_slice, const int& start, - const int& end, const T3__& a_arg__, std::ostream* pstream__) { +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; @@ -22684,8 +22965,10 @@ auto g4(const std::vector& y_slice, const int& start, struct g4_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +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__); } @@ -22694,17 +22977,21 @@ return g4(y_slice, start, end, a, pstream__); struct g4_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +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__); } }; template -auto g5(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -22724,9 +23011,11 @@ auto g5(const std::vector& y_slice, const int& start, struct g5_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -22735,18 +23024,22 @@ return g5(y_slice, start, end, a, pstream__); struct g5_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto g6(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -22766,9 +23059,11 @@ auto g6(const std::vector& y_slice, const int& start, struct g6_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -22777,18 +23072,22 @@ return g6(y_slice, start, end, a, pstream__); struct g6_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto g7(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -22808,9 +23107,11 @@ auto g7(const std::vector& y_slice, const int& start, struct g7_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -22819,18 +23120,22 @@ return g7(y_slice, start, end, a, pstream__); struct g7_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto g8(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -22850,9 +23155,11 @@ auto g8(const std::vector& y_slice, const int& start, struct g8_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -22861,18 +23168,22 @@ return g8(y_slice, start, end, a, pstream__); struct g8_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto g9(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -22892,9 +23203,11 @@ auto g9(const std::vector& y_slice, const int& start, struct g9_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -22903,18 +23216,22 @@ return g9(y_slice, start, end, a, pstream__); struct g9_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto g10(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -22934,9 +23251,11 @@ auto g10(const std::vector& y_slice, const int& start, struct g10_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -22945,18 +23264,22 @@ return g10(y_slice, start, end, a, pstream__); struct g10_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto g11(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -22976,9 +23299,11 @@ auto g11(const std::vector& y_slice, const int& start, struct g11_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -22987,18 +23312,22 @@ return g11(y_slice, start, end, a, pstream__); struct g11_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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 -auto g12(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { +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; @@ -23018,9 +23347,11 @@ auto g12(const std::vector& y_slice, const int& start, struct g12_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +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__); } @@ -23029,9 +23360,11 @@ return g12(y_slice, start, end, a, pstream__); struct g12_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +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__); } @@ -23045,21 +23378,25 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -auto 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__) { +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, @@ -23101,22 +23438,26 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -auto 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 +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__); @@ -23133,28 +23474,34 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -auto 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 +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__); } }; -auto r(std::ostream* pstream__) { +double +r(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -23490,7 +23837,8 @@ auto r(std::ostream* pstream__) { } struct r_functor__ { -auto operator()(std::ostream* pstream__) const +double +operator()(std::ostream* pstream__) const { return r(pstream__); } @@ -25340,7 +25688,8 @@ static constexpr std::array locations_array__ = template -auto foo0_log(const int& y, std::ostream* pstream__) { +double +foo0_log(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -25358,14 +25707,16 @@ auto foo0_log(const int& y, std::ostream* pstream__) { struct foo0_log_functor__ { template -auto operator()(const int& y, std::ostream* pstream__) const +double +operator()(const int& y, std::ostream* pstream__) const { return foo0_log(y, pstream__); } }; template -auto foo1_lpmf(const int& y, std::ostream* pstream__) { +double +foo1_lpmf(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -25383,15 +25734,17 @@ auto foo1_lpmf(const int& y, std::ostream* pstream__) { struct foo1_lpmf_functor__ { template -auto operator()(const int& y, std::ostream* pstream__) const +double +operator()(const int& y, std::ostream* pstream__) const { return foo1_lpmf(y, pstream__); } }; template -auto foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +double +foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -25409,15 +25762,17 @@ auto foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo4_lp_functor__ { template -auto operator()(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +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 -auto foo2_log(const T0__& y, std::ostream* pstream__) { +stan::promote_args_t +foo2_log(const T0__& y, 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()); @@ -25435,14 +25790,16 @@ auto foo2_log(const T0__& y, std::ostream* pstream__) { struct foo2_log_functor__ { template -auto operator()(const T0__& y, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& y, std::ostream* pstream__) const { return foo2_log(y, pstream__); } }; template -auto foo3_lpdf(const T0__& y, std::ostream* pstream__) { +stan::promote_args_t +foo3_lpdf(const T0__& y, 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()); @@ -25460,7 +25817,8 @@ auto foo3_lpdf(const T0__& y, std::ostream* pstream__) { struct foo3_lpdf_functor__ { template -auto operator()(const T0__& y, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& y, std::ostream* pstream__) const { return foo3_lpdf(y, pstream__); } @@ -25468,8 +25826,9 @@ return foo3_lpdf(y, pstream__); template -auto foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +stan::promote_args_t +foo5_lp(const T0__& y, 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()); @@ -25488,8 +25847,9 @@ auto foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo5_lp_functor__ { template -auto operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +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__); } @@ -29266,7 +29626,8 @@ static constexpr std::array locations_array__ = template -auto normal(const T0__& a, std::ostream* pstream__) { +stan::promote_args_t +normal(const T0__& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -29286,7 +29647,8 @@ auto normal(const T0__& a, std::ostream* pstream__) { struct normal_functor__ { template -auto operator()(const T0__& a, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& a, std::ostream* pstream__) const { return normal(a, pstream__); } @@ -29626,7 +29988,9 @@ static constexpr std::array locations_array__ = template -auto lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { +stan::promote_args_t +lb_constrain(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; @@ -29646,7 +30010,9 @@ auto lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { struct lb_constrain_functor__ { template -auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return lb_constrain(x, y, pstream__); } diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index 614032b8c7..2d3f7c36cf 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -34,9 +34,12 @@ static constexpr std::array locations_array__ = template -auto foo1(const T0__& a, const int& b, const std::vector& c, - const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, - std::ostream* pstream__) { +stan::promote_args_t, +stan::value_type_t, +stan::value_type_t> +foo1(const T0__& a, const int& b, const std::vector& c, + const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, @@ -64,9 +67,12 @@ auto foo1(const T0__& a, const int& b, const std::vector& c, struct foo1_functor__ { template -auto operator()(const T0__& a, const int& b, - const std::vector& c, const T3__& d, - const T4__& e, const T5__& f, std::ostream* pstream__) const +stan::promote_args_t, +stan::value_type_t, +stan::value_type_t> +operator()(const T0__& a, const int& b, const std::vector& c, + const T3__& d, const T4__& e, const T5__& f, + std::ostream* pstream__) const { return foo1(a, b, c, d, e, f, pstream__); } @@ -74,8 +80,10 @@ return foo1(a, b, c, d, e, f, pstream__); template -auto foo2(const T0__& a_arg__, const std::vector& b, - const std::vector& c, std::ostream* pstream__) { +Eigen::Matrix, T1__, +T2__>, -1, 1> +foo2(const T0__& a_arg__, const std::vector& b, + const std::vector& c, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, T1__, T2__>; @@ -99,15 +107,19 @@ auto foo2(const T0__& a_arg__, const std::vector& b, struct foo2_functor__ { template -auto operator()(const T0__& a, const std::vector& b, - const std::vector& c, std::ostream* pstream__) const +Eigen::Matrix, T1__, +T2__>, -1, 1> +operator()(const T0__& a, const std::vector& b, + const std::vector& c, std::ostream* pstream__) const { return foo2(a, b, c, pstream__); } }; template -auto foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { +Eigen::Matrix, +stan::value_type_t>, -1, -1> +foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -130,7 +142,9 @@ auto foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { struct foo3_functor__ { template -auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const +Eigen::Matrix, +stan::value_type_t>, -1, -1> +operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return foo3(a, b, pstream__); } diff --git a/test/integration/good/code-gen/ode/cpp.expected b/test/integration/good/code-gen/ode/cpp.expected index 1eeef31e77..5fbbb4fba4 100644 --- a/test/integration/good/code-gen/ode/cpp.expected +++ b/test/integration/good/code-gen/ode/cpp.expected @@ -58,7 +58,9 @@ static constexpr std::array locations_array__ = template -auto f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { +Eigen::Matrix>, -1, 1> +f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; @@ -80,7 +82,9 @@ auto f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { struct f_0_arg_functor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +Eigen::Matrix>, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } @@ -89,15 +93,19 @@ return f_0_arg(t, z, pstream__); struct f_0_arg_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +Eigen::Matrix>, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } }; template -auto f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, - std::ostream* pstream__) { +Eigen::Matrix, +T2__>, -1, 1> +f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, T2__>; @@ -120,8 +128,10 @@ auto f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, struct f_1_arg_functor__ { template -auto operator()(const T0__& t, const T1__& z, const T2__& a, - std::ostream* pstream__) const +Eigen::Matrix, +T2__>, -1, 1> +operator()(const T0__& t, const T1__& z, const T2__& a, + std::ostream* pstream__) const { return f_1_arg(t, z, a, pstream__); } @@ -130,16 +140,20 @@ return f_1_arg(t, z, a, pstream__); struct f_1_arg_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a) const +Eigen::Matrix, +T2__>, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a) const { return f_1_arg(t, z, a, pstream__); } }; template -auto f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, - std::ostream* pstream__) { +Eigen::Matrix, +T3__>, -1, 1> +f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, T3__>; @@ -162,8 +176,10 @@ auto f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, struct f_2_arg_functor__ { template -auto operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, - std::ostream* pstream__) const +Eigen::Matrix, +T3__>, -1, 1> +operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, + std::ostream* pstream__) const { return f_2_arg(t, z, b, a, pstream__); } @@ -172,8 +188,10 @@ return f_2_arg(t, z, b, a, pstream__); struct f_2_arg_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const int& b, const T3__& a) const +Eigen::Matrix, +T3__>, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const int& b, const T3__& a) const { return f_2_arg(t, z, b, a, pstream__); } diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index d77d5429aa..2b8cbef7db 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -43,7 +43,8 @@ static constexpr std::array locations_array__ = template -auto my_log1p_exp(const T0__& x, std::ostream* pstream__) { +stan::promote_args_t +my_log1p_exp(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -63,14 +64,16 @@ auto my_log1p_exp(const T0__& x, std::ostream* pstream__) { struct my_log1p_exp_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const { return my_log1p_exp(x, pstream__); } }; template -auto array_fun(const std::vector& a, std::ostream* pstream__) { +stan::promote_args_t +array_fun(const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -90,15 +93,16 @@ auto array_fun(const std::vector& a, std::ostream* pstream__) { struct array_fun_functor__ { template -auto operator()(const std::vector& a, std::ostream* pstream__) const +stan::promote_args_t +operator()(const std::vector& a, std::ostream* pstream__) const { return array_fun(a, pstream__); } }; template -auto int_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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -118,14 +122,16 @@ auto int_array_fun(const std::vector& a, struct int_array_fun_functor__ { template -auto operator()(const std::vector& a, std::ostream* pstream__) const +double +operator()(const std::vector& a, std::ostream* pstream__) const { return int_array_fun(a, pstream__); } }; template -auto my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { +Eigen::Matrix>, -1, 1> +my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; const auto& x = to_ref(x_arg__); @@ -151,14 +157,15 @@ auto my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { struct my_vector_mul_by_5_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +Eigen::Matrix>, -1, 1> +operator()(const T0__& x, std::ostream* pstream__) const { return my_vector_mul_by_5(x, pstream__); } }; -auto int_only_multiplication(const int& a, const int& b, - std::ostream* pstream__) { +int +int_only_multiplication(const int& a, const int& b, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -177,14 +184,16 @@ auto int_only_multiplication(const int& a, const int& b, } struct int_only_multiplication_functor__ { -auto operator()(const int& a, const int& b, std::ostream* pstream__) const +int +operator()(const int& a, const int& b, std::ostream* pstream__) const { return int_only_multiplication(a, b, pstream__); } }; template -auto test_lgamma(const T0__& x, std::ostream* pstream__) { +stan::promote_args_t +test_lgamma(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -204,7 +213,8 @@ auto test_lgamma(const T0__& x, std::ostream* pstream__) { struct test_lgamma_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const { return test_lgamma(x, pstream__); } @@ -212,8 +222,9 @@ return test_lgamma(x, pstream__); template -auto test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +void +test_lp(const T0__& a, 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()); @@ -232,15 +243,17 @@ auto test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, struct test_lp_functor__ { template -auto operator()(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +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 -auto test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { +stan::promote_args_t +test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -260,14 +273,17 @@ auto test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { struct test_rng_functor__ { template -auto operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const { return test_rng(a, base_rng__, pstream__); } }; template -auto test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { +stan::promote_args_t +test_lpdf(const T0__& a, const T1__& b, 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()); @@ -285,7 +301,9 @@ auto test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { struct test_lpdf_functor__ { template -auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return test_lpdf(a, b, pstream__); } @@ -400,7 +418,8 @@ static constexpr std::array locations_array__ = template -auto integrand(const T0__& x_arg__, std::ostream* pstream__) { +Eigen::Matrix>, -1, 1> +integrand(const T0__& x_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; const auto& x = to_ref(x_arg__); @@ -421,7 +440,8 @@ auto integrand(const T0__& x_arg__, std::ostream* pstream__) { struct integrand_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +Eigen::Matrix>, -1, 1> +operator()(const T0__& x, std::ostream* pstream__) const { return integrand(x, pstream__); } @@ -430,11 +450,12 @@ return integrand(x, pstream__); template -auto 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__) { +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__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -465,17 +486,19 @@ struct integrand_ode_functor__ { template -auto 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 +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__); } }; -auto ode_integrate(std::ostream* pstream__) { +double +ode_integrate(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -502,7 +525,8 @@ auto ode_integrate(std::ostream* pstream__) { } struct ode_integrate_functor__ { -auto operator()(std::ostream* pstream__) const +double +operator()(std::ostream* pstream__) const { return ode_integrate(pstream__); } diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index a80ddbf32e..0d60795915 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -58,11 +58,12 @@ static constexpr std::array locations_array__ = template -auto 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__) { +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__) { using local_scalar_t__ = stan::promote_args_t; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -116,11 +117,12 @@ struct simple_SIR_functor__ { template -auto 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 +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__); } @@ -909,8 +911,8 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { +int +first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -949,16 +951,16 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -1003,17 +1005,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { +Eigen::Matrix, +stan::value_type_t>, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -1128,8 +1131,10 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +Eigen::Matrix, +stan::value_type_t>, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -7999,8 +8004,8 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { +int +first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -8039,16 +8044,16 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -8093,17 +8098,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { +Eigen::Matrix, +stan::value_type_t>, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -8218,8 +8224,10 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +Eigen::Matrix, +stan::value_type_t>, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -10101,8 +10109,8 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { +int +first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -10141,16 +10149,16 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -10195,16 +10203,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { +Eigen::Matrix, +stan::value_type_t>, -1, -1> +prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -10321,7 +10331,9 @@ auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -auto operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +Eigen::Matrix, +stan::value_type_t>, -1, -1> +operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const { return prob_uncaptured(p, phi, pstream__); } @@ -10331,12 +10343,13 @@ template -auto js_super_lp(const std::vector& y, - const std::vector& first, - const std::vector& last, - const T3__& p_arg__, const T4__& phi_arg__, const T5__& psi, - const T6__& nu_arg__, const T7__& chi_arg__, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { +void +js_super_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, const T3__& p_arg__, + const T4__& phi_arg__, const T5__& psi, const T6__& nu_arg__, + const T7__& chi_arg__, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t, T5__, @@ -10778,12 +10791,12 @@ template -auto 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 +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, lp__, lp_accum__, pstream__); @@ -15273,8 +15286,8 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { +int +first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -15313,16 +15326,16 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -15367,17 +15380,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { +Eigen::Matrix, +stan::value_type_t>, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -15492,8 +15506,10 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +Eigen::Matrix, +stan::value_type_t>, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -17464,8 +17480,8 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { +int +first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -17504,16 +17520,16 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -17558,16 +17574,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { +Eigen::Matrix, +stan::value_type_t>, -1, -1> +prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -17684,7 +17702,9 @@ auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -auto operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +Eigen::Matrix, +stan::value_type_t>, -1, -1> +operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const { return prob_uncaptured(p, phi, pstream__); } @@ -17694,13 +17714,13 @@ template -auto jolly_seber_lp(const std::vector& y, - const std::vector& first, - const std::vector& last, - const T3__& p_arg__, const T4__& phi_arg__, - const T5__& gamma_arg__, const T6__& chi_arg__, - T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { +void +jolly_seber_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, const T3__& p_arg__, + const T4__& phi_arg__, const T5__& gamma_arg__, + const T6__& chi_arg__, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t, stan::value_type_t, @@ -18138,12 +18158,12 @@ template -auto 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 +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, lp__, lp_accum__, pstream__); @@ -18151,7 +18171,8 @@ return jolly_seber_lp(y, first, last, p, phi, gamma, chi, lp__, }; template -auto seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { +Eigen::Matrix>, -1, 1> +seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t>; int current_statement__ = 0; const auto& gamma = to_ref(gamma_arg__); @@ -18207,7 +18228,8 @@ auto seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { struct seq_cprob_functor__ { template -auto operator()(const T0__& gamma, std::ostream* pstream__) const +Eigen::Matrix>, -1, 1> +operator()(const T0__& gamma, std::ostream* pstream__) const { return seq_cprob(gamma, pstream__); } @@ -21818,8 +21840,8 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { +int +first_capture(const std::vector& y_i, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -21858,16 +21880,16 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_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; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -21912,17 +21934,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { +Eigen::Matrix, +stan::value_type_t>, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t>; int current_statement__ = 0; @@ -22037,8 +22060,10 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +Eigen::Matrix, +stan::value_type_t>, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -23689,7 +23714,9 @@ static constexpr std::array locations_array__ = template -auto foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { +stan::promote_args_t +foo_lpdf(const T0__& x, const T1__& mu, 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()); @@ -23708,14 +23735,17 @@ auto foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { struct foo_lpdf_functor__ { template -auto operator()(const T0__& x, const T1__& mu, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, const T1__& mu, std::ostream* pstream__) const { return foo_lpdf(x, mu, pstream__); } }; template -auto bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { +stan::promote_args_t +bar_lpmf(const int& n, const T1__& mu, 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()); @@ -23734,14 +23764,16 @@ auto bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { struct bar_lpmf_functor__ { template -auto operator()(const int& n, const T1__& mu, std::ostream* pstream__) const +stan::promote_args_t +operator()(const int& n, const T1__& mu, std::ostream* pstream__) const { return bar_lpmf(n, mu, pstream__); } }; template -auto baz_lpdf(const T0__& x, std::ostream* pstream__) { +stan::promote_args_t +baz_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()); @@ -23760,7 +23792,8 @@ auto baz_lpdf(const T0__& x, std::ostream* pstream__) { struct baz_lpdf_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +stan::promote_args_t +operator()(const T0__& x, std::ostream* pstream__) const { return baz_lpdf(x, pstream__); } @@ -26063,8 +26096,9 @@ static constexpr std::array locations_array__ = template -auto nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { +void +nrfun_lp(const T0__& x, const int& y, 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()); @@ -26089,14 +26123,16 @@ auto nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, struct nrfun_lp_functor__ { template -auto operator()(const T0__& x, const int& y, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) const +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__); } }; -auto rfun(const int& y, std::ostream* pstream__) { +int +rfun(const int& y, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -26123,14 +26159,16 @@ auto rfun(const int& y, std::ostream* pstream__) { } struct rfun_functor__ { -auto operator()(const int& y, std::ostream* pstream__) const +int +operator()(const int& y, std::ostream* pstream__) const { return rfun(y, pstream__); } }; template -auto rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { +int +rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -26150,8 +26188,8 @@ auto rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { struct rfun_lp_functor__ { template -auto operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +int +operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { return rfun_lp(lp__, lp_accum__, pstream__); } diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 1426a0f025..22b97c4ac3 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -29,7 +29,8 @@ let%expect_test "udf" = [%expect {| template - auto sars(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { + void + sars(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; @@ -51,7 +52,8 @@ let%expect_test "udf" = struct sars_functor__ { template - auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const + void + operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return sars(x, y, pstream__); } @@ -87,8 +89,11 @@ let%expect_test "udf-expressions" = {| template - auto sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, - const std::vector& w, std::ostream* pstream__) { + Eigen::Matrix, stan::value_type_t, + stan::value_type_t, + T3__>, -1, -1> + sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, + const std::vector& w, std::ostream* pstream__) { using local_scalar_t__ = stan::promote_args_t, stan::value_type_t, stan::value_type_t, @@ -114,8 +119,11 @@ let%expect_test "udf-expressions" = struct sars_functor__ { template - auto operator()(const T0__& x, const T1__& y, const T2__& z, - const std::vector& w, std::ostream* pstream__) const + Eigen::Matrix, stan::value_type_t, + stan::value_type_t, + T3__>, -1, -1> + operator()(const T0__& x, const T1__& y, const T2__& z, + const std::vector& w, std::ostream* pstream__) const { return sars(x, y, z, w, pstream__); } From 9acc8b0924a11c528b248b0a9fd3a7109cd19abb Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Thu, 19 Aug 2021 13:29:47 -0400 Subject: [PATCH 3/7] have local_scalar_t__ use stan::return_type_t. Put an eval() around UDF returns that return an eigen type. Use auto for function returns --- src/stan_math_backend/Stan_math_code_gen.ml | 28 +- src/stan_math_backend/Statement_gen.ml | 10 +- test/integration/good/code-gen/cpp.expected | 2245 +++++++---------- .../good/code-gen/expressions/cpp.expected | 55 +- .../good/code-gen/ode/cpp.expected | 65 +- .../standalone_functions/cpp.expected | 122 +- .../good/compiler-optimizations/cpp.expected | 371 ++- test/unit/Stan_math_code_gen_tests.ml | 28 +- 8 files changed, 1153 insertions(+), 1771 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 688a4ef724..818a0ece56 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -76,8 +76,8 @@ let maybe_templated_arg_types (args : Program.fun_arg_decl) = let return_arg_types (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i ((_, _, ut) as a) -> - if UnsizedType.is_eigen_type ut && arg_needs_template a then - Some (sprintf "stan::value_type_t" i) + if not (UnsizedType.is_scalar_type ut) then + Some (sprintf "T%d__" i) else if arg_needs_template a then Some (sprintf "T%d__" i) else None ) @@ -94,20 +94,12 @@ let%expect_test "arg types templated correctly" = let pp_promoted_scalar ppf args = match args with | [] -> pf ppf "double" - | _ -> - let rec promote_args_chunked ppf args = - let go ppf tl = - match tl with [] -> () | _ -> pf ppf ", %a" promote_args_chunked tl - in - match args with - | [] -> pf ppf "double" - | hd :: tl -> - 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 (return_arg_types args))) - + | _ -> + let blah init xx = match xx with + | Some x -> String.concat ~sep:", " [init; x] + | None -> init + in + pf ppf "stan::return_type_t<%s>" (List.fold ~init:"double" ~f:blah (return_arg_types args)) (** Pretty-prints a function's return-type, taking into account templated argument promotion.*) let pp_returntype ppf arg_types rt = @@ -223,7 +215,7 @@ let mk_extra_args templates args = 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; fdsuffix; fdargs; fdbody; _}) +let pp_fun_def ppf Program.({fdname; fdsuffix; fdargs; fdbody; _}) funs_used_in_reduce_sum funs_used_in_variadic_ode = let extra, extra_templates = match fdsuffix with @@ -262,7 +254,7 @@ let pp_fun_def ppf Program.({fdrt; fdname; fdsuffix; fdargs; fdbody; _}) | (FnLpdf _ | FnTarget), `None -> pp_template_decorator ppf ("bool propto__" :: templates) | _ -> pp_template_decorator ppf templates ) ; - pp_returntype ppf fdargs fdrt ; + pf ppf "auto "; let args, variadic_args = match variadic with | `ReduceSum -> List.split_n args 3 diff --git a/src/stan_math_backend/Statement_gen.ml b/src/stan_math_backend/Statement_gen.ml index b9510116be..721f9db4ae 100644 --- a/src/stan_math_backend/Statement_gen.ml +++ b/src/stan_math_backend/Statement_gen.ml @@ -340,7 +340,15 @@ let rec pp_statement (ppf : Format.formatter) Stmt.Fixed.({pattern; meta}) = pf ppf "%a;" pp_user_defined_fun (fname, suffix, args) | Break -> string ppf "break;" | Continue -> string ppf "continue;" - | Return e -> pf ppf "@[return %a;@]" (option pp_expr) e + | Return option_e -> ( + match option_e with + | None -> pf ppf "@[return ;@]" + | Some e -> ( + match e with + | Expr.Fixed.({meta= Expr.Typed.Meta.({type_; _}); _}) + when UnsizedType.is_eigen_type type_ -> + pf ppf "@[return stan::math::eval(%a);@]" pp_expr e + | _ -> pf ppf "@[return %a;@]" pp_expr e ) ) | Skip -> string ppf ";" | IfElse (cond, ifbranch, elsebranch) -> let pp_else ppf x = pf ppf "else %a" pp_statement x in diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 74ed60fe05..b226b341aa 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -2529,12 +2529,10 @@ static constexpr std::array locations_array__ = " (in 'mother.stan', line 309, column 78 to line 313, column 3)"}; -int -foo(const int& n, std::ostream* pstream__) ; +auto foo(const int& n, std::ostream* pstream__) ; -int -foo(const int& n, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto foo(const int& n, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2557,8 +2555,7 @@ foo(const int& n, std::ostream* pstream__) { } struct foo_functor__ { -int -operator()(const int& n, std::ostream* pstream__) const +auto operator()(const int& n, std::ostream* pstream__) const { return foo(n, pstream__); } @@ -2567,23 +2564,19 @@ 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__) ; +auto 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; +auto 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2615,19 +2608,17 @@ 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 +auto 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__) { +auto foo_bar0(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -2646,17 +2637,15 @@ foo_bar0(std::ostream* pstream__) { } struct foo_bar0_functor__ { -double -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { 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; +auto foo_bar1(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2675,18 +2664,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2705,18 +2691,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_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 @@ -2733,17 +2716,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2762,17 +2743,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2791,19 +2770,16 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2822,10 +2798,8 @@ foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, struct foo_rng_functor__ { template -stan::promote_args_t -operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) const +auto operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) const { return foo_rng(mu, sigma, base_rng__, pstream__); } @@ -2833,10 +2807,9 @@ return foo_rng(mu, sigma, base_rng__, 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; +auto unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -2856,17 +2829,15 @@ unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, struct unit_normal_lp_functor__ { template -void -operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +auto operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return unit_normal_lp(u, lp__, lp_accum__, pstream__); } }; -int -foo_1(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto foo_1(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3098,16 +3069,14 @@ foo_1(const int& a, std::ostream* pstream__) { } struct foo_1_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const +auto operator()(const int& a, std::ostream* pstream__) const { return foo_1(a, pstream__); } }; -int -foo_2(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto foo_2(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3139,17 +3108,15 @@ foo_2(const int& a, std::ostream* pstream__) { } struct foo_2_functor__ { -int -operator()(const int& a, std::ostream* pstream__) const +auto 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; +auto foo_3(const T0__& t, const int& n, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3168,8 +3135,7 @@ 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 +auto operator()(const T0__& t, const int& n, std::ostream* pstream__) const { return foo_3(t, n, pstream__); } @@ -3177,10 +3143,9 @@ 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; +auto foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -3198,18 +3163,16 @@ foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, 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 +auto 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; +auto foo_4(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3231,19 +3194,16 @@ foo_4(const T0__& x, std::ostream* pstream__) { struct foo_4_functor__ { template -void -operator()(const T0__& x, std::ostream* pstream__) const +auto 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; +auto relative_diff(const T0__& x, const T1__& y, const T2__& max_, + const T3__& min_, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3296,10 +3256,8 @@ relative_diff(const T0__& x, const T1__& y, const T2__& max_, 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 +auto 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__); } @@ -3307,13 +3265,10 @@ return relative_diff(x, y, max_, min_, 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>; +auto 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::return_type_t; int current_statement__ = 0; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); @@ -3323,7 +3278,8 @@ foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 711; - return (Eigen::Matrix(3) << 1, 2, 3).finished(); + return stan::math::eval((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 @@ -3335,11 +3291,10 @@ foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, 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 +auto 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__); } @@ -3347,15 +3302,9 @@ 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3375,10 +3324,8 @@ foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, 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 +auto 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__); } @@ -3387,17 +3334,11 @@ 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__) { - using local_scalar_t__ = stan::promote_args_t>; +auto 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::return_type_t; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -3416,11 +3357,9 @@ 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 +auto 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__); @@ -3428,10 +3367,9 @@ return foo_five_args_lp(x1, x2, x3, x4, x5, x6, lp__, lp_accum__, }; template -Eigen::Matrix>, -1, -1> -covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; +auto covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& mat = to_ref(mat_arg__); static constexpr bool propto__ = true; @@ -3453,7 +3391,7 @@ covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, assign(o, stan::model::deep_copy(rvalue(o, "o", index_min_max(1, 2))), "assigning variable o", index_min_max(3, 4)); current_statement__ = 723; - return o; + return stan::math::eval(o); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3464,8 +3402,7 @@ covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, struct covsqrt2corsqrt_functor__ { template -Eigen::Matrix>, -1, -1> -operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const +auto operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const { return covsqrt2corsqrt(mat, invert, pstream__); } @@ -3476,23 +3413,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3520,15 +3449,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3539,23 +3468,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3580,15 +3501,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3599,23 +3520,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3640,15 +3553,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3659,23 +3572,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3700,15 +3605,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3719,25 +3624,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3762,17 +3657,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3783,25 +3676,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3826,17 +3709,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3847,25 +3728,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3890,17 +3761,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3911,25 +3780,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3939,7 +3798,7 @@ f7(const int& a1, const std::vector& a2, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 739; - return a7; + return stan::math::eval(a7); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3954,17 +3813,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -3975,25 +3832,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -4018,17 +3865,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -4039,25 +3884,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -4082,17 +3917,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -4103,25 +3936,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -4131,7 +3954,7 @@ f10(const int& a1, const std::vector& a2, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 745; - return a10; + return stan::math::eval(a10); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4146,17 +3969,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -4167,25 +3988,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -4210,17 +4021,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__); } @@ -4231,25 +4040,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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__>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -4274,24 +4073,21 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -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 +auto 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__) { +auto foo_6(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4326,15 +4122,13 @@ foo_6(std::ostream* pstream__) { } struct foo_6_functor__ { -void -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return foo_6(pstream__); } }; -Eigen::Matrix -matfoo(std::ostream* pstream__) { +auto matfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4343,11 +4137,12 @@ matfoo(std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 757; - return stan::math::to_matrix(std::vector>{ + return stan::math::eval(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()}); + 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 @@ -4357,15 +4152,13 @@ matfoo(std::ostream* pstream__) { } struct matfoo_functor__ { -Eigen::Matrix -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return matfoo(pstream__); } }; -Eigen::Matrix -vecfoo(std::ostream* pstream__) { +auto vecfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4374,8 +4167,8 @@ vecfoo(std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 759; - return (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10).finished(); + return stan::math::eval((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 @@ -4385,17 +4178,15 @@ vecfoo(std::ostream* pstream__) { } struct vecfoo_functor__ { -Eigen::Matrix -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return vecfoo(pstream__); } }; template -Eigen::Matrix, -1, 1> -vecmufoo(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto vecmufoo(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -4406,7 +4197,7 @@ vecmufoo(const T0__& mu, std::ostream* pstream__) { current_statement__ = 761; assign(l, multiply(mu, vecfoo(pstream__)), "assigning variable l"); current_statement__ = 762; - return l; + return stan::math::eval(l); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4417,17 +4208,15 @@ vecmufoo(const T0__& mu, std::ostream* pstream__) { struct vecmufoo_functor__ { template -Eigen::Matrix, -1, 1> -operator()(const T0__& mu, std::ostream* pstream__) const +auto operator()(const T0__& mu, std::ostream* pstream__) const { return vecmufoo(mu, pstream__); } }; template -Eigen::Matrix, -1, 1> -vecmubar(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto vecmubar(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -4440,7 +4229,8 @@ vecmubar(const T0__& mu, std::ostream* pstream__) { multiply(mu, (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10).finished()), "assigning variable l"); current_statement__ = 765; - return rvalue(l, "l", index_multi(std::vector{1, 2, 3, 4, 5})); + return stan::math::eval(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 @@ -4451,8 +4241,7 @@ vecmubar(const T0__& mu, std::ostream* pstream__) { struct vecmubar_functor__ { template -Eigen::Matrix, -1, 1> -operator()(const T0__& mu, std::ostream* pstream__) const +auto operator()(const T0__& mu, std::ostream* pstream__) const { return vecmubar(mu, pstream__); } @@ -4460,15 +4249,11 @@ return vecmubar(mu, pstream__); 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__>; +auto 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::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -4490,7 +4275,7 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, (rvalue(x, "x", index_uni(2)) - rvalue(y, "y", index_uni(2))), "assigning variable f_x", index_uni(2)); current_statement__ = 770; - return f_x; + return stan::math::eval(f_x); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4502,12 +4287,10 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, 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 +auto 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__); } @@ -4515,13 +4298,11 @@ return algebra_system(x, y, dat, dat_int, pstream__); 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>; +auto 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::return_type_t; int current_statement__ = 0; const auto& phi = to_ref(phi_arg__); const auto& theta = to_ref(theta_arg__); @@ -4537,7 +4318,7 @@ binomialf(const T0__& phi_arg__, const T1__& theta_arg__, current_statement__ = 773; assign(lpmf, 0.0, "assigning variable lpmf", index_uni(1)); current_statement__ = 774; - return lpmf; + return stan::math::eval(lpmf); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4549,11 +4330,10 @@ binomialf(const T0__& phi_arg__, const T1__& theta_arg__, 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 +auto 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__); } @@ -10511,13 +10291,11 @@ static constexpr std::array locations_array__ = 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; +auto 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10549,12 +10327,11 @@ 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 +auto 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__); } @@ -10562,13 +10339,12 @@ 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10588,12 +10364,11 @@ integrand(const T0__& x, const T1__& xc, 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 +auto 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__); } @@ -10601,14 +10376,10 @@ 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_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__>; +auto 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::return_type_t; int current_statement__ = 0; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); @@ -10618,7 +10389,8 @@ foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 147; - return (Eigen::Matrix(3) << 1, 2, 3).finished(); + return stan::math::eval((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 @@ -10630,11 +10402,10 @@ foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, 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 +auto 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__); } @@ -10642,14 +10413,10 @@ 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_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__>; +auto 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::return_type_t; int current_statement__ = 0; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); @@ -10659,7 +10426,8 @@ goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 149; - return (Eigen::Matrix(3) << 4, 5, 6).finished(); + return stan::math::eval((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 @@ -10671,20 +10439,18 @@ goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto map_rectfake(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10703,8 +10469,7 @@ 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 +auto operator()(const T0__& x, std::ostream* pstream__) const { return map_rectfake(x, pstream__); } @@ -10712,15 +10477,11 @@ return map_rectfake(x, pstream__); 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__>; +auto 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::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -10742,7 +10503,7 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, (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; + return stan::math::eval(f_x); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -10754,12 +10515,10 @@ algebra_system(const T0__& x_arg__, const T1__& y_arg__, 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 +auto 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__); } @@ -12921,14 +12680,9 @@ static constexpr std::array locations_array__ = 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>; +auto f(const T0__& t, const T1__& z_arg__, const T2__& a, + const T3__& b_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); const auto& b = to_ref(b_arg__); @@ -12938,7 +12692,7 @@ f(const T0__& t, const T1__& z_arg__, const T2__& a, const T3__& b_arg__, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 628; - return z; + return stan::math::eval(z); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -12949,10 +12703,8 @@ f(const T0__& t, const T1__& z_arg__, const T2__& a, const T3__& b_arg__, 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 +auto operator()(const T0__& t, const T1__& z, const T2__& a, const T3__& b, + std::ostream* pstream__) const { return f(t, z, a, b, pstream__); } @@ -12961,10 +12713,8 @@ return f(t, z, a, b, pstream__); struct f_odefunctor__ { template -Eigen::Matrix, T2__, -stan::value_type_t>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a, const T3__& b) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a, const T3__& b) const { return f(t, z, a, b, pstream__); } @@ -16351,13 +16101,11 @@ static constexpr std::array locations_array__ = 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; +auto 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -16402,12 +16150,11 @@ 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 +auto 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__); } @@ -18991,10 +18738,9 @@ 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; +auto g(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19019,9 +18765,8 @@ g(const std::vector& y_slice, const int& start, struct g_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g(y_slice, start, end, pstream__); } @@ -19030,21 +18775,18 @@ return g(y_slice, start, end, 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 +auto 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 -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; +auto h(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19070,11 +18812,9 @@ h(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -19083,21 +18823,18 @@ return h(y_slice, start, end, a, 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 +auto 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__); } }; 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; +auto foo_lpdf(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_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 @@ -19114,9 +18851,8 @@ foo_lpdf(const std::vector& y_slice, const int& start, 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return foo_lpdf(y_slice, start, end, pstream__); } @@ -19126,9 +18862,8 @@ 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 +auto 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__); } @@ -19743,10 +19478,9 @@ 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto g1(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19765,9 +19499,8 @@ g1(const std::vector& y_slice, const int& start, struct g1_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g1(y_slice, start, end, pstream__); } @@ -19776,19 +19509,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto g2(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19817,9 +19548,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g2(y_slice, start, end, pstream__); } @@ -19828,19 +19558,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto g3(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19869,9 +19597,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g3(y_slice, start, end, pstream__); } @@ -19880,19 +19607,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto g4(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19922,9 +19647,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g4(y_slice, start, end, pstream__); } @@ -19933,19 +19657,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto g5(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19979,9 +19701,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g5(y_slice, start, end, pstream__); } @@ -19990,19 +19711,17 @@ 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 +auto 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, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto g6(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20037,9 +19756,8 @@ g6(const std::vector& y_slice, const int& start, struct g6_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g6(y_slice, start, end, pstream__); } @@ -20048,19 +19766,17 @@ 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 +auto 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 -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; +auto g7(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20095,9 +19811,8 @@ g7(const std::vector& y_slice, const int& start, struct g7_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g7(y_slice, start, end, pstream__); } @@ -20106,19 +19821,17 @@ 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 +auto 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, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto g8(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20153,9 +19866,8 @@ g8(const std::vector& y_slice, const int& start, struct g8_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g8(y_slice, start, end, pstream__); } @@ -20164,20 +19876,18 @@ 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 +auto 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 -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; +auto h1(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20197,11 +19907,9 @@ 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 +auto 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__); } @@ -20210,22 +19918,19 @@ 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 +auto 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 -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; +auto h2(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20253,11 +19958,9 @@ 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 +auto 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__); } @@ -20266,22 +19969,19 @@ 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 +auto 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 -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; +auto h3(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20309,11 +20009,9 @@ 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 +auto 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__); } @@ -20322,22 +20020,19 @@ 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 +auto 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 -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; +auto h4(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20366,11 +20061,9 @@ 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 +auto 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__); } @@ -20379,22 +20072,19 @@ 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 +auto 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 -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; +auto h5(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20426,11 +20116,9 @@ 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 +auto 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__); } @@ -20439,22 +20127,19 @@ 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 +auto 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 -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; +auto h6(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20487,11 +20172,9 @@ 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 +auto 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__); } @@ -20500,22 +20183,19 @@ 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 +auto 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 -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; +auto h7(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20548,11 +20228,9 @@ 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 +auto 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__); } @@ -20561,22 +20239,19 @@ 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 +auto 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 -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; +auto h8(const std::vector& y, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20609,11 +20284,9 @@ 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 +auto 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__); } @@ -20622,11 +20295,9 @@ 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 +auto 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__); } @@ -22255,10 +21926,9 @@ 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; +auto f1(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22277,9 +21947,8 @@ f1(const std::vector& y_slice, const int& start, struct f1_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f1(y_slice, start, end, pstream__); } @@ -22288,19 +21957,17 @@ return f1(y_slice, start, end, 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 +auto 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__); } }; 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; +auto f1a(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22319,9 +21986,8 @@ f1a(const std::vector& y_slice, const int& start, struct f1a_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f1a(y_slice, start, end, pstream__); } @@ -22330,19 +21996,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto f2(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22361,9 +22025,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f2(y_slice, start, end, pstream__); } @@ -22372,19 +22035,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto f3(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22403,9 +22064,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f3(y_slice, start, end, pstream__); } @@ -22414,19 +22074,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto f4(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22445,9 +22103,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f4(y_slice, start, end, pstream__); } @@ -22456,19 +22113,17 @@ 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 +auto 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, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto f5(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22487,9 +22142,8 @@ 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 +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f5(y_slice, start, end, pstream__); } @@ -22498,19 +22152,17 @@ 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 +auto 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, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto f6(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22529,9 +22181,8 @@ f6(const std::vector& y_slice, const int& start, struct f6_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f6(y_slice, start, end, pstream__); } @@ -22540,19 +22191,17 @@ 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 +auto 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, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto f7(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22571,9 +22220,8 @@ f7(const std::vector& y_slice, const int& start, struct f7_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f7(y_slice, start, end, pstream__); } @@ -22582,19 +22230,17 @@ 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 +auto 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, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto f8(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22613,9 +22259,8 @@ f8(const std::vector& y_slice, const int& start, struct f8_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f8(y_slice, start, end, pstream__); } @@ -22624,19 +22269,17 @@ 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 +auto 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__); } }; template -double -f9(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto f9(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22655,9 +22298,8 @@ f9(const std::vector& y_slice, const int& start, struct f9_functor__ { template -double -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f9(y_slice, start, end, pstream__); } @@ -22666,19 +22308,17 @@ return f9(y_slice, start, end, pstream__); struct f9_rsfunctor__ { template -double -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto 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__); } }; template -double -f10(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto f10(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22697,9 +22337,8 @@ f10(const std::vector& y_slice, const int& start, struct f10_functor__ { template -double -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f10(y_slice, start, end, pstream__); } @@ -22708,19 +22347,17 @@ return f10(y_slice, start, end, pstream__); struct f10_rsfunctor__ { template -double -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto 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__); } }; template -double -f11(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto f11(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22739,9 +22376,8 @@ f11(const std::vector& y_slice, const int& start, struct f11_functor__ { template -double -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f11(y_slice, start, end, pstream__); } @@ -22750,19 +22386,17 @@ return f11(y_slice, start, end, pstream__); struct f11_rsfunctor__ { template -double -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto 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__); } }; 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; +auto f12(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22781,9 +22415,8 @@ f12(const std::vector& y_slice, const int& start, struct f12_functor__ { template -stan::promote_args_t -operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +auto operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f12(y_slice, start, end, pstream__); } @@ -22792,20 +22425,17 @@ 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 +auto 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 -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; +auto g1(const std::vector& y_slice, const int& start, + const int& end, const T3__& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22824,10 +22454,8 @@ g1(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -22836,22 +22464,17 @@ 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 +auto 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> -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>; +auto g2(const std::vector& y_slice, const int& start, + const int& end, const T3__& a_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -22871,10 +22494,8 @@ 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, const T3__& a, std::ostream* pstream__) const +auto 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__); } @@ -22883,22 +22504,17 @@ 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 T3__& a) const +auto 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__); } }; 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>; +auto g3(const std::vector& y_slice, const int& start, + const int& end, const T3__& a_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -22918,10 +22534,8 @@ 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, const T3__& a, std::ostream* pstream__) const +auto 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__); } @@ -22930,22 +22544,17 @@ 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 T3__& a) const +auto 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__); } }; 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>; +auto g4(const std::vector& y_slice, const int& start, + const int& end, const T3__& a_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -22965,10 +22574,8 @@ 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, const T3__& a, std::ostream* pstream__) const +auto 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__); } @@ -22977,22 +22584,18 @@ 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 T3__& a) const +auto 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__); } }; 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; +auto g5(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23011,11 +22614,9 @@ 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, const std::vector& a, - std::ostream* pstream__) const +auto 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__); } @@ -23024,23 +22625,19 @@ 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 +auto 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 -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; +auto g6(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23059,11 +22656,9 @@ g6(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -23072,23 +22667,19 @@ 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 +auto 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 -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; +auto g7(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23107,11 +22698,9 @@ g7(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -23120,23 +22709,19 @@ 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 +auto 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 -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; +auto g8(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23155,11 +22740,9 @@ g8(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -23168,23 +22751,19 @@ 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 +auto 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 -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; +auto g9(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23203,11 +22782,9 @@ g9(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -23216,23 +22793,19 @@ 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 +auto 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 -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; +auto g10(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23251,11 +22824,9 @@ g10(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -23264,23 +22835,19 @@ 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 +auto 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 -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; +auto g11(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23299,11 +22866,9 @@ g11(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -23312,23 +22877,19 @@ 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 +auto 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 -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; +auto g12(const std::vector& y_slice, const int& start, + const int& end, const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -23347,11 +22908,9 @@ g12(const std::vector& y_slice, const int& start, 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 +auto 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__); } @@ -23360,11 +22919,9 @@ 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 +auto 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__); } @@ -23378,37 +22935,22 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -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>>; +auto 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::return_type_t; int current_statement__ = 0; const auto& c = to_ref(c_arg__); const auto& d = to_ref(d_arg__); @@ -23438,26 +22980,22 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -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 +auto 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__); @@ -23474,34 +23012,28 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -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 +auto 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__); } }; -double -r(std::ostream* pstream__) { +auto r(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -23837,8 +23369,7 @@ r(std::ostream* pstream__) { } struct r_functor__ { -double -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return r(pstream__); } @@ -25688,9 +25219,8 @@ static constexpr std::array locations_array__ = template -double -foo0_log(const int& y, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto foo0_log(const int& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25707,17 +25237,15 @@ foo0_log(const int& y, std::ostream* pstream__) { struct foo0_log_functor__ { template -double -operator()(const int& y, std::ostream* pstream__) const +auto operator()(const int& y, std::ostream* pstream__) const { return foo0_log(y, pstream__); } }; template -double -foo1_lpmf(const int& y, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto foo1_lpmf(const int& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25734,18 +25262,16 @@ foo1_lpmf(const int& y, std::ostream* pstream__) { struct foo1_lpmf_functor__ { template -double -operator()(const int& y, std::ostream* pstream__) const +auto 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__) { - using local_scalar_t__ = double; +auto foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -25762,18 +25288,16 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo2_log(const T0__& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25790,17 +25314,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo3_lpdf(const T0__& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25817,8 +25339,7 @@ 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 +auto operator()(const T0__& y, std::ostream* pstream__) const { return foo3_lpdf(y, pstream__); } @@ -25826,10 +25347,9 @@ 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -25847,9 +25367,8 @@ 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 +auto operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return foo5_lp(y, lp__, lp_accum__, pstream__); } @@ -29626,9 +29145,8 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -normal(const T0__& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto normal(const T0__& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -29647,8 +29165,7 @@ normal(const T0__& a, std::ostream* pstream__) { struct normal_functor__ { template -stan::promote_args_t -operator()(const T0__& a, std::ostream* pstream__) const +auto operator()(const T0__& a, std::ostream* pstream__) const { return normal(a, pstream__); } @@ -29988,10 +29505,8 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -30010,9 +29525,7 @@ 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 +auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return lb_constrain(x, y, pstream__); } diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index 2d3f7c36cf..9aa12fe3b8 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -34,17 +34,10 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t> -foo1(const T0__& a, const int& b, const std::vector& c, - const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - stan::value_type_t>; +auto foo1(const T0__& a, const int& b, const std::vector& c, + const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& d = to_ref(d_arg__); const auto& e = to_ref(e_arg__); @@ -67,12 +60,9 @@ foo1(const T0__& a, const int& b, const std::vector& c, struct foo1_functor__ { template -stan::promote_args_t, -stan::value_type_t, -stan::value_type_t> -operator()(const T0__& a, const int& b, const std::vector& c, - const T3__& d, const T4__& e, const T5__& f, - std::ostream* pstream__) const +auto operator()(const T0__& a, const int& b, + const std::vector& c, const T3__& d, + const T4__& e, const T5__& f, std::ostream* pstream__) const { return foo1(a, b, c, d, e, f, pstream__); } @@ -80,13 +70,9 @@ return foo1(a, b, c, d, e, f, pstream__); template -Eigen::Matrix, T1__, -T2__>, -1, 1> -foo2(const T0__& a_arg__, const std::vector& b, - const std::vector& c, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T1__, - T2__>; +auto foo2(const T0__& a_arg__, const std::vector& b, + const std::vector& c, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -95,7 +81,7 @@ foo2(const T0__& a_arg__, const std::vector& b, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 7; - return a; + return stan::math::eval(a); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -107,21 +93,16 @@ foo2(const T0__& a_arg__, const std::vector& b, struct foo2_functor__ { template -Eigen::Matrix, T1__, -T2__>, -1, 1> -operator()(const T0__& a, const std::vector& b, - const std::vector& c, std::ostream* pstream__) const +auto operator()(const T0__& a, const std::vector& b, + const std::vector& c, std::ostream* pstream__) const { return foo2(a, b, c, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; +auto foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); const auto& b = to_ref(b_arg__); @@ -131,7 +112,7 @@ foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 9; - return b; + return stan::math::eval(b); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -142,9 +123,7 @@ foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { struct foo3_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const +auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return foo3(a, b, pstream__); } diff --git a/test/integration/good/code-gen/ode/cpp.expected b/test/integration/good/code-gen/ode/cpp.expected index 5fbbb4fba4..3126f62918 100644 --- a/test/integration/good/code-gen/ode/cpp.expected +++ b/test/integration/good/code-gen/ode/cpp.expected @@ -58,11 +58,8 @@ static constexpr std::array locations_array__ = template -Eigen::Matrix>, -1, 1> -f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; +auto f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); static constexpr bool propto__ = true; @@ -71,7 +68,7 @@ f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 30; - return z; + return stan::math::eval(z); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -82,9 +79,7 @@ f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { struct f_0_arg_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } @@ -93,22 +88,16 @@ return f_0_arg(t, z, pstream__); struct f_0_arg_odefunctor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } }; template -Eigen::Matrix, -T2__>, -1, 1> -f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T2__>; +auto f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); static constexpr bool propto__ = true; @@ -117,7 +106,7 @@ f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 32; - return z; + return stan::math::eval(z); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -128,10 +117,8 @@ f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, struct f_1_arg_functor__ { template -Eigen::Matrix, -T2__>, -1, 1> -operator()(const T0__& t, const T1__& z, const T2__& a, - std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, const T2__& a, + std::ostream* pstream__) const { return f_1_arg(t, z, a, pstream__); } @@ -140,23 +127,17 @@ return f_1_arg(t, z, a, pstream__); struct f_1_arg_odefunctor__ { template -Eigen::Matrix, -T2__>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a) const { return f_1_arg(t, z, a, pstream__); } }; template -Eigen::Matrix, -T3__>, -1, 1> -f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - T3__>; +auto f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); static constexpr bool propto__ = true; @@ -165,7 +146,7 @@ f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 34; - return z; + return stan::math::eval(z); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -176,10 +157,8 @@ f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, struct f_2_arg_functor__ { template -Eigen::Matrix, -T3__>, -1, 1> -operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, - std::ostream* pstream__) const +auto operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, + std::ostream* pstream__) const { return f_2_arg(t, z, b, a, pstream__); } @@ -188,10 +167,8 @@ return f_2_arg(t, z, b, a, pstream__); struct f_2_arg_odefunctor__ { template -Eigen::Matrix, -T3__>, -1, 1> -operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const int& b, const T3__& a) const +auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const int& b, const T3__& a) const { return f_2_arg(t, z, b, a, pstream__); } diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index 2b8cbef7db..de96a2ab0e 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -43,9 +43,8 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -my_log1p_exp(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto my_log1p_exp(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -64,17 +63,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto array_fun(const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -93,17 +90,16 @@ 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 +auto operator()(const std::vector& a, std::ostream* pstream__) const { return array_fun(a, pstream__); } }; template -double -int_array_fun(const std::vector& a, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto int_array_fun(const std::vector& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -122,17 +118,15 @@ int_array_fun(const std::vector& a, std::ostream* pstream__) { struct int_array_fun_functor__ { template -double -operator()(const std::vector& a, std::ostream* pstream__) const +auto 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 T0__& x_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; +auto my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); static constexpr bool propto__ = true; @@ -146,7 +140,7 @@ my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { current_statement__ = 8; assign(result, multiply(x, 5.0), "assigning variable result"); current_statement__ = 9; - return result; + return stan::math::eval(result); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -157,16 +151,15 @@ my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { struct my_vector_mul_by_5_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& x, std::ostream* pstream__) const +auto operator()(const T0__& 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; +auto int_only_multiplication(const int& a, const int& b, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -184,17 +177,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto test_lgamma(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -213,8 +204,7 @@ 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 +auto operator()(const T0__& x, std::ostream* pstream__) const { return test_lgamma(x, pstream__); } @@ -222,10 +212,9 @@ return test_lgamma(x, pstream__); template -void -test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -243,18 +232,16 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -273,18 +260,15 @@ 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 +auto operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const { return test_rng(a, base_rng__, pstream__); } }; template -stan::promote_args_t -test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { + using local_scalar_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 @@ -301,9 +285,7 @@ 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 +auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return test_lpdf(a, b, pstream__); } @@ -418,9 +400,8 @@ static constexpr std::array locations_array__ = template -Eigen::Matrix>, -1, 1> -integrand(const T0__& x_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; +auto integrand(const T0__& x_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); static constexpr bool propto__ = true; @@ -429,7 +410,7 @@ integrand(const T0__& x_arg__, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 1; - return stan::math::exp(minus(square(x))); + return stan::math::eval(stan::math::exp(minus(square(x)))); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -440,8 +421,7 @@ integrand(const T0__& x_arg__, std::ostream* pstream__) { struct integrand_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& x, std::ostream* pstream__) const +auto operator()(const T0__& x, std::ostream* pstream__) const { return integrand(x, pstream__); } @@ -450,13 +430,12 @@ 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -486,19 +465,17 @@ 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 +auto 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__) { +auto ode_integrate(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -525,8 +502,7 @@ ode_integrate(std::ostream* pstream__) { } struct ode_integrate_functor__ { -double -operator()(std::ostream* pstream__) const +auto operator()(std::ostream* pstream__) const { return ode_integrate(pstream__); } diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index 0d60795915..a2dee061fc 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -58,13 +58,12 @@ static constexpr std::array locations_array__ = 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -117,12 +116,11 @@ 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 +auto 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__); } @@ -911,9 +909,9 @@ static constexpr std::array locations_array__ = template -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -951,17 +949,17 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { struct first_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -int -last_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1005,20 +1003,18 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { struct last_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -1120,7 +1116,7 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, } } current_statement__ = 67; - return chi; + return stan::math::eval(chi); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1131,10 +1127,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -8004,9 +7998,9 @@ static constexpr std::array locations_array__ = template -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -8044,17 +8038,17 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { struct first_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -int -last_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -8098,20 +8092,18 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { struct last_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -8213,7 +8205,7 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, } } current_statement__ = 69; - return chi; + return stan::math::eval(chi); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -8224,10 +8216,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -10109,9 +10099,9 @@ static constexpr std::array locations_array__ = template -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10149,17 +10139,17 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { struct first_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -int -last_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10203,20 +10193,17 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { struct last_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; +auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -10320,7 +10307,7 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, } } current_statement__ = 141; - return chi; + return stan::math::eval(chi); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -10331,9 +10318,7 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +auto operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const { return prob_uncaptured(p, phi, pstream__); } @@ -10343,18 +10328,13 @@ template -void -js_super_lp(const std::vector& y, - const std::vector& first, - const std::vector& last, const T3__& p_arg__, - const T4__& phi_arg__, const T5__& psi, const T6__& nu_arg__, - const T7__& chi_arg__, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - T5__, - stan::value_type_t, - stan::value_type_t>; +auto js_super_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, + const T3__& p_arg__, const T4__& phi_arg__, const T5__& psi, + const T6__& nu_arg__, const T7__& chi_arg__, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -10791,12 +10771,12 @@ 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 +auto 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, lp__, lp_accum__, pstream__); @@ -15286,9 +15266,9 @@ static constexpr std::array locations_array__ = template -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -15326,17 +15306,17 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { struct first_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -int -last_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -15380,20 +15360,18 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { struct last_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -15495,7 +15473,7 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, } } current_statement__ = 67; - return chi; + return stan::math::eval(chi); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -15506,10 +15484,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -17480,9 +17456,9 @@ static constexpr std::array locations_array__ = template -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -17520,17 +17496,17 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { struct first_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -int -last_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -17574,20 +17550,17 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { struct last_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; +auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -17691,7 +17664,7 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, } } current_statement__ = 137; - return chi; + return stan::math::eval(chi); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -17702,9 +17675,7 @@ prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +auto operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const { return prob_uncaptured(p, phi, pstream__); } @@ -17714,17 +17685,14 @@ template -void -jolly_seber_lp(const std::vector& y, - const std::vector& first, - const std::vector& last, const T3__& p_arg__, - const T4__& phi_arg__, const T5__& gamma_arg__, - const T6__& chi_arg__, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - stan::value_type_t, - stan::value_type_t>; +auto jolly_seber_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, + const T3__& p_arg__, const T4__& phi_arg__, + const T5__& gamma_arg__, const T6__& chi_arg__, + T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -18158,12 +18126,12 @@ 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 +auto 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, lp__, lp_accum__, pstream__); @@ -18171,9 +18139,8 @@ return jolly_seber_lp(y, first, last, p, phi, gamma, chi, lp__, }; template -Eigen::Matrix>, -1, 1> -seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t>; +auto seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& gamma = to_ref(gamma_arg__); static constexpr bool propto__ = true; @@ -18217,7 +18184,7 @@ seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { } } current_statement__ = 142; - return stan::math::exp(log_cprob); + return stan::math::eval(stan::math::exp(log_cprob)); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -18228,8 +18195,7 @@ seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { struct seq_cprob_functor__ { template -Eigen::Matrix>, -1, 1> -operator()(const T0__& gamma, std::ostream* pstream__) const +auto operator()(const T0__& gamma, std::ostream* pstream__) const { return seq_cprob(gamma, pstream__); } @@ -21840,9 +21806,9 @@ static constexpr std::array locations_array__ = template -int -first_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto first_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -21880,17 +21846,17 @@ first_capture(const std::vector& y_i, std::ostream* pstream__) { struct first_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -int -last_capture(const std::vector& y_i, std::ostream* pstream__) { - using local_scalar_t__ = double; +auto last_capture(const std::vector& y_i, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -21934,20 +21900,18 @@ last_capture(const std::vector& y_i, std::ostream* pstream__) { struct last_capture_functor__ { template -int -operator()(const std::vector& y_i, std::ostream* pstream__) const +auto operator()(const std::vector& y_i, + std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, - const T3__& phi_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; +auto prob_uncaptured(const int& nind, const int& n_occasions, + const T2__& p_arg__, const T3__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -22049,7 +22013,7 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, } } current_statement__ = 63; - return chi; + return stan::math::eval(chi); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -22060,10 +22024,8 @@ prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, struct prob_uncaptured_functor__ { template -Eigen::Matrix, -stan::value_type_t>, -1, -1> -operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +auto operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -23714,10 +23676,8 @@ static constexpr std::array locations_array__ = template -stan::promote_args_t -foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { + using local_scalar_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 @@ -23735,18 +23695,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { + using local_scalar_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 @@ -23764,17 +23721,15 @@ 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 +auto 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__) { - using local_scalar_t__ = stan::promote_args_t; +auto baz_lpdf(const T0__& x, std::ostream* pstream__) { + using local_scalar_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 @@ -23792,8 +23747,7 @@ 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 +auto operator()(const T0__& x, std::ostream* pstream__) const { return baz_lpdf(x, pstream__); } @@ -26096,10 +26050,9 @@ static constexpr std::array locations_array__ = template -void -nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +auto nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, + T_lp_accum__& lp_accum__, std::ostream* pstream__) { + using local_scalar_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 @@ -26123,17 +26076,15 @@ 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 +auto 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; +auto rfun(const int& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -26159,16 +26110,14 @@ rfun(const int& y, std::ostream* pstream__) { } struct rfun_functor__ { -int -operator()(const int& y, std::ostream* pstream__) const +auto 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__) { +auto rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -26188,8 +26137,8 @@ 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 +auto operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return rfun_lp(lp__, lp_accum__, pstream__); } diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index 22b97c4ac3..cc58169336 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -29,10 +29,8 @@ let%expect_test "udf" = [%expect {| template - void - sars(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t>; + auto sars(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -52,8 +50,7 @@ let%expect_test "udf" = struct sars_functor__ { template - void - operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const + auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return sars(x, y, pstream__); } @@ -89,15 +86,9 @@ let%expect_test "udf-expressions" = {| template - Eigen::Matrix, stan::value_type_t, - stan::value_type_t, - T3__>, -1, -1> - sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, - const std::vector& w, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t, - stan::value_type_t, - stan::value_type_t, - T3__>; + auto sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, + const std::vector& w, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -119,11 +110,8 @@ let%expect_test "udf-expressions" = struct sars_functor__ { template - Eigen::Matrix, stan::value_type_t, - stan::value_type_t, - T3__>, -1, -1> - operator()(const T0__& x, const T1__& y, const T2__& z, - const std::vector& w, std::ostream* pstream__) const + auto operator()(const T0__& x, const T1__& y, const T2__& z, + const std::vector& w, std::ostream* pstream__) const { return sars(x, y, z, w, pstream__); } From 9a2227edb77d1fac1582ae1a6825f9f5ea37bd39 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Thu, 19 Aug 2021 13:47:45 -0400 Subject: [PATCH 4/7] fix format error --- src/stan_math_backend/Stan_math_code_gen.ml | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 818a0ece56..93f319cd36 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -76,8 +76,7 @@ let maybe_templated_arg_types (args : Program.fun_arg_decl) = let return_arg_types (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i ((_, _, ut) as a) -> - if not (UnsizedType.is_scalar_type ut) then - Some (sprintf "T%d__" i) + if not (UnsizedType.is_scalar_type ut) then Some (sprintf "T%d__" i) else if arg_needs_template a then Some (sprintf "T%d__" i) else None ) @@ -94,12 +93,15 @@ let%expect_test "arg types templated correctly" = let pp_promoted_scalar ppf args = match args with | [] -> pf ppf "double" - | _ -> - let blah init xx = match xx with - | Some x -> String.concat ~sep:", " [init; x] - | None -> init - in - pf ppf "stan::return_type_t<%s>" (List.fold ~init:"double" ~f:blah (return_arg_types args)) + | _ -> + let blah init xx = + match xx with + | Some x -> String.concat ~sep:", " [init; x] + | None -> init + in + pf ppf "stan::return_type_t<%s>" + (List.fold ~init:"double" ~f:blah (return_arg_types args)) + (** Pretty-prints a function's return-type, taking into account templated argument promotion.*) let pp_returntype ppf arg_types rt = @@ -254,7 +256,7 @@ let pp_fun_def ppf Program.({fdname; fdsuffix; fdargs; fdbody; _}) | (FnLpdf _ | FnTarget), `None -> pp_template_decorator ppf ("bool propto__" :: templates) | _ -> pp_template_decorator ppf templates ) ; - pf ppf "auto "; + pf ppf "auto " ; let args, variadic_args = match variadic with | `ReduceSum -> List.split_n args 3 From aecee163c2f2e887256c515f29068826bc35f6a6 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Thu, 19 Aug 2021 16:52:07 -0400 Subject: [PATCH 5/7] Remove eval() from return for eigen types and have explicit return type --- src/stan_math_backend/Stan_math_code_gen.ml | 15 +- src/stan_math_backend/Statement_gen.ml | 10 +- test/integration/good/code-gen/cpp.expected | 1972 +++++++++-------- .../good/code-gen/expressions/cpp.expected | 40 +- .../good/code-gen/ode/cpp.expected | 51 +- .../standalone_functions/cpp.expected | 118 +- .../good/compiler-optimizations/cpp.expected | 342 +-- test/unit/Stan_math_code_gen_tests.ml | 20 +- 8 files changed, 1418 insertions(+), 1150 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index 93f319cd36..0ae75c9685 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -96,11 +96,12 @@ let pp_promoted_scalar ppf args = | _ -> let blah init xx = match xx with - | Some x -> String.concat ~sep:", " [init; x] + | Some x when init <> "" -> String.concat ~sep:", " [init; x] + | Some x -> String.concat ~sep:", " [x] | None -> init in pf ppf "stan::return_type_t<%s>" - (List.fold ~init:"double" ~f:blah (return_arg_types args)) + (List.fold ~init:"" ~f:blah (return_arg_types args)) (** Pretty-prints a function's return-type, taking into account templated argument promotion.*) @@ -108,9 +109,9 @@ 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) - | Some ut -> pf ppf "%a@," pp_unsizedtype_custom_scalar (scalar, ut) - | None -> pf ppf "void@," + pf ppf "inline %a@," pp_unsizedtype_custom_scalar ("int", ut) + | Some ut -> pf ppf "inline %a@," pp_unsizedtype_custom_scalar (scalar, ut) + | None -> pf ppf "inline void@," let pp_eigen_arg_to_ref ppf arg_types = let pp_ref ppf name = @@ -217,7 +218,7 @@ let mk_extra_args templates args = 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.({fdname; fdsuffix; fdargs; fdbody; _}) +let pp_fun_def ppf Program.({fdrt; fdname; fdsuffix; fdargs; fdbody; _}) funs_used_in_reduce_sum funs_used_in_variadic_ode = let extra, extra_templates = match fdsuffix with @@ -256,7 +257,7 @@ let pp_fun_def ppf Program.({fdname; fdsuffix; fdargs; fdbody; _}) | (FnLpdf _ | FnTarget), `None -> pp_template_decorator ppf ("bool propto__" :: templates) | _ -> pp_template_decorator ppf templates ) ; - pf ppf "auto " ; + pp_returntype ppf fdargs fdrt ; let args, variadic_args = match variadic with | `ReduceSum -> List.split_n args 3 diff --git a/src/stan_math_backend/Statement_gen.ml b/src/stan_math_backend/Statement_gen.ml index 721f9db4ae..b9510116be 100644 --- a/src/stan_math_backend/Statement_gen.ml +++ b/src/stan_math_backend/Statement_gen.ml @@ -340,15 +340,7 @@ let rec pp_statement (ppf : Format.formatter) Stmt.Fixed.({pattern; meta}) = pf ppf "%a;" pp_user_defined_fun (fname, suffix, args) | Break -> string ppf "break;" | Continue -> string ppf "continue;" - | Return option_e -> ( - match option_e with - | None -> pf ppf "@[return ;@]" - | Some e -> ( - match e with - | Expr.Fixed.({meta= Expr.Typed.Meta.({type_; _}); _}) - when UnsizedType.is_eigen_type type_ -> - pf ppf "@[return stan::math::eval(%a);@]" pp_expr e - | _ -> pf ppf "@[return %a;@]" pp_expr e ) ) + | Return e -> pf ppf "@[return %a;@]" (option pp_expr) e | Skip -> string ppf ";" | IfElse (cond, ifbranch, elsebranch) -> let pp_else ppf x = pf ppf "else %a" pp_statement x in diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index b226b341aa..36ef3fcb2e 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -2529,10 +2529,12 @@ static constexpr std::array locations_array__ = " (in 'mother.stan', line 309, column 78 to line 313, column 3)"}; -auto foo(const int& n, std::ostream* pstream__) ; +inline int +foo(const int& n, std::ostream* pstream__) ; -auto foo(const int& n, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +foo(const int& n, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t<>; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2555,7 +2557,8 @@ auto foo(const int& n, std::ostream* pstream__) { } struct foo_functor__ { -auto operator()(const int& n, std::ostream* pstream__) const +inline int +operator()(const int& n, std::ostream* pstream__) const { return foo(n, pstream__); } @@ -2564,19 +2567,21 @@ return foo(n, pstream__); template -auto sho(const T0__& t, const std::vector& y, - const std::vector& theta, - const std::vector& x, - const std::vector& x_int, std::ostream* pstream__) ; +inline 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 -auto 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::return_type_t; +inline 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2608,17 +2613,18 @@ struct sho_functor__ { template -auto 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 +inline 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__); } }; -auto foo_bar0(std::ostream* pstream__) { +inline double +foo_bar0(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -2637,15 +2643,17 @@ auto foo_bar0(std::ostream* pstream__) { } struct foo_bar0_functor__ { -auto operator()(std::ostream* pstream__) const +inline double +operator()(std::ostream* pstream__) const { return foo_bar0(pstream__); } }; template -auto foo_bar1(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_bar1(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2664,15 +2672,17 @@ auto foo_bar1(const T0__& x, std::ostream* pstream__) { struct foo_bar1_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, std::ostream* pstream__) const { return foo_bar1(x, pstream__); } }; template -auto foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2691,15 +2701,17 @@ auto foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { struct foo_bar2_functor__ { template -auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return foo_bar2(x, y, pstream__); } }; template -auto foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_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 @@ -2716,15 +2728,17 @@ auto foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lpmf_functor__ { template -auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lpmf(y, lambda, pstream__); } }; template -auto foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2743,15 +2757,17 @@ auto foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lcdf_functor__ { template -auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lcdf(y, lambda, pstream__); } }; template -auto foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2770,16 +2786,18 @@ auto foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lccdf_functor__ { template -auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lccdf(y, lambda, pstream__); } }; template -auto foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -2798,8 +2816,9 @@ auto foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, struct foo_rng_functor__ { template -auto operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, - std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, + std::ostream* pstream__) const { return foo_rng(mu, sigma, base_rng__, pstream__); } @@ -2807,9 +2826,10 @@ return foo_rng(mu, sigma, base_rng__, pstream__); template -auto unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline void +unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -2829,15 +2849,17 @@ auto unit_normal_lp(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, struct unit_normal_lp_functor__ { template -auto operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +inline void +operator()(const T0__& u, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) const { return unit_normal_lp(u, lp__, lp_accum__, pstream__); } }; -auto foo_1(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +foo_1(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t<>; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3069,14 +3091,16 @@ auto foo_1(const int& a, std::ostream* pstream__) { } struct foo_1_functor__ { -auto operator()(const int& a, std::ostream* pstream__) const +inline int +operator()(const int& a, std::ostream* pstream__) const { return foo_1(a, pstream__); } }; -auto foo_2(const int& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +foo_2(const int& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t<>; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3108,15 +3132,17 @@ auto foo_2(const int& a, std::ostream* pstream__) { } struct foo_2_functor__ { -auto operator()(const int& a, std::ostream* pstream__) const +inline int +operator()(const int& a, std::ostream* pstream__) const { return foo_2(a, pstream__); } }; template -auto foo_3(const T0__& t, const int& n, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline std::vector> +foo_3(const T0__& t, const int& n, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3135,7 +3161,8 @@ auto foo_3(const T0__& t, const int& n, std::ostream* pstream__) { struct foo_3_functor__ { template -auto operator()(const T0__& t, const int& n, std::ostream* pstream__) const +inline std::vector> +operator()(const T0__& t, const int& n, std::ostream* pstream__) const { return foo_3(t, n, pstream__); } @@ -3143,9 +3170,10 @@ return foo_3(t, n, pstream__); template -auto foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -3163,16 +3191,18 @@ auto foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo_lp_functor__ { template -auto operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +inline stan::return_type_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 -auto foo_4(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline void +foo_4(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3194,16 +3224,18 @@ auto foo_4(const T0__& x, std::ostream* pstream__) { struct foo_4_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline void +operator()(const T0__& x, std::ostream* pstream__) const { return foo_4(x, pstream__); } }; template -auto relative_diff(const T0__& x, const T1__& y, const T2__& max_, - const T3__& min_, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +relative_diff(const T0__& x, const T1__& y, const T2__& max_, + const T3__& min_, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3256,8 +3288,9 @@ auto relative_diff(const T0__& x, const T1__& y, const T2__& max_, struct relative_diff_functor__ { template -auto operator()(const T0__& x, const T1__& y, const T2__& max_, - const T3__& min_, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -3265,10 +3298,11 @@ return relative_diff(x, y, max_, min_, pstream__); template -auto 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::return_type_t; +inline Eigen::Matrix, -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::return_type_t; int current_statement__ = 0; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); @@ -3278,8 +3312,7 @@ auto foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 711; - return stan::math::eval((Eigen::Matrix(3) << 1, 2, - 3).finished()); + 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 @@ -3291,10 +3324,10 @@ auto foo_5(const T0__& shared_params_arg__, const T1__& job_params_arg__, struct foo_5_functor__ { template -auto operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, - const std::vector& data_i, - std::ostream* pstream__) const +inline Eigen::Matrix, -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__); } @@ -3302,9 +3335,10 @@ return foo_5(shared_params, job_params, data_r, data_i, pstream__); template -auto 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::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -3324,8 +3358,9 @@ auto foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, struct foo_five_args_functor__ { template -auto operator()(const T0__& x1, const T1__& x2, const T2__& x3, - const T3__& x4, const T4__& x5, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -3334,11 +3369,12 @@ return foo_five_args(x1, x2, x3, x4, x5, pstream__); template -auto 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::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); (void) DUMMY_VAR__; // suppress unused var warning @@ -3357,9 +3393,10 @@ struct foo_five_args_lp_functor__ { template -auto 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 +inline stan::return_type_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__); @@ -3367,9 +3404,10 @@ return foo_five_args_lp(x1, x2, x3, x4, x5, x6, lp__, lp_accum__, }; template -auto covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& mat = to_ref(mat_arg__); static constexpr bool propto__ = true; @@ -3391,7 +3429,7 @@ auto covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, assign(o, stan::model::deep_copy(rvalue(o, "o", index_min_max(1, 2))), "assigning variable o", index_min_max(3, 4)); current_statement__ = 723; - return stan::math::eval(o); + return o; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3402,7 +3440,8 @@ auto covsqrt2corsqrt(const T0__& mat_arg__, const int& invert, struct covsqrt2corsqrt_functor__ { template -auto operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const T0__& mat, const int& invert, std::ostream* pstream__) const { return covsqrt2corsqrt(mat, invert, pstream__); } @@ -3413,15 +3452,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3449,15 +3489,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline 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__); } @@ -3468,15 +3508,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3501,15 +3542,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline 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__); } @@ -3520,15 +3561,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3553,15 +3595,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline 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__); } @@ -3572,15 +3614,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3605,15 +3648,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline 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__); } @@ -3624,15 +3667,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline stan::return_type_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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3657,15 +3701,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline stan::return_type_t +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__); } @@ -3676,15 +3720,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3709,15 +3754,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline 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 f5(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); } @@ -3728,15 +3773,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3761,15 +3807,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline 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 f6(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, pstream__); } @@ -3780,15 +3826,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3798,7 +3845,7 @@ auto f7(const int& a1, const std::vector& a2, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 739; - return stan::math::eval(a7); + return a7; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3813,15 +3860,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline Eigen::Matrix, -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__); } @@ -3832,15 +3879,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3865,15 +3913,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline std::vector, -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__); } @@ -3884,15 +3932,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3917,15 +3966,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline std::vector, -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__); } @@ -3936,15 +3985,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -3954,7 +4004,7 @@ auto f10(const int& a1, const std::vector& a2, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 745; - return stan::math::eval(a10); + return a10; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -3969,15 +4019,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline Eigen::Matrix, -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__); } @@ -3988,15 +4038,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -4021,15 +4072,15 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline std::vector, -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__); } @@ -4040,15 +4091,16 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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::return_type_t; +inline 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 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::return_type_t; int current_statement__ = 0; const auto& a7 = to_ref(a7_arg__); const auto& a10 = to_ref(a10_arg__); @@ -4073,21 +4125,22 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -auto 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 +inline std::vector, -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__); } }; -auto foo_6(std::ostream* pstream__) { +inline void +foo_6(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4122,13 +4175,15 @@ auto foo_6(std::ostream* pstream__) { } struct foo_6_functor__ { -auto operator()(std::ostream* pstream__) const +inline void +operator()(std::ostream* pstream__) const { return foo_6(pstream__); } }; -auto matfoo(std::ostream* pstream__) { +inline Eigen::Matrix +matfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4137,12 +4192,11 @@ auto matfoo(std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 757; - return stan::math::eval(stan::math::to_matrix( - std::vector>{ + 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()})); + 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 @@ -4152,13 +4206,15 @@ auto matfoo(std::ostream* pstream__) { } struct matfoo_functor__ { -auto operator()(std::ostream* pstream__) const +inline Eigen::Matrix +operator()(std::ostream* pstream__) const { return matfoo(pstream__); } }; -auto vecfoo(std::ostream* pstream__) { +inline Eigen::Matrix +vecfoo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -4167,8 +4223,8 @@ auto vecfoo(std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 759; - return stan::math::eval((Eigen::Matrix(10) << 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10).finished()); + 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 @@ -4178,15 +4234,17 @@ auto vecfoo(std::ostream* pstream__) { } struct vecfoo_functor__ { -auto operator()(std::ostream* pstream__) const +inline Eigen::Matrix +operator()(std::ostream* pstream__) const { return vecfoo(pstream__); } }; template -auto vecmufoo(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +vecmufoo(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -4197,7 +4255,7 @@ auto vecmufoo(const T0__& mu, std::ostream* pstream__) { current_statement__ = 761; assign(l, multiply(mu, vecfoo(pstream__)), "assigning variable l"); current_statement__ = 762; - return stan::math::eval(l); + return l; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4208,15 +4266,17 @@ auto vecmufoo(const T0__& mu, std::ostream* pstream__) { struct vecmufoo_functor__ { template -auto operator()(const T0__& mu, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& mu, std::ostream* pstream__) const { return vecmufoo(mu, pstream__); } }; template -auto vecmubar(const T0__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +vecmubar(const T0__& mu, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -4229,8 +4289,7 @@ auto vecmubar(const T0__& mu, std::ostream* pstream__) { multiply(mu, (Eigen::Matrix(10) << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10).finished()), "assigning variable l"); current_statement__ = 765; - return stan::math::eval(rvalue(l, "l", - index_multi(std::vector{1, 2, 3, 4, 5}))); + 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 @@ -4241,7 +4300,8 @@ auto vecmubar(const T0__& mu, std::ostream* pstream__) { struct vecmubar_functor__ { template -auto operator()(const T0__& mu, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& mu, std::ostream* pstream__) const { return vecmubar(mu, pstream__); } @@ -4249,11 +4309,12 @@ return vecmubar(mu, pstream__); template -auto 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::return_type_t; +inline Eigen::Matrix, -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::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -4275,7 +4336,7 @@ auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, (rvalue(x, "x", index_uni(2)) - rvalue(y, "y", index_uni(2))), "assigning variable f_x", index_uni(2)); current_statement__ = 770; - return stan::math::eval(f_x); + 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 @@ -4287,10 +4348,11 @@ auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, struct algebra_system_functor__ { template -auto operator()(const T0__& x, const T1__& y, - const std::vector& dat, - const std::vector& dat_int, - std::ostream* pstream__) const +inline Eigen::Matrix, -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__); } @@ -4298,11 +4360,11 @@ return algebra_system(x, y, dat, dat_int, pstream__); template -auto 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::return_type_t; +inline Eigen::Matrix, -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::return_type_t; int current_statement__ = 0; const auto& phi = to_ref(phi_arg__); const auto& theta = to_ref(theta_arg__); @@ -4318,7 +4380,7 @@ auto binomialf(const T0__& phi_arg__, const T1__& theta_arg__, current_statement__ = 773; assign(lpmf, 0.0, "assigning variable lpmf", index_uni(1)); current_statement__ = 774; - return stan::math::eval(lpmf); + return lpmf; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -4330,10 +4392,10 @@ auto binomialf(const T0__& phi_arg__, const T1__& theta_arg__, struct binomialf_functor__ { template -auto operator()(const T0__& phi, const T1__& theta, - const std::vector& x_r, - const std::vector& x_i, - std::ostream* pstream__) const +inline Eigen::Matrix, -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__); } @@ -10291,11 +10353,12 @@ static constexpr std::array locations_array__ = template -auto 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::return_type_t; +inline 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10327,11 +10390,11 @@ struct sho_functor__ { template -auto 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 +inline 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__); } @@ -10339,12 +10402,12 @@ return sho(t, y, theta, x, x_int, pstream__); template -auto 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::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10364,11 +10427,11 @@ auto integrand(const T0__& x, const T1__& xc, struct integrand_functor__ { template -auto 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 +inline stan::return_type_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__); } @@ -10376,10 +10439,11 @@ return integrand(x, xc, theta, x_r, x_i, pstream__); template -auto 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::return_type_t; +inline Eigen::Matrix, -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::return_type_t; int current_statement__ = 0; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); @@ -10389,8 +10453,7 @@ auto foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 147; - return stan::math::eval((Eigen::Matrix(3) << 1, 2, - 3).finished()); + 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 @@ -10402,10 +10465,10 @@ auto foo(const T0__& shared_params_arg__, const T1__& job_params_arg__, struct foo_functor__ { template -auto operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, - const std::vector& data_i, - std::ostream* pstream__) const +inline Eigen::Matrix, -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__); } @@ -10413,10 +10476,11 @@ return foo(shared_params, job_params, data_r, data_i, pstream__); template -auto 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::return_type_t; +inline Eigen::Matrix, -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::return_type_t; int current_statement__ = 0; const auto& shared_params = to_ref(shared_params_arg__); const auto& job_params = to_ref(job_params_arg__); @@ -10426,8 +10490,7 @@ auto goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 149; - return stan::math::eval((Eigen::Matrix(3) << 4, 5, - 6).finished()); + 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 @@ -10439,18 +10502,19 @@ auto goo(const T0__& shared_params_arg__, const T1__& job_params_arg__, struct goo_functor__ { template -auto operator()(const T0__& shared_params, const T1__& job_params, - const std::vector& data_r, - const std::vector& data_i, - std::ostream* pstream__) const +inline Eigen::Matrix, -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 -auto map_rectfake(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +map_rectfake(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10469,7 +10533,8 @@ auto map_rectfake(const T0__& x, std::ostream* pstream__) { struct map_rectfake_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, std::ostream* pstream__) const { return map_rectfake(x, pstream__); } @@ -10477,11 +10542,12 @@ return map_rectfake(x, pstream__); template -auto 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::return_type_t; +inline Eigen::Matrix, -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::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -10503,7 +10569,7 @@ auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, (rvalue(x, "x", index_uni(2)) - rvalue(y, "y", index_uni(2))), "assigning variable f_x", index_uni(2)); current_statement__ = 156; - return stan::math::eval(f_x); + 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 @@ -10515,10 +10581,11 @@ auto algebra_system(const T0__& x_arg__, const T1__& y_arg__, struct algebra_system_functor__ { template -auto operator()(const T0__& x, const T1__& y, - const std::vector& dat, - const std::vector& dat_int, - std::ostream* pstream__) const +inline Eigen::Matrix, -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__); } @@ -12680,9 +12747,10 @@ static constexpr std::array locations_array__ = template -auto f(const T0__& t, const T1__& z_arg__, const T2__& a, - const T3__& b_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -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::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); const auto& b = to_ref(b_arg__); @@ -12692,7 +12760,7 @@ auto f(const T0__& t, const T1__& z_arg__, const T2__& a, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 628; - return stan::math::eval(z); + return z; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -12703,8 +12771,9 @@ auto f(const T0__& t, const T1__& z_arg__, const T2__& a, struct f_functor__ { template -auto operator()(const T0__& t, const T1__& z, const T2__& a, const T3__& b, - std::ostream* pstream__) const +inline Eigen::Matrix, -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__); } @@ -12713,8 +12782,9 @@ return f(t, z, a, b, pstream__); struct f_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a, const T3__& b) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a, const T3__& b) const { return f(t, z, a, b, pstream__); } @@ -16101,11 +16171,12 @@ static constexpr std::array locations_array__ = template -auto 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::return_type_t; +inline 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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -16150,11 +16221,11 @@ struct dz_dt_functor__ { template -auto 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 +inline 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__); } @@ -18738,9 +18809,10 @@ struct h_rsfunctor__; template struct foo_lpdf_rsfunctor__; template -auto g(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -18765,8 +18837,9 @@ auto g(const std::vector& y_slice, const int& start, struct g_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g(y_slice, start, end, pstream__); } @@ -18775,18 +18848,20 @@ return g(y_slice, start, end, pstream__); struct g_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto h(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -18812,9 +18887,10 @@ auto h(const std::vector& y_slice, const int& start, struct h_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -18823,18 +18899,20 @@ return h(y_slice, start, end, a, pstream__); struct h_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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__); } }; template -auto foo_lpdf(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_lpdf(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_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 @@ -18851,8 +18929,9 @@ auto foo_lpdf(const std::vector& y_slice, const int& start, struct foo_lpdf_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -18862,8 +18941,9 @@ return foo_lpdf(y_slice, start, end, pstream__); template struct foo_lpdf_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -19478,9 +19558,10 @@ struct h6_rsfunctor__; struct h7_rsfunctor__; struct h8_rsfunctor__; template -auto g1(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g1(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19499,8 +19580,9 @@ auto g1(const std::vector& y_slice, const int& start, struct g1_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g1(y_slice, start, end, pstream__); } @@ -19509,17 +19591,19 @@ return g1(y_slice, start, end, pstream__); struct g1_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g2(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g2(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19548,8 +19632,9 @@ auto g2(const std::vector& y_slice, const int& start, struct g2_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g2(y_slice, start, end, pstream__); } @@ -19558,17 +19643,19 @@ return g2(y_slice, start, end, pstream__); struct g2_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g3(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g3(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19597,8 +19684,9 @@ auto g3(const std::vector& y_slice, const int& start, struct g3_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g3(y_slice, start, end, pstream__); } @@ -19607,17 +19695,19 @@ return g3(y_slice, start, end, pstream__); struct g3_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g4(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g4(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19647,8 +19737,9 @@ auto g4(const std::vector& y_slice, const int& start, struct g4_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g4(y_slice, start, end, pstream__); } @@ -19657,17 +19748,19 @@ return g4(y_slice, start, end, pstream__); struct g4_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g5(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g5(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19701,8 +19794,9 @@ auto g5(const std::vector& y_slice, const int& start, struct g5_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g5(y_slice, start, end, pstream__); } @@ -19711,17 +19805,19 @@ return g5(y_slice, start, end, pstream__); struct g5_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g6(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g6(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19756,8 +19852,9 @@ auto g6(const std::vector& y_slice, const int& start, struct g6_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g6(y_slice, start, end, pstream__); } @@ -19766,17 +19863,19 @@ return g6(y_slice, start, end, pstream__); struct g6_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g7(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g7(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19811,8 +19910,9 @@ auto g7(const std::vector& y_slice, const int& start, struct g7_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g7(y_slice, start, end, pstream__); } @@ -19821,17 +19921,19 @@ return g7(y_slice, start, end, pstream__); struct g7_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g8(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g8(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19866,8 +19968,9 @@ auto g8(const std::vector& y_slice, const int& start, struct g8_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return g8(y_slice, start, end, pstream__); } @@ -19876,18 +19979,19 @@ return g8(y_slice, start, end, pstream__); struct g8_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto h1(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h1(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19907,9 +20011,10 @@ auto h1(const std::vector& y, const int& start, struct h1_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -19918,19 +20023,20 @@ return h1(y, start, end, a, pstream__); struct h1_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto h2(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h2(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -19958,9 +20064,10 @@ auto h2(const std::vector& y, const int& start, struct h2_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -19969,19 +20076,20 @@ return h2(y, start, end, a, pstream__); struct h2_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto h3(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h3(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20009,9 +20117,10 @@ auto h3(const std::vector& y, const int& start, struct h3_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -20020,19 +20129,20 @@ return h3(y, start, end, a, pstream__); struct h3_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto h4(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h4(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20061,9 +20171,10 @@ auto h4(const std::vector& y, const int& start, struct h4_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -20072,19 +20183,20 @@ return h4(y, start, end, a, pstream__); struct h4_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto h5(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h5(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20116,9 +20228,10 @@ auto h5(const std::vector& y, const int& start, struct h5_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -20127,19 +20240,20 @@ return h5(y, start, end, a, pstream__); struct h5_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto h6(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h6(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20172,9 +20286,10 @@ auto h6(const std::vector& y, const int& start, struct h6_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -20183,19 +20298,20 @@ return h6(y, start, end, a, pstream__); struct h6_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto h7(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h7(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20228,9 +20344,10 @@ auto h7(const std::vector& y, const int& start, struct h7_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -20239,19 +20356,20 @@ return h7(y, start, end, a, pstream__); struct h7_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto h8(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +h8(const std::vector& y, const int& start, const int& end, + const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -20284,9 +20402,10 @@ auto h8(const std::vector& y, const int& start, struct h8_functor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -20295,9 +20414,10 @@ return h8(y, start, end, a, pstream__); struct h8_rsfunctor__ { template -auto operator()(const std::vector& y, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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__); } @@ -21926,9 +22046,10 @@ struct g8_rsfunctor__; struct g9_rsfunctor__; struct s_rsfunctor__; template -auto f1(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f1(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -21947,8 +22068,9 @@ auto f1(const std::vector& y_slice, const int& start, struct f1_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f1(y_slice, start, end, pstream__); } @@ -21957,17 +22079,19 @@ return f1(y_slice, start, end, pstream__); struct f1_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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__); } }; template -auto f1a(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f1a(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -21986,8 +22110,9 @@ auto f1a(const std::vector& y_slice, const int& start, struct f1a_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f1a(y_slice, start, end, pstream__); } @@ -21996,17 +22121,19 @@ return f1a(y_slice, start, end, pstream__); struct f1a_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto f2(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f2(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22025,8 +22152,9 @@ auto f2(const std::vector& y_slice, const int& start, struct f2_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f2(y_slice, start, end, pstream__); } @@ -22035,17 +22163,19 @@ return f2(y_slice, start, end, pstream__); struct f2_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto f3(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f3(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22064,8 +22194,9 @@ auto f3(const std::vector& y_slice, const int& start, struct f3_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f3(y_slice, start, end, pstream__); } @@ -22074,17 +22205,19 @@ return f3(y_slice, start, end, pstream__); struct f3_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto f4(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f4(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22103,8 +22236,9 @@ auto f4(const std::vector& y_slice, const int& start, struct f4_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f4(y_slice, start, end, pstream__); } @@ -22113,17 +22247,19 @@ return f4(y_slice, start, end, pstream__); struct f4_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto f5(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f5(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22142,8 +22278,9 @@ auto f5(const std::vector& y_slice, const int& start, struct f5_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f5(y_slice, start, end, pstream__); } @@ -22152,17 +22289,19 @@ return f5(y_slice, start, end, pstream__); struct f5_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto f6(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f6(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22181,8 +22320,9 @@ auto f6(const std::vector& y_slice, const int& start, struct f6_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f6(y_slice, start, end, pstream__); } @@ -22191,17 +22331,19 @@ return f6(y_slice, start, end, pstream__); struct f6_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto f7(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f7(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22220,8 +22362,9 @@ auto f7(const std::vector& y_slice, const int& start, struct f7_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f7(y_slice, start, end, pstream__); } @@ -22230,17 +22373,19 @@ return f7(y_slice, start, end, pstream__); struct f7_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto f8(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f8(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22259,8 +22404,9 @@ auto f8(const std::vector& y_slice, const int& start, struct f8_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f8(y_slice, start, end, pstream__); } @@ -22269,17 +22415,19 @@ return f8(y_slice, start, end, pstream__); struct f8_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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__); } }; template -auto f9(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f9(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22298,8 +22446,9 @@ auto f9(const std::vector& y_slice, const int& start, struct f9_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f9(y_slice, start, end, pstream__); } @@ -22308,17 +22457,19 @@ return f9(y_slice, start, end, pstream__); struct f9_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +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__); } }; template -auto f10(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f10(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22337,8 +22488,9 @@ auto f10(const std::vector& y_slice, const int& start, struct f10_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f10(y_slice, start, end, pstream__); } @@ -22347,17 +22499,19 @@ return f10(y_slice, start, end, pstream__); struct f10_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +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__); } }; template -auto f11(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f11(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22376,8 +22530,9 @@ auto f11(const std::vector& y_slice, const int& start, struct f11_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f11(y_slice, start, end, pstream__); } @@ -22386,17 +22541,19 @@ return f11(y_slice, start, end, pstream__); struct f11_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +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__); } }; template -auto f12(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +f12(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22415,8 +22572,9 @@ auto f12(const std::vector& y_slice, const int& start, struct f12_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& y_slice, const int& start, + const int& end, std::ostream* pstream__) const { return f12(y_slice, start, end, pstream__); } @@ -22425,17 +22583,19 @@ return f12(y_slice, start, end, pstream__); struct f12_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__) const +inline stan::return_type_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 -auto g1(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +g1(const std::vector& y_slice, const int& start, + const int& end, const T3__& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22454,8 +22614,9 @@ auto g1(const std::vector& y_slice, const int& start, struct g1_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22464,17 +22625,19 @@ return g1(y_slice, start, end, a, pstream__); struct g1_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +inline stan::return_type_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 -auto g2(const std::vector& y_slice, const int& start, - const int& end, const T3__& a_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -22494,8 +22657,9 @@ auto g2(const std::vector& y_slice, const int& start, struct g2_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22504,17 +22668,19 @@ return g2(y_slice, start, end, a, pstream__); struct g2_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +inline stan::return_type_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__); } }; template -auto g3(const std::vector& y_slice, const int& start, - const int& end, const T3__& a_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -22534,8 +22700,9 @@ auto g3(const std::vector& y_slice, const int& start, struct g3_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22544,17 +22711,19 @@ return g3(y_slice, start, end, a, pstream__); struct g3_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +inline stan::return_type_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__); } }; template -auto g4(const std::vector& y_slice, const int& start, - const int& end, const T3__& a_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -22574,8 +22743,9 @@ auto g4(const std::vector& y_slice, const int& start, struct g4_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const T3__& a, std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22584,18 +22754,20 @@ return g4(y_slice, start, end, a, pstream__); struct g4_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, const T3__& a) const +inline stan::return_type_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__); } }; template -auto g5(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22614,9 +22786,10 @@ auto g5(const std::vector& y_slice, const int& start, struct g5_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22625,19 +22798,21 @@ return g5(y_slice, start, end, a, pstream__); struct g5_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto g6(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22656,9 +22831,10 @@ auto g6(const std::vector& y_slice, const int& start, struct g6_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22667,19 +22843,21 @@ return g6(y_slice, start, end, a, pstream__); struct g6_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto g7(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22698,9 +22876,10 @@ auto g7(const std::vector& y_slice, const int& start, struct g7_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22709,19 +22888,21 @@ return g7(y_slice, start, end, a, pstream__); struct g7_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto g8(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22740,9 +22921,10 @@ auto g8(const std::vector& y_slice, const int& start, struct g8_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22751,19 +22933,21 @@ return g8(y_slice, start, end, a, pstream__); struct g8_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto g9(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22782,9 +22966,10 @@ auto g9(const std::vector& y_slice, const int& start, struct g9_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22793,19 +22978,21 @@ return g9(y_slice, start, end, a, pstream__); struct g9_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto g10(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22824,9 +23011,10 @@ auto g10(const std::vector& y_slice, const int& start, struct g10_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22835,19 +23023,21 @@ return g10(y_slice, start, end, a, pstream__); struct g10_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto g11(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22866,9 +23056,10 @@ auto g11(const std::vector& y_slice, const int& start, struct g11_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22877,19 +23068,21 @@ return g11(y_slice, start, end, a, pstream__); struct g11_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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 -auto g12(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -22908,9 +23101,10 @@ auto g12(const std::vector& y_slice, const int& start, struct g12_functor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, const std::vector& a, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -22919,9 +23113,10 @@ return g12(y_slice, start, end, a, pstream__); struct g12_rsfunctor__ { template -auto operator()(const std::vector& y_slice, const int& start, - const int& end, std::ostream* pstream__, - const std::vector& a) const +inline stan::return_type_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__); } @@ -22935,22 +23130,22 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -auto 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::return_type_t; +inline stan::return_type_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::return_type_t; int current_statement__ = 0; const auto& c = to_ref(c_arg__); const auto& d = to_ref(d_arg__); @@ -22980,22 +23175,22 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -auto 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 +inline stan::return_type_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__); @@ -23012,28 +23207,30 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -auto 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 +inline stan::return_type_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__); } }; -auto r(std::ostream* pstream__) { +inline double +r(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -23369,7 +23566,8 @@ auto r(std::ostream* pstream__) { } struct r_functor__ { -auto operator()(std::ostream* pstream__) const +inline double +operator()(std::ostream* pstream__) const { return r(pstream__); } @@ -25219,8 +25417,9 @@ static constexpr std::array locations_array__ = template -auto foo0_log(const int& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t<> +foo0_log(const int& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25237,15 +25436,17 @@ auto foo0_log(const int& y, std::ostream* pstream__) { struct foo0_log_functor__ { template -auto operator()(const int& y, std::ostream* pstream__) const +inline stan::return_type_t<> +operator()(const int& y, std::ostream* pstream__) const { return foo0_log(y, pstream__); } }; template -auto foo1_lpmf(const int& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t<> +foo1_lpmf(const int& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25262,16 +25463,18 @@ auto foo1_lpmf(const int& y, std::ostream* pstream__) { struct foo1_lpmf_functor__ { template -auto operator()(const int& y, std::ostream* pstream__) const +inline stan::return_type_t<> +operator()(const int& y, std::ostream* pstream__) const { return foo1_lpmf(y, pstream__); } }; template -auto foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t<> +foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -25288,16 +25491,18 @@ auto foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo4_lp_functor__ { template -auto operator()(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +inline stan::return_type_t<> +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 -auto foo2_log(const T0__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo2_log(const T0__& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25314,15 +25519,17 @@ auto foo2_log(const T0__& y, std::ostream* pstream__) { struct foo2_log_functor__ { template -auto operator()(const T0__& y, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& y, std::ostream* pstream__) const { return foo2_log(y, pstream__); } }; template -auto foo3_lpdf(const T0__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo3_lpdf(const T0__& y, std::ostream* pstream__) { + using local_scalar_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 @@ -25339,7 +25546,8 @@ auto foo3_lpdf(const T0__& y, std::ostream* pstream__) { struct foo3_lpdf_functor__ { template -auto operator()(const T0__& y, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& y, std::ostream* pstream__) const { return foo3_lpdf(y, pstream__); } @@ -25347,9 +25555,10 @@ return foo3_lpdf(y, pstream__); template -auto foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -25367,8 +25576,9 @@ auto foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo5_lp_functor__ { template -auto operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +inline stan::return_type_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__); } @@ -29145,8 +29355,9 @@ static constexpr std::array locations_array__ = template -auto normal(const T0__& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +normal(const T0__& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -29165,7 +29376,8 @@ auto normal(const T0__& a, std::ostream* pstream__) { struct normal_functor__ { template -auto operator()(const T0__& a, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& a, std::ostream* pstream__) const { return normal(a, pstream__); } @@ -29505,8 +29717,9 @@ static constexpr std::array locations_array__ = template -auto lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -29525,7 +29738,8 @@ auto lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { struct lb_constrain_functor__ { template -auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return lb_constrain(x, y, pstream__); } diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index 9aa12fe3b8..3ddc713f22 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -34,10 +34,11 @@ static constexpr std::array locations_array__ = template -auto foo1(const T0__& a, const int& b, const std::vector& c, - const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo1(const T0__& a, const int& b, const std::vector& c, + const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& d = to_ref(d_arg__); const auto& e = to_ref(e_arg__); @@ -60,9 +61,10 @@ auto foo1(const T0__& a, const int& b, const std::vector& c, struct foo1_functor__ { template -auto operator()(const T0__& a, const int& b, - const std::vector& c, const T3__& d, - const T4__& e, const T5__& f, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& a, const int& b, const std::vector& c, + const T3__& d, const T4__& e, const T5__& f, + std::ostream* pstream__) const { return foo1(a, b, c, d, e, f, pstream__); } @@ -70,9 +72,10 @@ return foo1(a, b, c, d, e, f, pstream__); template -auto foo2(const T0__& a_arg__, const std::vector& b, - const std::vector& c, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +foo2(const T0__& a_arg__, const std::vector& b, + const std::vector& c, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); static constexpr bool propto__ = true; @@ -81,7 +84,7 @@ auto foo2(const T0__& a_arg__, const std::vector& b, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 7; - return stan::math::eval(a); + return a; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -93,16 +96,18 @@ auto foo2(const T0__& a_arg__, const std::vector& b, struct foo2_functor__ { template -auto operator()(const T0__& a, const std::vector& b, - const std::vector& c, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& a, const std::vector& b, + const std::vector& c, std::ostream* pstream__) const { return foo2(a, b, c, pstream__); } }; template -auto foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& a = to_ref(a_arg__); const auto& b = to_ref(b_arg__); @@ -112,7 +117,7 @@ auto foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 9; - return stan::math::eval(b); + return b; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -123,7 +128,8 @@ auto foo3(const T0__& a_arg__, const T1__& b_arg__, std::ostream* pstream__) { struct foo3_functor__ { template -auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return foo3(a, b, pstream__); } diff --git a/test/integration/good/code-gen/ode/cpp.expected b/test/integration/good/code-gen/ode/cpp.expected index 3126f62918..075f8bfa15 100644 --- a/test/integration/good/code-gen/ode/cpp.expected +++ b/test/integration/good/code-gen/ode/cpp.expected @@ -58,8 +58,9 @@ static constexpr std::array locations_array__ = template -auto f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); static constexpr bool propto__ = true; @@ -68,7 +69,7 @@ auto f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 30; - return stan::math::eval(z); + return z; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -79,7 +80,8 @@ auto f_0_arg(const T0__& t, const T1__& z_arg__, std::ostream* pstream__) { struct f_0_arg_functor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } @@ -88,16 +90,18 @@ return f_0_arg(t, z, pstream__); struct f_0_arg_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const { return f_0_arg(t, z, pstream__); } }; template -auto f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); static constexpr bool propto__ = true; @@ -106,7 +110,7 @@ auto f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 32; - return stan::math::eval(z); + return z; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -117,8 +121,9 @@ auto f_1_arg(const T0__& t, const T1__& z_arg__, const T2__& a, struct f_1_arg_functor__ { template -auto operator()(const T0__& t, const T1__& z, const T2__& a, - std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& t, const T1__& z, const T2__& a, + std::ostream* pstream__) const { return f_1_arg(t, z, a, pstream__); } @@ -127,17 +132,19 @@ return f_1_arg(t, z, a, pstream__); struct f_1_arg_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const T2__& a) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const T2__& a) const { return f_1_arg(t, z, a, pstream__); } }; template -auto f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& z = to_ref(z_arg__); static constexpr bool propto__ = true; @@ -146,7 +153,7 @@ auto f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 34; - return stan::math::eval(z); + return z; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -157,8 +164,9 @@ auto f_2_arg(const T0__& t, const T1__& z_arg__, const int& b, const T3__& a, struct f_2_arg_functor__ { template -auto operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, - std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& t, const T1__& z, const int& b, const T3__& a, + std::ostream* pstream__) const { return f_2_arg(t, z, b, a, pstream__); } @@ -167,8 +175,9 @@ return f_2_arg(t, z, b, a, pstream__); struct f_2_arg_odefunctor__ { template -auto operator()(const T0__& t, const T1__& z, std::ostream* pstream__, - const int& b, const T3__& a) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& t, const T1__& z, std::ostream* pstream__, + const int& b, const T3__& a) const { return f_2_arg(t, z, b, a, pstream__); } diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index de96a2ab0e..7ade3a9db7 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -43,8 +43,9 @@ static constexpr std::array locations_array__ = template -auto my_log1p_exp(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +my_log1p_exp(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -63,15 +64,17 @@ auto my_log1p_exp(const T0__& x, std::ostream* pstream__) { struct my_log1p_exp_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, std::ostream* pstream__) const { return my_log1p_exp(x, pstream__); } }; template -auto array_fun(const std::vector& a, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +array_fun(const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -90,16 +93,17 @@ auto array_fun(const std::vector& a, std::ostream* pstream__) { struct array_fun_functor__ { template -auto operator()(const std::vector& a, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& a, std::ostream* pstream__) const { return array_fun(a, pstream__); } }; template -auto int_array_fun(const std::vector& a, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +int_array_fun(const std::vector& a, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -118,15 +122,17 @@ auto int_array_fun(const std::vector& a, struct int_array_fun_functor__ { template -auto operator()(const std::vector& a, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const std::vector& a, std::ostream* pstream__) const { return int_array_fun(a, pstream__); } }; template -auto my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); static constexpr bool propto__ = true; @@ -140,7 +146,7 @@ auto my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { current_statement__ = 8; assign(result, multiply(x, 5.0), "assigning variable result"); current_statement__ = 9; - return stan::math::eval(result); + return result; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -151,15 +157,16 @@ auto my_vector_mul_by_5(const T0__& x_arg__, std::ostream* pstream__) { struct my_vector_mul_by_5_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& x, std::ostream* pstream__) const { return my_vector_mul_by_5(x, pstream__); } }; -auto int_only_multiplication(const int& a, const int& b, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +int_only_multiplication(const int& a, const int& b, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t<>; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -177,15 +184,17 @@ auto int_only_multiplication(const int& a, const int& b, } struct int_only_multiplication_functor__ { -auto operator()(const int& a, const int& b, std::ostream* pstream__) const +inline int +operator()(const int& a, const int& b, std::ostream* pstream__) const { return int_only_multiplication(a, b, pstream__); } }; template -auto test_lgamma(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +test_lgamma(const T0__& x, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -204,7 +213,8 @@ auto test_lgamma(const T0__& x, std::ostream* pstream__) { struct test_lgamma_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, std::ostream* pstream__) const { return test_lgamma(x, pstream__); } @@ -212,9 +222,10 @@ return test_lgamma(x, pstream__); template -auto test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline void +test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -232,16 +243,18 @@ auto test_lp(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, struct test_lp_functor__ { template -auto operator()(const T0__& a, T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +inline 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 -auto test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -260,15 +273,17 @@ auto test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { struct test_rng_functor__ { template -auto operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const { return test_rng(a, base_rng__, pstream__); } }; template -auto test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { + using local_scalar_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 @@ -285,7 +300,8 @@ auto test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { struct test_lpdf_functor__ { template -auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return test_lpdf(a, b, pstream__); } @@ -400,8 +416,9 @@ static constexpr std::array locations_array__ = template -auto integrand(const T0__& x_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +integrand(const T0__& x_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); static constexpr bool propto__ = true; @@ -410,7 +427,7 @@ auto integrand(const T0__& x_arg__, std::ostream* pstream__) { (void) DUMMY_VAR__; // suppress unused var warning try { current_statement__ = 1; - return stan::math::eval(stan::math::exp(minus(square(x)))); + return stan::math::exp(minus(square(x))); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -421,7 +438,8 @@ auto integrand(const T0__& x_arg__, std::ostream* pstream__) { struct integrand_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& x, std::ostream* pstream__) const { return integrand(x, pstream__); } @@ -430,12 +448,12 @@ return integrand(x, pstream__); template -auto 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::return_type_t; +inline 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__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -465,17 +483,18 @@ struct integrand_ode_functor__ { template -auto 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 +inline 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__); } }; -auto ode_integrate(std::ostream* pstream__) { +inline double +ode_integrate(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; static constexpr bool propto__ = true; @@ -502,7 +521,8 @@ auto ode_integrate(std::ostream* pstream__) { } struct ode_integrate_functor__ { -auto operator()(std::ostream* pstream__) const +inline double +operator()(std::ostream* pstream__) const { return ode_integrate(pstream__); } diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index a2dee061fc..0ae1c868a5 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -58,12 +58,12 @@ static constexpr std::array locations_array__ = template -auto 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::return_type_t; +inline 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__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -116,11 +116,11 @@ struct simple_SIR_functor__ { template -auto 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 +inline 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__); } @@ -909,9 +909,9 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +first_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -949,17 +949,17 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +last_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1003,18 +1003,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -1116,7 +1116,7 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, } } current_statement__ = 67; - return stan::math::eval(chi); + return chi; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -1127,8 +1127,9 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -7998,9 +7999,9 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +first_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -8038,17 +8039,17 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +last_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -8092,18 +8093,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -8205,7 +8206,7 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, } } current_statement__ = 69; - return stan::math::eval(chi); + return chi; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -8216,8 +8217,9 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -10099,9 +10101,9 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +first_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10139,17 +10141,17 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +last_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -10193,17 +10195,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -10307,7 +10310,7 @@ auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, } } current_statement__ = 141; - return stan::math::eval(chi); + return chi; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -10318,7 +10321,8 @@ auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -auto operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const { return prob_uncaptured(p, phi, pstream__); } @@ -10328,13 +10332,14 @@ template -auto js_super_lp(const std::vector& y, - const std::vector& first, - const std::vector& last, - const T3__& p_arg__, const T4__& phi_arg__, const T5__& psi, - const T6__& nu_arg__, const T7__& chi_arg__, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline void +js_super_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, const T3__& p_arg__, + const T4__& phi_arg__, const T5__& psi, const T6__& nu_arg__, + const T7__& chi_arg__, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -10771,12 +10776,12 @@ template -auto 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 +inline 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, lp__, lp_accum__, pstream__); @@ -15266,9 +15271,9 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +first_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -15306,17 +15311,17 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +last_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -15360,18 +15365,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -15473,7 +15478,7 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, } } current_statement__ = 67; - return stan::math::eval(chi); + return chi; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -15484,8 +15489,9 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -17456,9 +17462,9 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +first_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -17496,17 +17502,17 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +last_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -17550,17 +17556,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -17664,7 +17671,7 @@ auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, } } current_statement__ = 137; - return stan::math::eval(chi); + return chi; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -17675,7 +17682,8 @@ auto prob_uncaptured(const T0__& p_arg__, const T1__& phi_arg__, struct prob_uncaptured_functor__ { template -auto operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const T0__& p, const T1__& phi, std::ostream* pstream__) const { return prob_uncaptured(p, phi, pstream__); } @@ -17685,14 +17693,14 @@ template -auto jolly_seber_lp(const std::vector& y, - const std::vector& first, - const std::vector& last, - const T3__& p_arg__, const T4__& phi_arg__, - const T5__& gamma_arg__, const T6__& chi_arg__, - T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline void +jolly_seber_lp(const std::vector& y, + const std::vector& first, + const std::vector& last, const T3__& p_arg__, + const T4__& phi_arg__, const T5__& gamma_arg__, + const T6__& chi_arg__, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -18126,12 +18134,12 @@ template -auto 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 +inline 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, lp__, lp_accum__, pstream__); @@ -18139,8 +18147,9 @@ return jolly_seber_lp(y, first, last, p, phi, gamma, chi, lp__, }; template -auto seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, 1> +seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& gamma = to_ref(gamma_arg__); static constexpr bool propto__ = true; @@ -18184,7 +18193,7 @@ auto seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { } } current_statement__ = 142; - return stan::math::eval(stan::math::exp(log_cprob)); + return stan::math::exp(log_cprob); } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -18195,7 +18204,8 @@ auto seq_cprob(const T0__& gamma_arg__, std::ostream* pstream__) { struct seq_cprob_functor__ { template -auto operator()(const T0__& gamma, std::ostream* pstream__) const +inline Eigen::Matrix, -1, 1> +operator()(const T0__& gamma, std::ostream* pstream__) const { return seq_cprob(gamma, pstream__); } @@ -21806,9 +21816,9 @@ static constexpr std::array locations_array__ = template -auto first_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +first_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -21846,17 +21856,17 @@ auto first_capture(const std::vector& y_i, struct first_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return first_capture(y_i, pstream__); } }; template -auto last_capture(const std::vector& y_i, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +last_capture(const std::vector& y_i, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -21900,18 +21910,18 @@ auto last_capture(const std::vector& y_i, struct last_capture_functor__ { template -auto operator()(const std::vector& y_i, - std::ostream* pstream__) const +inline int +operator()(const std::vector& y_i, std::ostream* pstream__) const { return last_capture(y_i, pstream__); } }; template -auto prob_uncaptured(const int& nind, const int& n_occasions, - const T2__& p_arg__, const T3__& phi_arg__, - std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline Eigen::Matrix, -1, -1> +prob_uncaptured(const int& nind, const int& n_occasions, const T2__& p_arg__, + const T3__& phi_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& p = to_ref(p_arg__); const auto& phi = to_ref(phi_arg__); @@ -22013,7 +22023,7 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, } } current_statement__ = 63; - return stan::math::eval(chi); + return chi; } catch (const std::exception& e) { stan::lang::rethrow_located(e, locations_array__[current_statement__]); // Next line prevents compiler griping about no return @@ -22024,8 +22034,9 @@ auto prob_uncaptured(const int& nind, const int& n_occasions, struct prob_uncaptured_functor__ { template -auto operator()(const int& nind, const int& n_occasions, const T2__& p, - const T3__& phi, std::ostream* pstream__) const +inline Eigen::Matrix, -1, -1> +operator()(const int& nind, const int& n_occasions, const T2__& p, + const T3__& phi, std::ostream* pstream__) const { return prob_uncaptured(nind, n_occasions, p, phi, pstream__); } @@ -23676,8 +23687,9 @@ static constexpr std::array locations_array__ = template -auto foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { + using local_scalar_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 @@ -23695,15 +23707,17 @@ auto foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { struct foo_lpdf_functor__ { template -auto operator()(const T0__& x, const T1__& mu, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, const T1__& mu, std::ostream* pstream__) const { return foo_lpdf(x, mu, pstream__); } }; template -auto bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { + using local_scalar_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 @@ -23721,15 +23735,17 @@ auto bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { struct bar_lpmf_functor__ { template -auto operator()(const int& n, const T1__& mu, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const int& n, const T1__& mu, std::ostream* pstream__) const { return bar_lpmf(n, mu, pstream__); } }; template -auto baz_lpdf(const T0__& x, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline stan::return_type_t +baz_lpdf(const T0__& x, std::ostream* pstream__) { + using local_scalar_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 @@ -23747,7 +23763,8 @@ auto baz_lpdf(const T0__& x, std::ostream* pstream__) { struct baz_lpdf_functor__ { template -auto operator()(const T0__& x, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& x, std::ostream* pstream__) const { return baz_lpdf(x, pstream__); } @@ -26050,9 +26067,10 @@ static constexpr std::array locations_array__ = template -auto nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline void +nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, + std::ostream* pstream__) { + using local_scalar_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 @@ -26076,15 +26094,17 @@ auto nrfun_lp(const T0__& x, const int& y, T_lp__& lp__, struct nrfun_lp_functor__ { template -auto operator()(const T0__& x, const int& y, T_lp__& lp__, - T_lp_accum__& lp_accum__, std::ostream* pstream__) const +inline 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__); } }; -auto rfun(const int& y, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; +inline int +rfun(const int& y, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t<>; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -26110,14 +26130,16 @@ auto rfun(const int& y, std::ostream* pstream__) { } struct rfun_functor__ { -auto operator()(const int& y, std::ostream* pstream__) const +inline int +operator()(const int& y, std::ostream* pstream__) const { return rfun(y, pstream__); } }; template -auto rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { +inline int +rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; local_scalar_t__ DUMMY_VAR__(std::numeric_limits::quiet_NaN()); @@ -26137,8 +26159,8 @@ auto rfun_lp(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { struct rfun_lp_functor__ { template -auto operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, - std::ostream* pstream__) const +inline int +operator()(T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { return rfun_lp(lp__, lp_accum__, pstream__); } diff --git a/test/unit/Stan_math_code_gen_tests.ml b/test/unit/Stan_math_code_gen_tests.ml index cc58169336..c1639e9eaa 100644 --- a/test/unit/Stan_math_code_gen_tests.ml +++ b/test/unit/Stan_math_code_gen_tests.ml @@ -29,8 +29,9 @@ let%expect_test "udf" = [%expect {| template - auto sars(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; + inline void + sars(const T0__& x_arg__, const T1__& y_arg__, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -50,7 +51,8 @@ let%expect_test "udf" = struct sars_functor__ { template - auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const + inline void + operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return sars(x, y, pstream__); } @@ -86,9 +88,10 @@ let%expect_test "udf-expressions" = {| template - auto sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, - const std::vector& w, std::ostream* pstream__) { - using local_scalar_t__ = stan::return_type_t; + inline Eigen::Matrix, -1, -1> + sars(const T0__& x_arg__, const T1__& y_arg__, const T2__& z_arg__, + const std::vector& w, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; const auto& x = to_ref(x_arg__); const auto& y = to_ref(y_arg__); @@ -110,8 +113,9 @@ let%expect_test "udf-expressions" = struct sars_functor__ { template - auto operator()(const T0__& x, const T1__& y, const T2__& z, - const std::vector& w, std::ostream* pstream__) const + inline Eigen::Matrix, -1, -1> + operator()(const T0__& x, const T1__& y, const T2__& z, + const std::vector& w, std::ostream* pstream__) const { return sars(x, y, z, w, pstream__); } From 90fcb0b372b502ee4bc736a093cb8e0a5dc813a7 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Tue, 28 Sep 2021 15:44:57 -0400 Subject: [PATCH 6/7] fix codegen for complex UDFs --- src/stan_math_backend/Stan_math_code_gen.ml | 7 +- test/integration/good/code-gen/cpp.expected | 106 ++++++++++---------- 2 files changed, 55 insertions(+), 58 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index a1ad6f2751..df1baefcb1 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -68,9 +68,10 @@ let maybe_templated_arg_types (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i (adtype, _, ut) -> match ut with | UMatrix | UVector | URowVector -> Some [sprintf "T%d__" i] - | UReal when adtype = AutoDiffable -> Some [sprintf "T%d__" i] + | (UReal | UComplex) when adtype = AutoDiffable -> + Some [sprintf "T%d__" i] | UArray _ -> Some [sprintf "T%d__" i; sprintf "Alloc%d__" i] - | UInt | UReal | UMathLibraryFunction | UFun _ -> None ) + | UInt | UReal | UComplex | UMathLibraryFunction | UFun _ -> None ) let return_arg_types (args : Program.fun_arg_decl) = List.mapi args ~f:(fun i ((_, _, ut) as a) -> @@ -142,7 +143,7 @@ let pp_located_error ppf (pp_body_block, body) = *) let pp_arg_types ppf (scalar, ut) = match ut with - | UnsizedType.UInt | UReal | UMatrix | URowVector | UVector -> + | UnsizedType.UInt | UReal | UComplex | UMatrix | URowVector | UVector -> string ppf scalar | UArray _ -> (* Expressions are not accepted for arrays of Eigen::Matrix *) diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index 5c1ce0ed7c..e7dd7d3e5d 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -1226,7 +1226,7 @@ static constexpr std::array locations_array__ = " (in 'complex_scalar.stan', line 32, column 34 to line 34, column 5)"}; -std::complex +inline std::complex foo(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; @@ -1244,7 +1244,7 @@ foo(std::ostream* pstream__) { } struct foo_functor__ { -std::complex +inline std::complex operator()(std::ostream* pstream__) const { return foo(pstream__); @@ -1252,9 +1252,9 @@ return foo(pstream__); }; template -stan::promote_args_t -foo1(const std::complex& z, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +inline stan::return_type_t +foo1(const T0__& z, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1271,17 +1271,17 @@ foo1(const std::complex& z, std::ostream* pstream__) { struct foo1_functor__ { template -stan::promote_args_t -operator()(const std::complex& z, std::ostream* pstream__) const +inline stan::return_type_t +operator()(const T0__& z, std::ostream* pstream__) const { return foo1(z, pstream__); } }; template -std::complex> +inline std::complex> foo2(const T0__& r, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1298,7 +1298,7 @@ foo2(const T0__& r, std::ostream* pstream__) { struct foo2_functor__ { template -std::complex> +inline std::complex> operator()(const T0__& r, std::ostream* pstream__) const { return foo2(r, pstream__); @@ -1306,9 +1306,9 @@ return foo2(r, pstream__); }; template -std::complex> -foo3(const std::complex& z, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +inline std::complex> +foo3(const T0__& z, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1325,14 +1325,14 @@ foo3(const std::complex& z, std::ostream* pstream__) { struct foo3_functor__ { template -std::complex> -operator()(const std::complex& z, std::ostream* pstream__) const +inline std::complex> +operator()(const T0__& z, std::ostream* pstream__) const { return foo3(z, pstream__); } }; -std::vector> +inline std::vector> foo4(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; @@ -1350,17 +1350,17 @@ foo4(std::ostream* pstream__) { } struct foo4_functor__ { -std::vector> +inline std::vector> operator()(std::ostream* pstream__) const { return foo4(pstream__); } }; -template -stan::promote_args_t -foo5(const std::vector>& z, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +inline stan::return_type_t +foo5(const std::vector& z, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1376,18 +1376,18 @@ foo5(const std::vector>& z, std::ostream* pstream__) { } struct foo5_functor__ { -template -stan::promote_args_t -operator()(const std::vector>& z, std::ostream* pstream__) const +template +inline stan::return_type_t +operator()(const std::vector& z, std::ostream* pstream__) const { return foo5(z, pstream__); } }; template -std::vector>> +inline std::vector>> foo6(const T0__& r, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1405,17 +1405,17 @@ foo6(const T0__& r, std::ostream* pstream__) { struct foo6_functor__ { template -std::vector>> +inline std::vector>> operator()(const T0__& r, std::ostream* pstream__) const { return foo6(r, pstream__); } }; -template -std::vector>> -foo7(const std::vector>& z, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +inline std::vector>> +foo7(const std::vector& z, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1431,19 +1431,18 @@ foo7(const std::vector>& z, std::ostream* pstream__) { } struct foo7_functor__ { -template -std::vector>> -operator()(const std::vector>& z, std::ostream* pstream__) const +template +inline std::vector>> +operator()(const std::vector& z, std::ostream* pstream__) const { return foo7(z, pstream__); } }; -template -stan::promote_args_t -foo8(const std::vector>>& z, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +inline stan::return_type_t +foo8(const std::vector& z, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1459,19 +1458,18 @@ foo8(const std::vector>>& z, } struct foo8_functor__ { -template -stan::promote_args_t -operator()(const std::vector>>& z, - std::ostream* pstream__) const +template +inline stan::return_type_t +operator()(const std::vector& z, std::ostream* pstream__) const { return foo8(z, pstream__); } }; template -std::vector>>> +inline std::vector>>> foo9(const T0__& r, std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1492,18 +1490,17 @@ foo9(const T0__& r, std::ostream* pstream__) { struct foo9_functor__ { template -std::vector>>> +inline std::vector>>> operator()(const T0__& r, std::ostream* pstream__) const { return foo9(r, pstream__); } }; -template -std::vector>>> -foo10(const std::vector>>& z, - std::ostream* pstream__) { - using local_scalar_t__ = stan::promote_args_t; +template +inline std::vector>>> +foo10(const std::vector& z, std::ostream* pstream__) { + using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; static constexpr bool propto__ = true; (void) propto__; @@ -1519,10 +1516,9 @@ foo10(const std::vector>>& z, } struct foo10_functor__ { -template -std::vector>>> -operator()(const std::vector>>& z, - std::ostream* pstream__) const +template +inline std::vector>>> +operator()(const std::vector& z, std::ostream* pstream__) const { return foo10(z, pstream__); } From 2724ba782716ae72de0d650ec52eed1aad24ba96 Mon Sep 17 00:00:00 2001 From: Steve Bronder Date: Fri, 1 Oct 2021 16:27:24 -0400 Subject: [PATCH 7/7] use auto for scalar return types --- src/stan_math_backend/Stan_math_code_gen.ml | 1 + test/integration/good/code-gen/cpp.expected | 374 +++++++++--------- .../good/code-gen/expressions/cpp.expected | 4 +- .../standalone_functions/cpp.expected | 28 +- .../good/compiler-optimizations/cpp.expected | 12 +- 5 files changed, 210 insertions(+), 209 deletions(-) diff --git a/src/stan_math_backend/Stan_math_code_gen.ml b/src/stan_math_backend/Stan_math_code_gen.ml index d289cebfb3..024ed870d2 100644 --- a/src/stan_math_backend/Stan_math_code_gen.ml +++ b/src/stan_math_backend/Stan_math_code_gen.ml @@ -109,6 +109,7 @@ let pp_returntype ppf arg_types rt = match rt with | Some ut when UnsizedType.contains_int ut -> pf ppf "inline %a@," pp_unsizedtype_custom_scalar ("int", ut) + | Some ut when UnsizedType.is_scalar_type ut -> pf ppf "inline auto@," | Some ut -> pf ppf "inline %a@," pp_unsizedtype_custom_scalar (scalar, ut) | None -> pf ppf "inline void@," diff --git a/test/integration/good/code-gen/cpp.expected b/test/integration/good/code-gen/cpp.expected index ffec73168f..91dfabe102 100644 --- a/test/integration/good/code-gen/cpp.expected +++ b/test/integration/good/code-gen/cpp.expected @@ -1260,7 +1260,7 @@ return foo(pstream__); }; template -inline stan::return_type_t +inline auto foo1(const T0__& z, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -1279,7 +1279,7 @@ foo1(const T0__& z, std::ostream* pstream__) { struct foo1_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& z, std::ostream* pstream__) const { return foo1(z, pstream__); @@ -1366,7 +1366,7 @@ return foo4(pstream__); }; template -inline stan::return_type_t +inline auto foo5(const std::vector& z, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -1385,7 +1385,7 @@ foo5(const std::vector& z, std::ostream* pstream__) { struct foo5_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& z, std::ostream* pstream__) const { return foo5(z, pstream__); @@ -1448,7 +1448,7 @@ return foo7(z, pstream__); }; template -inline stan::return_type_t +inline auto foo8(const std::vector& z, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -1467,7 +1467,7 @@ foo8(const std::vector& z, std::ostream* pstream__) { struct foo8_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& z, std::ostream* pstream__) const { return foo8(z, pstream__); @@ -5616,7 +5616,7 @@ return sho(t, y, theta, x, x_int, pstream__); } }; -inline double +inline auto foo_bar0(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; @@ -5634,7 +5634,7 @@ foo_bar0(std::ostream* pstream__) { } struct foo_bar0_functor__ { -inline double +inline auto operator()(std::ostream* pstream__) const { return foo_bar0(pstream__); @@ -5642,7 +5642,7 @@ return foo_bar0(pstream__); }; template -inline stan::return_type_t +inline auto foo_bar1(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -5661,7 +5661,7 @@ foo_bar1(const T0__& x, std::ostream* pstream__) { struct foo_bar1_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, std::ostream* pstream__) const { return foo_bar1(x, pstream__); @@ -5669,7 +5669,7 @@ return foo_bar1(x, pstream__); }; template -inline stan::return_type_t +inline auto foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -5688,7 +5688,7 @@ foo_bar2(const T0__& x, const T1__& y, std::ostream* pstream__) { struct foo_bar2_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return foo_bar2(x, y, pstream__); @@ -5696,7 +5696,7 @@ return foo_bar2(x, y, pstream__); }; template -inline stan::return_type_t +inline auto foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -5713,7 +5713,7 @@ foo_lpmf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lpmf_functor__ { template -inline stan::return_type_t +inline auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lpmf(y, lambda, pstream__); @@ -5721,7 +5721,7 @@ return foo_lpmf(y, lambda, pstream__); }; template -inline stan::return_type_t +inline auto foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -5740,7 +5740,7 @@ foo_lcdf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lcdf_functor__ { template -inline stan::return_type_t +inline auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lcdf(y, lambda, pstream__); @@ -5748,7 +5748,7 @@ return foo_lcdf(y, lambda, pstream__); }; template -inline stan::return_type_t +inline auto foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -5767,7 +5767,7 @@ foo_lccdf(const int& y, const T1__& lambda, std::ostream* pstream__) { struct foo_lccdf_functor__ { template -inline stan::return_type_t +inline auto operator()(const int& y, const T1__& lambda, std::ostream* pstream__) const { return foo_lccdf(y, lambda, pstream__); @@ -5775,7 +5775,7 @@ return foo_lccdf(y, lambda, pstream__); }; template -inline stan::return_type_t +inline auto foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -5795,7 +5795,7 @@ foo_rng(const T0__& mu, const T1__& sigma, RNG& base_rng__, struct foo_rng_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& mu, const T1__& sigma, RNG& base_rng__, std::ostream* pstream__) const { @@ -6141,7 +6141,7 @@ return foo_3(t, n, pstream__); template -inline stan::return_type_t +inline auto foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -6160,7 +6160,7 @@ foo_lp(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo_lp_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { @@ -6199,7 +6199,7 @@ return foo_4(x, pstream__); }; template -inline stan::return_type_t +inline auto relative_diff(const T0__& x, const T1__& y, const T2__& max_, const T3__& min_, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -6253,7 +6253,7 @@ relative_diff(const T0__& x, const T1__& y, const T2__& max_, struct relative_diff_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, const T1__& y, const T2__& max_, const T3__& min_, std::ostream* pstream__) const { @@ -6298,7 +6298,7 @@ return foo_5(shared_params, job_params, data_r, data_i, pstream__); template -inline stan::return_type_t +inline auto 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::return_type_t; @@ -6319,7 +6319,7 @@ foo_five_args(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, struct foo_five_args_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x1, const T1__& x2, const T2__& x3, const T3__& x4, const T4__& x5, std::ostream* pstream__) const { @@ -6330,7 +6330,7 @@ return foo_five_args(x1, x2, x3, x4, x5, pstream__); template -inline stan::return_type_t +inline auto 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__, @@ -6352,7 +6352,7 @@ struct foo_five_args_lp_functor__ { template -inline stan::return_type_t +inline auto 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 @@ -6616,7 +6616,7 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -inline stan::return_type_t +inline auto f4(const int& a1, const std::vector& a2, const std::vector& a3, const T3__& a4, const std::vector& a5, @@ -6648,7 +6648,7 @@ typename T3__, typename T4__, typename Alloc4__, typename T5__, typename Alloc5__, typename T6__, typename T7__, typename Alloc7__, typename T8__, typename Alloc8__, typename T9__, typename T10__, typename Alloc10__, typename T11__, typename Alloc11__> -inline stan::return_type_t +inline auto operator()(const int& a1, const std::vector& a2, const std::vector& a3, const T3__& a4, const std::vector& a5, @@ -13308,7 +13308,7 @@ return sho(t, y, theta, x, x_int, pstream__); template -inline stan::return_type_t +inline auto integrand(const T0__& x, const T1__& xc, const std::vector& theta, const std::vector& x_r, @@ -13331,7 +13331,7 @@ integrand(const T0__& x, const T1__& xc, struct integrand_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, const T1__& xc, const std::vector& theta, const std::vector& x_r, @@ -13412,7 +13412,7 @@ return goo(shared_params, job_params, data_r, data_i, pstream__); }; template -inline stan::return_type_t +inline auto map_rectfake(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -13431,7 +13431,7 @@ map_rectfake(const T0__& x, std::ostream* pstream__) { struct map_rectfake_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, std::ostream* pstream__) const { return map_rectfake(x, pstream__); @@ -22003,7 +22003,7 @@ struct h_rsfunctor__; template struct foo_lpdf_rsfunctor__; template -inline stan::return_type_t +inline auto g(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -22029,7 +22029,7 @@ g(const std::vector& y_slice, const int& start, struct g_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22040,7 +22040,7 @@ return g(y_slice, start, end, pstream__); struct g_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22049,7 +22049,7 @@ return g(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto h(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -22077,7 +22077,7 @@ h(const std::vector& y_slice, const int& start, struct h_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -22089,7 +22089,7 @@ return h(y_slice, start, end, a, pstream__); struct h_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -22099,7 +22099,7 @@ return h(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto foo_lpdf(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -22117,7 +22117,7 @@ foo_lpdf(const std::vector& y_slice, const int& start, struct foo_lpdf_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22129,7 +22129,7 @@ return foo_lpdf(y_slice, start, end, pstream__); template struct foo_lpdf_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22741,7 +22741,7 @@ struct h6_rsfunctor__; struct h7_rsfunctor__; struct h8_rsfunctor__; template -inline stan::return_type_t +inline auto g1(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -22761,7 +22761,7 @@ g1(const std::vector& y_slice, const int& start, struct g1_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22772,7 +22772,7 @@ return g1(y_slice, start, end, pstream__); struct g1_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22781,7 +22781,7 @@ return g1(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g2(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -22811,7 +22811,7 @@ g2(const std::vector& y_slice, const int& start, struct g2_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22822,7 +22822,7 @@ return g2(y_slice, start, end, pstream__); struct g2_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22831,7 +22831,7 @@ return g2(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g3(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -22861,7 +22861,7 @@ g3(const std::vector& y_slice, const int& start, struct g3_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22872,7 +22872,7 @@ return g3(y_slice, start, end, pstream__); struct g3_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22881,7 +22881,7 @@ return g3(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g4(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -22912,7 +22912,7 @@ g4(const std::vector& y_slice, const int& start, struct g4_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22923,7 +22923,7 @@ return g4(y_slice, start, end, pstream__); struct g4_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22932,7 +22932,7 @@ return g4(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g5(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -22967,7 +22967,7 @@ g5(const std::vector& y_slice, const int& start, struct g5_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22978,7 +22978,7 @@ return g5(y_slice, start, end, pstream__); struct g5_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -22987,7 +22987,7 @@ return g5(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g6(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23023,7 +23023,7 @@ g6(const std::vector& y_slice, const int& start, struct g6_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -23034,7 +23034,7 @@ return g6(y_slice, start, end, pstream__); struct g6_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -23043,7 +23043,7 @@ return g6(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g7(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23079,7 +23079,7 @@ g7(const std::vector& y_slice, const int& start, struct g7_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -23090,7 +23090,7 @@ return g7(y_slice, start, end, pstream__); struct g7_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -23099,7 +23099,7 @@ return g7(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g8(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23135,7 +23135,7 @@ g8(const std::vector& y_slice, const int& start, struct g8_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -23146,7 +23146,7 @@ return g8(y_slice, start, end, pstream__); struct g8_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -23155,7 +23155,7 @@ return g8(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto h1(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23176,7 +23176,7 @@ h1(const std::vector& y, const int& start, const int& end, struct h1_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23188,7 +23188,7 @@ return h1(y, start, end, a, pstream__); struct h1_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -23198,7 +23198,7 @@ return h1(y, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto h2(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23227,7 +23227,7 @@ h2(const std::vector& y, const int& start, const int& end, struct h2_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23239,7 +23239,7 @@ return h2(y, start, end, a, pstream__); struct h2_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -23249,7 +23249,7 @@ return h2(y, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto h3(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23278,7 +23278,7 @@ h3(const std::vector& y, const int& start, const int& end, struct h3_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23290,7 +23290,7 @@ return h3(y, start, end, a, pstream__); struct h3_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -23300,7 +23300,7 @@ return h3(y, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto h4(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23330,7 +23330,7 @@ h4(const std::vector& y, const int& start, const int& end, struct h4_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23342,7 +23342,7 @@ return h4(y, start, end, a, pstream__); struct h4_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -23352,7 +23352,7 @@ return h4(y, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto h5(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23385,7 +23385,7 @@ h5(const std::vector& y, const int& start, const int& end, struct h5_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23397,7 +23397,7 @@ return h5(y, start, end, a, pstream__); struct h5_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -23407,7 +23407,7 @@ return h5(y, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto h6(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23441,7 +23441,7 @@ h6(const std::vector& y, const int& start, const int& end, struct h6_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23453,7 +23453,7 @@ return h6(y, start, end, a, pstream__); struct h6_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -23463,7 +23463,7 @@ return h6(y, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto h7(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23497,7 +23497,7 @@ h7(const std::vector& y, const int& start, const int& end, struct h7_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23509,7 +23509,7 @@ return h7(y, start, end, a, pstream__); struct h7_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -23519,7 +23519,7 @@ return h7(y, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto h8(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -23553,7 +23553,7 @@ h8(const std::vector& y, const int& start, const int& end, struct h8_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -23565,7 +23565,7 @@ return h8(y, start, end, a, pstream__); struct h8_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -25195,7 +25195,7 @@ struct g8_rsfunctor__; struct g9_rsfunctor__; struct s_rsfunctor__; template -inline stan::return_type_t +inline auto f1(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25215,7 +25215,7 @@ f1(const std::vector& y_slice, const int& start, struct f1_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25226,7 +25226,7 @@ return f1(y_slice, start, end, pstream__); struct f1_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25235,7 +25235,7 @@ return f1(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f1a(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25255,7 +25255,7 @@ f1a(const std::vector& y_slice, const int& start, struct f1a_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25266,7 +25266,7 @@ return f1a(y_slice, start, end, pstream__); struct f1a_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25275,7 +25275,7 @@ return f1a(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f2(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25295,7 +25295,7 @@ f2(const std::vector& y_slice, const int& start, struct f2_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25306,7 +25306,7 @@ return f2(y_slice, start, end, pstream__); struct f2_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25315,7 +25315,7 @@ return f2(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f3(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25335,7 +25335,7 @@ f3(const std::vector& y_slice, const int& start, struct f3_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25346,7 +25346,7 @@ return f3(y_slice, start, end, pstream__); struct f3_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25355,7 +25355,7 @@ return f3(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f4(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25375,7 +25375,7 @@ f4(const std::vector& y_slice, const int& start, struct f4_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25386,7 +25386,7 @@ return f4(y_slice, start, end, pstream__); struct f4_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25395,7 +25395,7 @@ return f4(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f5(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25415,7 +25415,7 @@ f5(const std::vector& y_slice, const int& start, struct f5_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25426,7 +25426,7 @@ return f5(y_slice, start, end, pstream__); struct f5_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25435,7 +25435,7 @@ return f5(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f6(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25455,7 +25455,7 @@ f6(const std::vector& y_slice, const int& start, struct f6_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25466,7 +25466,7 @@ return f6(y_slice, start, end, pstream__); struct f6_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25475,7 +25475,7 @@ return f6(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f7(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25495,7 +25495,7 @@ f7(const std::vector& y_slice, const int& start, struct f7_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25506,7 +25506,7 @@ return f7(y_slice, start, end, pstream__); struct f7_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25515,7 +25515,7 @@ return f7(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f8(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25535,7 +25535,7 @@ f8(const std::vector& y_slice, const int& start, struct f8_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25546,7 +25546,7 @@ return f8(y_slice, start, end, pstream__); struct f8_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25555,7 +25555,7 @@ return f8(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f9(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25575,7 +25575,7 @@ f9(const std::vector& y_slice, const int& start, struct f9_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25586,7 +25586,7 @@ return f9(y_slice, start, end, pstream__); struct f9_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25595,7 +25595,7 @@ return f9(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f10(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25615,7 +25615,7 @@ f10(const std::vector& y_slice, const int& start, struct f10_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25626,7 +25626,7 @@ return f10(y_slice, start, end, pstream__); struct f10_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25635,7 +25635,7 @@ return f10(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f11(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25655,7 +25655,7 @@ f11(const std::vector& y_slice, const int& start, struct f11_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25666,7 +25666,7 @@ return f11(y_slice, start, end, pstream__); struct f11_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25675,7 +25675,7 @@ return f11(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto f12(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25695,7 +25695,7 @@ f12(const std::vector& y_slice, const int& start, struct f12_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25706,7 +25706,7 @@ return f12(y_slice, start, end, pstream__); struct f12_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__) const { @@ -25715,7 +25715,7 @@ return f12(y_slice, start + 1, end + 1, pstream__); }; template -inline stan::return_type_t +inline auto g1(const std::vector& y_slice, const int& start, const int& end, const T3__& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25735,7 +25735,7 @@ g1(const std::vector& y_slice, const int& start, struct g1_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const T3__& a, std::ostream* pstream__) const { @@ -25746,7 +25746,7 @@ return g1(y_slice, start, end, a, pstream__); struct g1_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const T3__& a) const { @@ -25755,7 +25755,7 @@ return g1(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g2(const std::vector& y_slice, const int& start, const int& end, const T3__& a_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25776,7 +25776,7 @@ g2(const std::vector& y_slice, const int& start, struct g2_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const T3__& a, std::ostream* pstream__) const { @@ -25787,7 +25787,7 @@ return g2(y_slice, start, end, a, pstream__); struct g2_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const T3__& a) const { @@ -25796,7 +25796,7 @@ return g2(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g3(const std::vector& y_slice, const int& start, const int& end, const T3__& a_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25817,7 +25817,7 @@ g3(const std::vector& y_slice, const int& start, struct g3_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const T3__& a, std::ostream* pstream__) const { @@ -25828,7 +25828,7 @@ return g3(y_slice, start, end, a, pstream__); struct g3_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const T3__& a) const { @@ -25837,7 +25837,7 @@ return g3(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g4(const std::vector& y_slice, const int& start, const int& end, const T3__& a_arg__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -25858,7 +25858,7 @@ g4(const std::vector& y_slice, const int& start, struct g4_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const T3__& a, std::ostream* pstream__) const { @@ -25869,7 +25869,7 @@ return g4(y_slice, start, end, a, pstream__); struct g4_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const T3__& a) const { @@ -25878,7 +25878,7 @@ return g4(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g5(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -25899,7 +25899,7 @@ g5(const std::vector& y_slice, const int& start, struct g5_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -25911,7 +25911,7 @@ return g5(y_slice, start, end, a, pstream__); struct g5_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -25921,7 +25921,7 @@ return g5(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g6(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -25942,7 +25942,7 @@ g6(const std::vector& y_slice, const int& start, struct g6_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -25954,7 +25954,7 @@ return g6(y_slice, start, end, a, pstream__); struct g6_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -25964,7 +25964,7 @@ return g6(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g7(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -25985,7 +25985,7 @@ g7(const std::vector& y_slice, const int& start, struct g7_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -25997,7 +25997,7 @@ return g7(y_slice, start, end, a, pstream__); struct g7_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -26007,7 +26007,7 @@ return g7(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g8(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -26028,7 +26028,7 @@ g8(const std::vector& y_slice, const int& start, struct g8_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -26040,7 +26040,7 @@ return g8(y_slice, start, end, a, pstream__); struct g8_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -26050,7 +26050,7 @@ return g8(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g9(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -26071,7 +26071,7 @@ g9(const std::vector& y_slice, const int& start, struct g9_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -26083,7 +26083,7 @@ return g9(y_slice, start, end, a, pstream__); struct g9_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -26093,7 +26093,7 @@ return g9(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g10(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -26114,7 +26114,7 @@ g10(const std::vector& y_slice, const int& start, struct g10_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -26126,7 +26126,7 @@ return g10(y_slice, start, end, a, pstream__); struct g10_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -26136,7 +26136,7 @@ return g10(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g11(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -26157,7 +26157,7 @@ g11(const std::vector& y_slice, const int& start, struct g11_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -26169,7 +26169,7 @@ return g11(y_slice, start, end, a, pstream__); struct g11_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -26179,7 +26179,7 @@ return g11(y_slice, start + 1, end + 1, a, pstream__); }; template -inline stan::return_type_t +inline auto g12(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) { @@ -26200,7 +26200,7 @@ g12(const std::vector& y_slice, const int& start, struct g12_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, const std::vector& a, std::ostream* pstream__) const @@ -26212,7 +26212,7 @@ return g12(y_slice, start, end, a, pstream__); struct g12_rsfunctor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& y_slice, const int& start, const int& end, std::ostream* pstream__, const std::vector& a) const @@ -26229,7 +26229,7 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -inline stan::return_type_t +inline auto 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__, @@ -26272,7 +26272,7 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -inline stan::return_type_t +inline auto 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, @@ -26304,7 +26304,7 @@ typename T13__, typename Alloc13__, typename T14__, typename Alloc14__, typename T15__, typename Alloc15__, typename T16__, typename Alloc16__, typename T17__, typename Alloc17__, typename T18__, typename Alloc18__, typename T19__, typename Alloc19__> -inline stan::return_type_t +inline auto 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, @@ -26326,7 +26326,7 @@ return s(y_slice, start + 1, end + 1, a, b, c, d, e, f, g, h, i, j, k, l, m, } }; -inline double +inline auto r(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; @@ -26661,7 +26661,7 @@ r(std::ostream* pstream__) { } struct r_functor__ { -inline double +inline auto operator()(std::ostream* pstream__) const { return r(pstream__); @@ -28507,7 +28507,7 @@ static constexpr std::array locations_array__ = template -inline stan::return_type_t<> +inline auto foo0_log(const int& y, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t<>; int current_statement__ = 0; @@ -28524,7 +28524,7 @@ foo0_log(const int& y, std::ostream* pstream__) { struct foo0_log_functor__ { template -inline stan::return_type_t<> +inline auto operator()(const int& y, std::ostream* pstream__) const { return foo0_log(y, pstream__); @@ -28532,7 +28532,7 @@ return foo0_log(y, pstream__); }; template -inline stan::return_type_t<> +inline auto foo1_lpmf(const int& y, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t<>; int current_statement__ = 0; @@ -28549,7 +28549,7 @@ foo1_lpmf(const int& y, std::ostream* pstream__) { struct foo1_lpmf_functor__ { template -inline stan::return_type_t<> +inline auto operator()(const int& y, std::ostream* pstream__) const { return foo1_lpmf(y, pstream__); @@ -28557,7 +28557,7 @@ return foo1_lpmf(y, pstream__); }; template -inline stan::return_type_t<> +inline auto foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t<>; @@ -28575,7 +28575,7 @@ foo4_lp(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo4_lp_functor__ { template -inline stan::return_type_t<> +inline auto operator()(const int& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { @@ -28584,7 +28584,7 @@ return foo4_lp(y, lp__, lp_accum__, pstream__); }; template -inline stan::return_type_t +inline auto foo2_log(const T0__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -28601,7 +28601,7 @@ foo2_log(const T0__& y, std::ostream* pstream__) { struct foo2_log_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& y, std::ostream* pstream__) const { return foo2_log(y, pstream__); @@ -28609,7 +28609,7 @@ return foo2_log(y, pstream__); }; template -inline stan::return_type_t +inline auto foo3_lpdf(const T0__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -28626,7 +28626,7 @@ foo3_lpdf(const T0__& y, std::ostream* pstream__) { struct foo3_lpdf_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& y, std::ostream* pstream__) const { return foo3_lpdf(y, pstream__); @@ -28635,7 +28635,7 @@ return foo3_lpdf(y, pstream__); template -inline stan::return_type_t +inline auto foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; @@ -28654,7 +28654,7 @@ foo5_lp(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, struct foo5_lp_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& y, T_lp__& lp__, T_lp_accum__& lp_accum__, std::ostream* pstream__) const { @@ -32415,7 +32415,7 @@ static constexpr std::array locations_array__ = template -inline stan::return_type_t +inline auto normal(const T0__& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -32434,7 +32434,7 @@ normal(const T0__& a, std::ostream* pstream__) { struct normal_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& a, std::ostream* pstream__) const { return normal(a, pstream__); @@ -32771,7 +32771,7 @@ static constexpr std::array locations_array__ = template -inline stan::return_type_t +inline auto lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -32790,7 +32790,7 @@ lb_constrain(const T0__& x, const T1__& y, std::ostream* pstream__) { struct lb_constrain_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, const T1__& y, std::ostream* pstream__) const { return lb_constrain(x, y, pstream__); diff --git a/test/integration/good/code-gen/expressions/cpp.expected b/test/integration/good/code-gen/expressions/cpp.expected index 97d7f60b4a..8d076b32a1 100644 --- a/test/integration/good/code-gen/expressions/cpp.expected +++ b/test/integration/good/code-gen/expressions/cpp.expected @@ -34,7 +34,7 @@ static constexpr std::array locations_array__ = template -inline stan::return_type_t +inline auto foo1(const T0__& a, const int& b, const std::vector& c, const T3__& d_arg__, const T4__& e_arg__, const T5__& f_arg__, std::ostream* pstream__) { @@ -59,7 +59,7 @@ foo1(const T0__& a, const int& b, const std::vector& c, struct foo1_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& a, const int& b, const std::vector& c, const T3__& d, const T4__& e, const T5__& f, std::ostream* pstream__) const diff --git a/test/integration/good/code-gen/standalone_functions/cpp.expected b/test/integration/good/code-gen/standalone_functions/cpp.expected index 84dd4c413e..8fa6877d79 100644 --- a/test/integration/good/code-gen/standalone_functions/cpp.expected +++ b/test/integration/good/code-gen/standalone_functions/cpp.expected @@ -43,7 +43,7 @@ static constexpr std::array locations_array__ = template -inline stan::return_type_t +inline auto my_log1p_exp(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -62,7 +62,7 @@ my_log1p_exp(const T0__& x, std::ostream* pstream__) { struct my_log1p_exp_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, std::ostream* pstream__) const { return my_log1p_exp(x, pstream__); @@ -70,7 +70,7 @@ return my_log1p_exp(x, pstream__); }; template -inline stan::return_type_t +inline auto array_fun(const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -89,7 +89,7 @@ array_fun(const std::vector& a, std::ostream* pstream__) { struct array_fun_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& a, std::ostream* pstream__) const { return array_fun(a, pstream__); @@ -97,7 +97,7 @@ return array_fun(a, pstream__); }; template -inline stan::return_type_t +inline auto int_array_fun(const std::vector& a, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -116,7 +116,7 @@ int_array_fun(const std::vector& a, std::ostream* pstream__) { struct int_array_fun_functor__ { template -inline stan::return_type_t +inline auto operator()(const std::vector& a, std::ostream* pstream__) const { return int_array_fun(a, pstream__); @@ -182,7 +182,7 @@ return int_only_multiplication(a, b, pstream__); }; template -inline stan::return_type_t +inline auto test_lgamma(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -201,7 +201,7 @@ test_lgamma(const T0__& x, std::ostream* pstream__) { struct test_lgamma_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, std::ostream* pstream__) const { return test_lgamma(x, pstream__); @@ -238,7 +238,7 @@ return test_lp(a, lp__, lp_accum__, pstream__); }; template -inline stan::return_type_t +inline auto test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -257,7 +257,7 @@ test_rng(const T0__& a, RNG& base_rng__, std::ostream* pstream__) { struct test_rng_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& a, RNG& base_rng__, std::ostream* pstream__) const { return test_rng(a, base_rng__, pstream__); @@ -265,7 +265,7 @@ return test_rng(a, base_rng__, pstream__); }; template -inline stan::return_type_t +inline auto test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -282,7 +282,7 @@ test_lpdf(const T0__& a, const T1__& b, std::ostream* pstream__) { struct test_lpdf_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& a, const T1__& b, std::ostream* pstream__) const { return test_lpdf(a, b, pstream__); @@ -471,7 +471,7 @@ return integrand_ode(r, f, theta, x_r, x_i, pstream__); } }; -inline double +inline auto ode_integrate(std::ostream* pstream__) { using local_scalar_t__ = double; int current_statement__ = 0; @@ -497,7 +497,7 @@ ode_integrate(std::ostream* pstream__) { } struct ode_integrate_functor__ { -inline double +inline auto operator()(std::ostream* pstream__) const { return ode_integrate(pstream__); diff --git a/test/integration/good/compiler-optimizations/cpp.expected b/test/integration/good/compiler-optimizations/cpp.expected index a6196cb110..93f52ce254 100644 --- a/test/integration/good/compiler-optimizations/cpp.expected +++ b/test/integration/good/compiler-optimizations/cpp.expected @@ -23560,7 +23560,7 @@ static constexpr std::array locations_array__ = template -inline stan::return_type_t +inline auto foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -23578,7 +23578,7 @@ foo_lpdf(const T0__& x, const T1__& mu, std::ostream* pstream__) { struct foo_lpdf_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, const T1__& mu, std::ostream* pstream__) const { return foo_lpdf(x, mu, pstream__); @@ -23586,7 +23586,7 @@ return foo_lpdf(x, mu, pstream__); }; template -inline stan::return_type_t +inline auto bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -23604,7 +23604,7 @@ bar_lpmf(const int& n, const T1__& mu, std::ostream* pstream__) { struct bar_lpmf_functor__ { template -inline stan::return_type_t +inline auto operator()(const int& n, const T1__& mu, std::ostream* pstream__) const { return bar_lpmf(n, mu, pstream__); @@ -23612,7 +23612,7 @@ return bar_lpmf(n, mu, pstream__); }; template -inline stan::return_type_t +inline auto baz_lpdf(const T0__& x, std::ostream* pstream__) { using local_scalar_t__ = stan::return_type_t; int current_statement__ = 0; @@ -23630,7 +23630,7 @@ baz_lpdf(const T0__& x, std::ostream* pstream__) { struct baz_lpdf_functor__ { template -inline stan::return_type_t +inline auto operator()(const T0__& x, std::ostream* pstream__) const { return baz_lpdf(x, pstream__);