! fmod(x,y) ! Middle-range numbers. 3M ALL 1 2 OK 1 3M ALL 1 -2 OK 1 3M ALL -1 2 OK -1 3M ALL -1 -2 OK -1 3M ALL 3 2 OK 1 3M ALL 3 -2 OK 1 3M ALL -3 2 OK -1 3M ALL -3 -2 OK -1 3M ALL 2 2 OK 0 3M ALL 2 -2 OK 0 3M ALL -2 2 OK -0 3M ALL -2 -2 OK -0 3M ALL 1i1 2 OK 1i1 3M ALL 3d1 2 OK 1d4 3M ALL 1 4 OK 1 3M ALL 2 4 OK 2 3M ALL 3 4 OK 3 3M ALL 4 4 OK 0 3M ALL 5 4 OK 1 3M ALL 6 4 OK 2 3M ALL 7 4 OK 3 3M ALL 8 4 OK 0 3M ALL 0 1m1 OK 0 3M ALL 1m3 1m1 OK 1m3 3M ALL 3m3 1m1 OK 3m3 3M ALL 5m3 1m1 OK 1m3 ! Step across jump. 3M ALL 2i1 4 OK 2i1 3M ALL 2i1 -4 OK 2i1 3M ALL -2i1 4 OK -2i1 3M ALL -2i1 -4 OK -2i1 3M ALL 2i8 4 OK 2i8 3M ALL 6d1 4 OK 2d4 3M ALL 6d1 -4 OK 2d4 3M ALL -6d1 4 OK -2d4 3M ALL -6d1 -4 OK -2d4 3M ALL 6d8 4 OK 2d8d8d8d8 3M ALL 1m2 1m1 OK 1m2 3M ALL 1i1m2 1m1 OK 1i1m2 ! (1+x)/(1+y), x,y<<1. 3M ALL 1i1 1i5 OK 1i1 3M ALL 1i1 -1i5 OK 1i1 3M ALL -1i1 1i5 OK -1i1 3M ALL -1i1 -1i5 OK -1i1 3M ALL 1i2 1i5 OK 1i2 3M ALL 1i3 1i5 OK 1i3 3M ALL 1i4 1i5 OK 1i4 3M ALL 1i6 1i5 OK 1u1 3M ALL 3d1 3 OK 3d1 3M ALL 3d1 -3 OK 3d1 3M ALL -3d1 3 OK -3d1 3M ALL -3d1 -3 OK -3d1 3M ALL 2d1 2 OK 2d1 3M ALL 1i1 1d2 OK 1u2 3M ALL 1 1d2 OK 1u1 3M ALL 1d4 1d2 OK 1d4 3M ALL 1d1 2d1 OK 1d1 3M ALL 1 2d1 OK 1 ! Large numbers. 3M ALL Hm1i1 Hm1d2 OK Hm1u2 3M ALL Hm1 Hm1d2 OK Hm1u1 3M ALL Hm1d4 Hm1d2 OK Hm1d4 3M ALL Hm1d1 Hd1 OK Hm1d1 3M ALL Hm1 Hd1 OK Hm1 3M ALL Hm2 Hm1 OK Hm2 3M ALL Hd1 Hd2 OK Hd1u1 3M ALL Hd1 -Hd2 OK Hd1u1 3M ALL -Hd1 Hd2 OK -Hd1u1 3M ALL -Hd1 -Hd2 OK -Hd1u1 3M ALL Hm1u1 Hm1u4 OK Hm1u1 3M ALL Hd1 Hm1 OK Hm1d2 3M ALL Hm1i3 Hm1i5 OK Hm1i3 3M ALL Hm1i4 Hm1i5 OK Hm1i4 3M ALL Hm1i6 Hm1i5 OK Hm1u1 ! Large and small numbers. 3M ALL Hd1 0i1 OK 0 3M ALL Hd1 -0i1 OK 0 3M ALL -Hd1 0i1 OK -0 3M ALL -Hd1 -0i1 OK -0 3M ALL Hd1 Eu1 OK 0 3M ALL Hd1 Ep1d1 OK 0 3M ALL Hd1 E OK 0 3M ALL Hm1d1 Hm1 OK Hm1d1 3M ALL Hm1d1 -Hm1 OK Hm1d1 3M ALL -Hm1d1 Hm1 OK -Hm1d1 3M ALL -Hm1d1 -Hm1 OK -Hm1d1 ! Small numbers. 3M ALL 0i1 0i4 OK 0i1 3M ALL 0i1 -0i4 OK 0i1 3M ALL -0i1 0i4 OK -0i1 3M ALL -0i1 -0i4 OK -0i1 3M ALL 0i2 0i4 OK 0i2 3M ALL 0i3 0i4 OK 0i3 3M ALL 0i3 -0i4 OK 0i3 3M ALL -0i3 0i4 OK -0i3 3M ALL -0i3 -0i4 OK -0i3 3M ALL 0i4 0i4 OK 0 3M ALL 0i4 -0i4 OK 0 3M ALL -0i4 -0i4 OK -0 3M ALL -0i4 0i4 OK -0 3M ALL Ep9d1 Ep8 OK Ep8d2 3M ALL Ei1 Ed2 OK Eu3 3M ALL E Ed2 OK Eu2 3M ALL Ed4 Ed2 OK Ed4 3M ALL Ed4 -Ed2 OK Ed4 3M ALL -Ed4 Ed2 OK -Ed4 3M ALL -Ed4 -Ed2 OK -Ed4 3M ALL Ed1 Ep1d1 OK Ed1 3M ALL E Ep1d1 OK E 3M ALL Ei3 Ei5 OK Ei3 3M ALL Ei4 Ei5 OK Ei4 3M ALL Ei6 Ei5 OK Eu1 3M ALL Ep1d1 Ep1 OK Ep1d1 ! Special case: invalid operations delivering NaNs. 3M ALL 0 0 i Q 3M ALL 0 -0 i Q 3M ALL -0 0 i Q 3M ALL -0 -0 i Q 3M ALL 1 0 i Q 3M ALL 1d1 0 i Q 3M ALL Hd1 0 i Q 3M ALL Hd1 -0 i Q 3M ALL -Hd1 0 i Q 3M ALL -Hd1 -0 i Q 3M ALL Ed1 0 i Q 3M ALL Ed1 -0 i Q 3M ALL -Ed1 0 i Q 3M ALL -Ed1 -0 i Q 3M ALL 0i1 0 i Q 3M ALL H 0 i Q 3M ALL H -0 i Q 3M ALL -H 0 i Q 3M ALL -H -0 i Q 3M ALL H 1 i Q 3M ALL H Hd1 i Q 3M ALL H -Hd1 i Q 3M ALL -H Hd1 i Q 3M ALL -H -Hd1 i Q 3M ALL H Ed1 i Q 3M ALL H 0i1 i Q 3M ALL H H i Q ! 0 rem y = 0, y a number <> 0. 3M ALL 0 1 OK 0 3M ALL 0 -1 OK 0 3M ALL -0 1 OK -0 3M ALL -0 -1 OK -0 3M ALL 0 1d1 OK 0 3M ALL 0 Hd1 OK 0 3M ALL 0 Ed1 OK 0 3M ALL 0 0i1 OK 0 3M ALL 0 -0i1 OK 0 3M ALL -0 0i1 OK -0 3M ALL -0 -0i1 OK -0 3M ALL 0 H OK 0 3M ALL 0 -H OK 0 ! x rem INF = x, x a number <> 0. 3M ALL 1 H OK 1 3M ALL 1 -H OK 1 3M ALL -1 H OK -1 3M ALL -1 -H OK -1 3M ALL 1d1 H OK 1d1 3M ALL Hd1 H OK Hd1 3M ALL Hd1 -H OK Hd1 3M ALL -Hd1 H OK -Hd1 3M ALL -Hd1 -H OK -Hd1 3M ALL Ed1 H OK Ed1 3M ALL 0i1 H OK 0i1 3M ALL 0i1 -H OK 0i1 3M ALL -0i1 H OK -0i1 3M ALL -0i1 -H OK -0i1 ! Vectors based on (x + 1) | (x^n + 1) for n odd - ! for significands with even numbers of bits. 3M s Hm1i1 Hm1u3 OK 0 3M s Hm1i2 Hm1u3 OK Hm1u1 3M s Hm1i3 Hm1u3 OK Hm1u2 3M s Hm1i1 3 OK 0 3M s Hm1i1 0i3 OK 0 3M s Hm1 Hm1u3 OK Hm1u2 3M s Hm1d2 Hm1u3 OK Hm1u1 3M s Ei1 Eu3 OK 0 3M s E Eu3 OK 0i2 3M s Ed1 Eu3 OK 0i1 3M s Ei1 0i3 OK 0 3M s Ei2 Eu3 OK Eu1 3M s Ei3 Eu3 OK Eu2 3M s Hm1i1 -Hm1u3 OK 0 3M s Hm1i2 -Hm1u3 OK Hm1u1 3M s Hm1i3 -Hm1u3 OK Hm1u2 3M s Hm1i1 -3 OK 0 3M s Hm1i1 -0i3 OK 0 3M s Hm1 -Hm1u3 OK Hm1u2 3M s Hm1d2 -Hm1u3 OK Hm1u1 3M s Ei1 -0i3 OK 0 3M s E -Eu3 OK Eu2 3M s Ed1 -Eu3 OK Eu1 3M s Ei1 -Eu3 OK 0 3M s Ei2 -Eu3 OK Eu1 3M s Ei3 -Eu3 OK Eu2 3M s -Hm1i1 Hm1u3 OK -0 3M s -Hm1i2 Hm1u3 OK -Hm1u1 3M s -Hm1i3 Hm1u3 OK -Hm1u2 3M s -Hm1i1 3 OK -0 3M s -Hm1i1 0i3 OK -0 3M s -Hm1 Hm1u3 OK -Hm1u2 3M s -Hm1d2 Hm1u3 OK -Hm1u1 3M s -Ei1 0i3 OK -0 3M s -E Eu3 OK -Eu2 3M s -Ed1 Eu3 OK -Eu1 3M s -Ei1 Eu3 OK -0 3M s -Ei2 Eu3 OK -Eu1 3M s -Ei3 Eu3 OK -Eu2 3M s -Hm1i1 -Hm1u3 OK -0 3M s -Hm1i2 -Hm1u3 OK -Hm1u1 3M s -Hm1i3 -Hm1u3 OK -Hm1u2 3M s -Hm1i1 -3 OK -0 3M s -Hm1i1 -0i3 OK -0 3M s -Hm1 -Hm1u3 OK -Hm1u2 3M s -Hm1d2 -Hm1u3 OK -Hm1u1 3M s -Ei1 -0i3 OK -0 3M s -E -Eu3 OK -Eu2 3M s -Ed1 -Eu3 OK -Eu1 3M s -Ei1 -Eu3 OK -0 3M s -Ei2 -Eu3 OK -Eu1 3M s -Ei3 -Eu3 OK -Eu2 ! Vectors based on (x + 1) | (x^n + 1) for n odd; ! for significands with odd numbers of bits. 3M d Hm1d2 Hm1u3 OK 0 3M d Hm1i3 Hm1u3 OK Hm1u1 3M d Hm1i4 Hm1u3 OK Hm1u2 3M d Hm1i2 3 OK 0 3M d Hm1i2 0i3 OK 0 3M d Hm1d4 Hm1u3 OK Hm1u2 3M d Hm1 Hm1u3 OK Hm1u1 3M d Ed1 Eu3 OK 0 3M d Ei1 Eu3 OK 0i2 3M d E Eu3 OK 0i1 3M d Ei2 0i3 OK 0 3M d Ei3 Eu3 OK Eu1 3M d Ei4 Eu3 OK Eu2 3M d Hm1d2 -Hm1u3 OK 0 3M d Hm1i3 -Hm1u3 OK Hm1u1 3M d Hm1i4 -Hm1u3 OK Hm1u2 3M d Hm1i2 -3 OK 0 3M d Hm1i2 -0i3 OK 0 3M d Hm1d4 -Hm1u3 OK Hm1u2 3M d Hm1 -Hm1u3 OK Hm1u1 3M d Ed1 -0i3 OK 0 3M d Ei1 -Eu3 OK Eu2 3M d E -Eu3 OK Eu1 3M d Ei2 -Eu3 OK 0 3M d Ei3 -Eu3 OK Eu1 3M d Ei4 -Eu3 OK Eu2 3M d -Hm1d2 Hm1u3 OK -0 3M d -Hm1i3 Hm1u3 OK -Hm1u1 3M d -Hm1i4 Hm1u3 OK -Hm1u2 3M d -Hm1i2 3 OK -0 3M d -Hm1i2 0i3 OK -0 3M d -Hm1d4 Hm1u3 OK -Hm1u2 3M d -Hm1 Hm1u3 OK -Hm1u1 3M d -Ed1 0i3 OK -0 3M d -Ei1 Eu3 OK -Eu2 3M d -E Eu3 OK -Eu1 3M d -Ei2 Eu3 OK -0 3M d -Ei3 Eu3 OK -Eu1 3M d -Ei4 Eu3 OK -Eu2 3M d -Hm1d2 -Hm1u3 OK -0 3M d -Hm1i3 -Hm1u3 OK -Hm1u1 3M d -Hm1i4 -Hm1u3 OK -Hm1u2 3M d -Hm1i2 -3 OK -0 3M d -Hm1i2 -0i3 OK -0 3M d -Hm1d4 -Hm1u3 OK -Hm1u2 3M d -Hm1 -Hm1u3 OK -Hm1u1 3M d -Ei2 -0i3 OK -0 3M d -Ei1 -Eu3 OK -Eu2 3M d -E -Eu3 OK -Eu1 3M d -Ei2 -Eu3 OK -0 3M d -Ei3 -Eu3 OK -Eu1 3M d -Ei4 -Eu3 OK -Eu2 ! NaN operands. Signaling NaN cases commented out . 3M ALL Q 0 OK Q 3M ALL Q -0 OK Q 3M ALL 0 Q OK Q 3M ALL -0 Q OK Q 3M ALL Q 1 OK Q 3M ALL Q -1 OK Q 3M ALL 1 Q OK Q 3M ALL -1 Q OK Q 3M ALL Ed1 Q OK Q 3M ALL -Ed1 Q OK Q 3M ALL Q Ed1 OK Q 3M ALL Q -Ed1 OK Q 3M ALL Q 0i1 OK Q 3M ALL Q -0i1 OK Q 3M ALL 0i1 Q OK Q 3M ALL -0i1 Q OK Q 3M ALL Q Hd1 OK Q 3M ALL Q -Hd1 OK Q 3M ALL Hd1 Q OK Q 3M ALL -Hd1 Q OK Q 3M ALL Q H OK Q 3M ALL Q -H OK Q 3M ALL H Q OK Q 3M ALL -H Q OK Q 3M ALL Q Q OK Q !3M ALL S 0 i Q !3M ALL S -0 i Q !3M ALL 0 S i Q !3M ALL -0 S i Q !3M ALL S 1 i Q !3M ALL S -1 i Q !3M ALL 1 S i Q !3M ALL -1 S i Q !3M ALL Ed1 S i Q !3M ALL -Ed1 S i Q !3M ALL S Ed1 i Q !3M ALL S -Ed1 i Q !3M ALL S 0i1 i Q !3M ALL S -0i1 i Q !3M ALL 0i1 S i Q !3M ALL -0i1 S i Q !3M ALL S Hd1 i Q !3M ALL S -Hd1 i Q !3M ALL Hd1 S i Q !3M ALL -Hd1 S i Q !3M ALL S H i Q !3M ALL S -H i Q !3M ALL H S i Q !3M ALL -H S i Q !3M ALL Q S i Q !3M ALL S Q i Q !3M ALL S S i Q