Skip to content

Commit 5ea57bf

Browse files
committed
Fix off by one
1 parent 8caea3a commit 5ea57bf

4 files changed

Lines changed: 25 additions & 26 deletions

File tree

src/frontend/Typechecker.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ and check_reduce_sum ~is_cond_dist loc cf tenv id tes =
636636

637637
and check_variadic ~is_cond_dist loc cf tenv id tes =
638638
let Stan_math_signatures.
639-
{control_args; required_fn_args; required_fn_rt; return_type; _} =
639+
{control_args; required_fn_args; required_fn_rt; return_type} =
640640
Hashtbl.find_exn Stan_math_signatures.stan_math_variadic_signatures id.name
641641
in
642642
let matching remaining_es Env.{type_= ftype; _} =

src/stan_math_backend/Function_gen.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ let gen_pp_sig fdargs fdrt extra_templates extra ppf (name, args, variadic) =
234234
let args, variadic_args =
235235
match variadic with
236236
| `ReduceSum -> List.split_n args 3
237-
| `VariadicHOF x -> List.split_n args (x - 1)
237+
| `VariadicHOF x -> List.split_n args x
238238
| `None -> (args, []) in
239239
let arg_strs =
240240
args

test/integration/good/code-gen/cpp.expected

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15032,7 +15032,7 @@ struct f_variadic2_functor__ {
1503215032
stan::is_vt_not_complex<T3__>>* = nullptr>
1503315033
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__,
1503415034
stan::base_type_t<T3__>>, -1, 1>
15035-
operator()(const T0__& t, std::ostream* pstream__, const T1__& z,
15035+
operator()(const T0__& t, const T1__& z, std::ostream* pstream__,
1503615036
const T2__& a, const T3__& b) const;
1503715037
};
1503815038

@@ -15088,9 +15088,9 @@ template <typename T0__, typename T1__, typename T2__, typename T3__,
1508815088
stan::is_vt_not_complex<T3__>>*>
1508915089
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__,
1509015090
stan::base_type_t<T3__>>, -1, 1>
15091-
f_variadic2_functor__::operator()(const T0__& t, std::ostream* pstream__,
15092-
const T1__& z, const T2__& a, const T3__& b)
15093-
const
15091+
f_variadic2_functor__::operator()(const T0__& t, const T1__& z,
15092+
std::ostream* pstream__, const T2__& a,
15093+
const T3__& b) const
1509415094
{
1509515095
return f(t, z, a, b, pstream__);
1509615096
}
@@ -31537,7 +31537,7 @@ struct rhs_variadic2_functor__ {
3153731537
stan::is_vt_not_complex<T1__>,
3153831538
stan::is_stan_scalar<T2__>>* = nullptr>
3153931539
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__>, -1, 1>
31540-
operator()(const T0__& t, std::ostream* pstream__, const T1__& y,
31540+
operator()(const T0__& t, const T1__& y, std::ostream* pstream__,
3154131541
const T2__& alpha) const;
3154231542
};
3154331543
struct rhs_functor__ {
@@ -31585,8 +31585,9 @@ template <typename T0__, typename T1__, typename T2__,
3158531585
stan::is_vt_not_complex<T1__>,
3158631586
stan::is_stan_scalar<T2__>>*>
3158731587
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__>, -1, 1>
31588-
rhs_variadic2_functor__::operator()(const T0__& t, std::ostream* pstream__,
31589-
const T1__& y, const T2__& alpha) const
31588+
rhs_variadic2_functor__::operator()(const T0__& t, const T1__& y,
31589+
std::ostream* pstream__,
31590+
const T2__& alpha) const
3159031591
{
3159131592
return rhs(t, y, alpha, pstream__);
3159231593
}

test/integration/good/code-gen/ode/cpp.expected

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ struct f_0_arg_variadic2_functor__ {
5353
stan::is_col_vector<T1__>,
5454
stan::is_vt_not_complex<T1__>>* = nullptr>
5555
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>>, -1, 1>
56-
operator()(const T0__& t, std::ostream* pstream__, const T1__& z) const;
56+
operator()(const T0__& t, const T1__& z, std::ostream* pstream__) const;
5757
};
5858
struct f_2_arg_functor__ {
5959
template <typename T0__, typename T1__, typename T3__,
@@ -80,7 +80,7 @@ struct f_2_arg_variadic2_functor__ {
8080
stan::is_vt_not_complex<T1__>,
8181
stan::is_stan_scalar<T3__>>* = nullptr>
8282
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T3__>, -1, 1>
83-
operator()(const T0__& t, std::ostream* pstream__, const T1__& z,
83+
operator()(const T0__& t, const T1__& z, std::ostream* pstream__,
8484
const int& b, const T3__& a) const;
8585
};
8686
struct f_1_arg_variadic2_functor__ {
@@ -90,7 +90,7 @@ struct f_1_arg_variadic2_functor__ {
9090
stan::is_vt_not_complex<T1__>,
9191
stan::is_stan_scalar<T2__>>* = nullptr>
9292
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__>, -1, 1>
93-
operator()(const T0__& t, std::ostream* pstream__, const T1__& z,
93+
operator()(const T0__& t, const T1__& z, std::ostream* pstream__,
9494
const T2__& a) const;
9595
};
9696
struct f_1_arg_functor__ {
@@ -176,9 +176,8 @@ template <typename T0__, typename T1__,
176176
stan::is_col_vector<T1__>,
177177
stan::is_vt_not_complex<T1__>>*>
178178
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>>, -1, 1>
179-
f_0_arg_variadic2_functor__::operator()(const T0__& t,
180-
std::ostream* pstream__,
181-
const T1__& z) const
179+
f_0_arg_variadic2_functor__::operator()(const T0__& t, const T1__& z,
180+
std::ostream* pstream__) const
182181
{
183182
return f_0_arg(t, z, pstream__);
184183
}
@@ -212,10 +211,9 @@ template <typename T0__, typename T1__, typename T3__,
212211
stan::is_vt_not_complex<T1__>,
213212
stan::is_stan_scalar<T3__>>*>
214213
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T3__>, -1, 1>
215-
f_2_arg_variadic2_functor__::operator()(const T0__& t,
214+
f_2_arg_variadic2_functor__::operator()(const T0__& t, const T1__& z,
216215
std::ostream* pstream__,
217-
const T1__& z, const int& b,
218-
const T3__& a) const
216+
const int& b, const T3__& a) const
219217
{
220218
return f_2_arg(t, z, b, a, pstream__);
221219
}
@@ -226,9 +224,9 @@ template <typename T0__, typename T1__, typename T2__,
226224
stan::is_vt_not_complex<T1__>,
227225
stan::is_stan_scalar<T2__>>*>
228226
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__>, -1, 1>
229-
f_1_arg_variadic2_functor__::operator()(const T0__& t,
227+
f_1_arg_variadic2_functor__::operator()(const T0__& t, const T1__& z,
230228
std::ostream* pstream__,
231-
const T1__& z, const T2__& a) const
229+
const T2__& a) const
232230
{
233231
return f_1_arg(t, z, a, pstream__);
234232
}
@@ -904,7 +902,7 @@ struct simple_SIR_variadic2_functor__ {
904902
stan::is_stan_scalar<T6__>>* = nullptr>
905903
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__, T3__, T4__,
906904
stan::promote_args_t<T5__, T6__>>, -1, 1>
907-
operator()(const T0__& t, std::ostream* pstream__, const T1__& y,
905+
operator()(const T0__& t, const T1__& y, std::ostream* pstream__,
908906
const T2__& beta, const T3__& kappa, const T4__& gamma,
909907
const T5__& xi, const T6__& delta, const int& unused) const;
910908
template <typename T0__, typename T1__, typename T2__, typename T3__,
@@ -919,7 +917,7 @@ struct simple_SIR_variadic2_functor__ {
919917
stan::is_stan_scalar<T6__>>* = nullptr>
920918
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__, T3__, T4__,
921919
stan::promote_args_t<T5__, T6__>>, -1, 1>
922-
operator()(const T0__& t, std::ostream* pstream__, const T1__& y,
920+
operator()(const T0__& t, const T1__& y, std::ostream* pstream__,
923921
const T2__& beta, const T3__& kappa, const T4__& gamma,
924922
const T5__& xi, const T6__& delta) const;
925923
};
@@ -1093,9 +1091,9 @@ template <typename T0__, typename T1__, typename T2__, typename T3__,
10931091
stan::is_stan_scalar<T6__>>*>
10941092
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__, T3__, T4__,
10951093
stan::promote_args_t<T5__, T6__>>, -1, 1>
1096-
simple_SIR_variadic2_functor__::operator()(const T0__& t,
1094+
simple_SIR_variadic2_functor__::operator()(const T0__& t, const T1__& y,
10971095
std::ostream* pstream__,
1098-
const T1__& y, const T2__& beta,
1096+
const T2__& beta,
10991097
const T3__& kappa,
11001098
const T4__& gamma, const T5__& xi,
11011099
const T6__& delta,
@@ -1116,9 +1114,9 @@ template <typename T0__, typename T1__, typename T2__, typename T3__,
11161114
stan::is_stan_scalar<T6__>>*>
11171115
Eigen::Matrix<stan::promote_args_t<T0__, stan::base_type_t<T1__>, T2__, T3__, T4__,
11181116
stan::promote_args_t<T5__, T6__>>, -1, 1>
1119-
simple_SIR_variadic2_functor__::operator()(const T0__& t,
1117+
simple_SIR_variadic2_functor__::operator()(const T0__& t, const T1__& y,
11201118
std::ostream* pstream__,
1121-
const T1__& y, const T2__& beta,
1119+
const T2__& beta,
11221120
const T3__& kappa,
11231121
const T4__& gamma, const T5__& xi,
11241122
const T6__& delta) const

0 commit comments

Comments
 (0)