Skip to content

Commit 095b8ef

Browse files
authored
Merge pull request #977 from stan-dev/bugfix/975-conditional-expr
Call eval on conditional return values
2 parents eeb5e39 + dcf80cd commit 095b8ef

File tree

3 files changed

+406
-2
lines changed

3 files changed

+406
-2
lines changed

src/stan_math_backend/Expression_gen.ml

+7-2
Original file line numberDiff line numberDiff line change
@@ -568,8 +568,13 @@ and pp_expr ppf Expr.Fixed.({pattern; meta} as e) =
568568
pp_expr e
569569
in
570570
let tform ppf = pf ppf "(@[<hov 2>@,%a@ ?@ %a@ :@ %a@])" in
571-
if types_match et ef then tform ppf pp_expr ec pp_expr et pp_expr ef
572-
else tform ppf pp_expr ec promoted (e, et) promoted (e, ef)
571+
let eval_pp ppf a =
572+
if UnsizedType.is_eigen_type meta.type_ then
573+
pf ppf "stan::math::eval(%a)" pp_expr a
574+
else pf ppf "%a" pp_expr a
575+
in
576+
if types_match et ef then tform ppf pp_expr ec eval_pp et eval_pp ef
577+
else tform ppf eval_pp ec promoted (e, et) promoted (e, ef)
573578
| Indexed (e, []) -> pp_expr ppf e
574579
| Indexed (e, idx) -> (
575580
match e.pattern with
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
parameters {
2+
vector[2] a;
3+
vector[2] b;
4+
}
5+
transformed parameters {
6+
vector[2] c = sum(a) > 1 ? 2*a+b : 2*a;
7+
}

0 commit comments

Comments
 (0)