From bf308241b54ae9c421a29aa5620da9fb3ec15245 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 15 Mar 2023 09:39:21 -0700 Subject: Properly implement differential witness of intermediate context type. (#2699) * Properly implement differential witness of intermediate context type. * Modify test to include a loop. --------- Co-authored-by: Yong He --- tests/autodiff/high-order-backward-diff-3.slang | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/autodiff/high-order-backward-diff-3.slang b/tests/autodiff/high-order-backward-diff-3.slang index eb3866b96..100a9a1e0 100644 --- a/tests/autodiff/high-order-backward-diff-3.slang +++ b/tests/autodiff/high-order-backward-diff-3.slang @@ -14,14 +14,20 @@ struct A : IDifferentiable [BackwardDifferentiable] float f(A x) { - return x.x * x.x; + A rs; + rs.x = 1.0; + for (int i = 0; i < 2; i++) + rs.x = rs.x * x.x; + return rs.x; } [BackwardDifferentiable] float outerF(A x) { A nx; - nx.x = x.x * x.x; + nx.x = 1.0; + for (int i = 0; i < 2; i++) + nx.x = nx.x * x.x; nx.nx = 2;//x.nx; return f(nx); } -- cgit v1.2.3