From 09d951f087346fb27e0dc04a2d3493b0da2de45d Mon Sep 17 00:00:00 2001 From: Michael Abbott <32575566+mcabbott@users.noreply.github.com> Date: Sun, 4 Jul 2021 16:01:34 -0400 Subject: [PATCH 1/3] ignore rules with more than two arguments --- src/dual.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/dual.jl b/src/dual.jl index 431bb3e5..ab918676 100644 --- a/src/dual.jl +++ b/src/dual.jl @@ -387,7 +387,8 @@ for (M, f, arity) in DiffRules.diffrules() elseif arity == 2 eval(binary_dual_definition(M, f)) else - error("ForwardDiff currently only knows how to autogenerate Dual definitions for unary and binary functions.") + # error("ForwardDiff currently only knows how to autogenerate Dual definitions for unary and binary functions.") + # However, the presence of N-ary rules need not cause any problems here, they can simply be ignored. end end From 56df4e990aef73298d58e79a4be0ec55d93e0dce Mon Sep 17 00:00:00 2001 From: Michael Abbott <32575566+mcabbott@users.noreply.github.com> Date: Sun, 4 Jul 2021 16:37:26 -0400 Subject: [PATCH 2/3] some Hessian tests --- test/HessianTest.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/HessianTest.jl b/test/HessianTest.jl index 1df4232b..f5dd750a 100644 --- a/test/HessianTest.jl +++ b/test/HessianTest.jl @@ -130,13 +130,13 @@ for T in (StaticArrays.SArray, StaticArrays.MArray) result1 = ForwardDiff.hessian!(result1, prod, sx) result2 = ForwardDiff.hessian!(result2, prod, sx, ForwardDiff.HessianConfig(prod, result2, x, ForwardDiff.Chunk(x), nothing)) result3 = ForwardDiff.hessian!(result3, prod, sx, ForwardDiff.HessianConfig(prod, result3, x, ForwardDiff.Chunk(x), nothing)) - @test DiffResults.value(result1) == DiffResults.value(result) + @test_broken DiffResults.value(result1) == DiffResults.value(result) @test DiffResults.value(result2) == DiffResults.value(result) @test DiffResults.value(result3) == DiffResults.value(result) - @test DiffResults.gradient(result1) == DiffResults.gradient(result) + @test_broken DiffResults.gradient(result1) == DiffResults.gradient(result) @test DiffResults.gradient(result2) == DiffResults.gradient(result) @test DiffResults.gradient(result3) == DiffResults.gradient(result) - @test DiffResults.hessian(result1) == DiffResults.hessian(result) + @test_broken DiffResults.hessian(result1) == DiffResults.hessian(result) @test DiffResults.hessian(result2) == DiffResults.hessian(result) @test DiffResults.hessian(result3) == DiffResults.hessian(result) From ab26d8d3557a945a0b95b32d581914562556a58c Mon Sep 17 00:00:00 2001 From: Michael Abbott <32575566+mcabbott@users.noreply.github.com> Date: Fri, 9 Jul 2021 16:54:53 -0400 Subject: [PATCH 3/3] Revert "some Hessian tests" This reverts commit b32620eb70e96cf99cecdbe51c6f9dae273d6162. --- test/HessianTest.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/HessianTest.jl b/test/HessianTest.jl index f5dd750a..1df4232b 100644 --- a/test/HessianTest.jl +++ b/test/HessianTest.jl @@ -130,13 +130,13 @@ for T in (StaticArrays.SArray, StaticArrays.MArray) result1 = ForwardDiff.hessian!(result1, prod, sx) result2 = ForwardDiff.hessian!(result2, prod, sx, ForwardDiff.HessianConfig(prod, result2, x, ForwardDiff.Chunk(x), nothing)) result3 = ForwardDiff.hessian!(result3, prod, sx, ForwardDiff.HessianConfig(prod, result3, x, ForwardDiff.Chunk(x), nothing)) - @test_broken DiffResults.value(result1) == DiffResults.value(result) + @test DiffResults.value(result1) == DiffResults.value(result) @test DiffResults.value(result2) == DiffResults.value(result) @test DiffResults.value(result3) == DiffResults.value(result) - @test_broken DiffResults.gradient(result1) == DiffResults.gradient(result) + @test DiffResults.gradient(result1) == DiffResults.gradient(result) @test DiffResults.gradient(result2) == DiffResults.gradient(result) @test DiffResults.gradient(result3) == DiffResults.gradient(result) - @test_broken DiffResults.hessian(result1) == DiffResults.hessian(result) + @test DiffResults.hessian(result1) == DiffResults.hessian(result) @test DiffResults.hessian(result2) == DiffResults.hessian(result) @test DiffResults.hessian(result3) == DiffResults.hessian(result)