@@ -48,6 +48,10 @@ for N in (0,3), M in (0,4), T in (Int, Float32)
4848 PRIMAL2 = intrand (T)
4949 FDNUM2 = Dual (PRIMAL2, PARTIALS2)
5050
51+ PARTIALS3 = Partials {N,T} (ntuple (n -> intrand (T), Val{N}))
52+ PRIMAL3 = intrand (T)
53+ FDNUM3 = Dual (PRIMAL3, PARTIALS3)
54+
5155 M_PARTIALS = Partials {M,T} (ntuple (m -> intrand (T), Val{M}))
5256 NESTED_PARTIALS = convert (Partials{N,Dual{M,T}}, PARTIALS)
5357 NESTED_FDNUM = Dual (Dual (PRIMAL, M_PARTIALS), NESTED_PARTIALS)
@@ -383,6 +387,21 @@ for N in (0,3), M in (0,4), T in (Int, Float32)
383387
384388 @test partials (NaNMath. pow (Dual (- 2.0 , 1.0 ), Dual (2.0 , 0.0 )), 1 ) == - 4.0
385389
390+ @test fma (FDNUM, FDNUM2, FDNUM3) == Dual (fma (PRIMAL, PRIMAL2, PRIMAL3),
391+ PRIMAL* PARTIALS2 + PRIMAL2* PARTIALS +
392+ PARTIALS3)
393+ @test fma (FDNUM, FDNUM2, PRIMAL3) == Dual (fma (PRIMAL, PRIMAL2, PRIMAL3),
394+ PRIMAL* PARTIALS2 + PRIMAL2* PARTIALS)
395+ @test fma (PRIMAL, FDNUM2, FDNUM3) == Dual (fma (PRIMAL, PRIMAL2, PRIMAL3),
396+ PRIMAL* PARTIALS2 + PARTIALS3)
397+ @test fma (PRIMAL, FDNUM2, PRIMAL3) == Dual (fma (PRIMAL, PRIMAL2, PRIMAL3),
398+ PRIMAL* PARTIALS2)
399+ @test fma (FDNUM, PRIMAL2, FDNUM3) == Dual (fma (PRIMAL, PRIMAL2, PRIMAL3),
400+ PRIMAL2* PARTIALS + PARTIALS3)
401+ @test fma (FDNUM, PRIMAL2, PRIMAL3) == Dual (fma (PRIMAL, PRIMAL2, PRIMAL3),
402+ PRIMAL2* PARTIALS)
403+ @test fma (PRIMAL, PRIMAL2, FDNUM3) == Dual (fma (PRIMAL, PRIMAL2, PRIMAL3), PARTIALS3)
404+
386405 # Unary Functions #
387406 # -----------------#
388407
0 commit comments