@@ -494,13 +494,14 @@ function vec_pjac!(out, λ, y, t, S::GaussIntegrand)
494494 Enzyme. remake_zero! (tmp3)
495495 Enzyme. remake_zero! (out)
496496
497+ dp = isscimlstructure (p) ? repack (out) : out
497498 if SciMLBase. isinplace (sol. prob. f)
498499 Enzyme. remake_zero! (tmp6)
499500
500501 Enzyme. autodiff (
501502 Enzyme. Reverse, Enzyme. Duplicated (pf, tmp6), Enzyme. Const,
502503 Enzyme. Duplicated (tmp3, tmp4),
503- Enzyme. Const (y), Enzyme. Duplicated (p, out ), Enzyme. Const (t))
504+ Enzyme. Const (y), Enzyme. Duplicated (p, dp ), Enzyme. Const (t))
504505 else
505506 function g (du, u, p, t)
506507 du .= f (u, p, t)
@@ -510,7 +511,10 @@ function vec_pjac!(out, λ, y, t, S::GaussIntegrand)
510511 Enzyme. autodiff (
511512 Enzyme. Reverse, Enzyme. Duplicated (g, tmp6), Enzyme. Const,
512513 Enzyme. Duplicated (tmp3, tmp4),
513- Enzyme. Const (y), Enzyme. Duplicated (p, out), Enzyme. Const (t))
514+ Enzyme. Const (y), Enzyme. Duplicated (p, dp), Enzyme. Const (t))
515+ end
516+ if isscimlstructure (p)
517+ out .+ = canonicalize (Tunable (), dp)[1 ]
514518 end
515519 elseif sensealg. autojacvec isa MooncakeVJP
516520 _, _, p_grad = mooncake_run_ad (paramjac_config, y, p, t, λ)
0 commit comments