@@ -3,18 +3,27 @@ using EnzymeTestUtils
33using FiniteDifferences
44using Test
55
6- @testset " BigFloat +/-" begin
7- a = rand (BigFloat)
8- b = rand (BigFloat)
6+ @testset " BigFloat arithmetic" begin
7+ a = BigFloat (1.234 )
8+ da = BigFloat (- 0.23 )
9+ b = BigFloat (0.56 )
10+ db = BigFloat (0.27 )
11+ af64 = 1.234 # for testing mixed methods
12+ daf64 = - 0.23 # for testing mixed methods
13+ bf64 = 0.56 # for testing mixed methods
14+ dbf64 = 0.27 # for testing mixed methods
915
10- # doesn't work because of https://github.com/EnzymeAD/Enzyme.jl/issues/2888
11- # test_reverse(+, Const, (a, Const), (b, Const))
12- # test_reverse(+, Active, (a, Active), (b, Active))
13- # test_reverse(-, Const, (a, Const), (b, Const))
14- # test_reverse(-, Active, (a, Active), (b, Active))
16+ @test autodiff (Enzyme. Forward, + , Duplicated, Duplicated (a, da), Duplicated (b, db))[:1 ] ≈ da+ db
17+ @test autodiff (Enzyme. Forward, + , Duplicated, Duplicated (a, da), Duplicated (bf64, dbf64))[:1 ] ≈ da+ dbf64
18+ @test autodiff (Enzyme. Forward, - , Duplicated, Duplicated (a, da), Duplicated (b, db))[:1 ] ≈ da- db
19+ @test autodiff (Enzyme. Forward, - , Duplicated, Duplicated (a, da), Duplicated (bf64, dbf64))[:1 ] ≈ da- dbf64
20+ @test autodiff (Enzyme. Forward, * , Duplicated, Duplicated (a, da), Duplicated (b, db))[:1 ] ≈ b* da + a* db
21+ @test autodiff (Enzyme. Forward, * , Duplicated, Duplicated (a, da), Duplicated (bf64, dbf64))[:1 ] ≈ bf64* da + a* dbf64
22+ @test autodiff (Enzyme. Forward, / , Duplicated, Duplicated (a, da), Duplicated (b, db))[:1 ] ≈ da/ b - db * a/ b^ 2
23+ @test autodiff (Enzyme. Forward, / , Duplicated, Duplicated (a, da), Duplicated (bf64, dbf64))[:1 ] ≈ da/ bf64 - dbf64 * a/ bf64^ 2
1524
16- test_forward ( + , Const, (a, Const), (b, Const))
17- test_forward ( + , Duplicated, (a, Duplicated), (b, Duplicated))
18- test_forward ( - , Const, (a, Const), (b, Const))
19- test_forward ( - , Duplicated, (a, Duplicated), (b, Duplicated))
25+ @test autodiff (Enzyme . Forward, inv, Duplicated, Duplicated (a, da))[: 1 ] ≈ - ( one (BigFloat) / a ^ 2 ) * da
26+ @test autodiff (Enzyme . Forward, sin, Duplicated, Duplicated (a, da))[: 1 ] ≈ cos (a) * da
27+ @test autodiff (Enzyme . Forward, cos, Duplicated, Duplicated (a, da))[: 1 ] ≈ - sin (a) * da
28+ @test autodiff (Enzyme . Forward, tan, Duplicated, Duplicated (a, da))[: 1 ] ≈ autodiff (Enzyme . Forward, tan, Duplicated, Duplicated (af64, daf64))[ 1 ]
2029end
0 commit comments