TVmultiply.3.TEXT   [plain text]


! First some easy tests for consistency.
! <scp> 12/04/01 Corrected some typos in flags: xv->ux, xw->ux
3*	 ALL   1   1   OK   1
3*	 ALL   1   2   OK   2
3*	 ALL   2   1   OK   2
3*	 ALL   2   3   OK   6
3*	 ALL   3   2   OK   6
3*	 ALL   3   3   OK   9
! Check out sign manipulation.
3*	 ALL   -1   1   OK	 -1
3*	 ALL   -1   2   OK	 -2
3*	 ALL   2   -1   OK	 -2
3*	 ALL   -2   3   OK	 -6
3*	 ALL   3   -2   OK	 -6
3*	 ALL   -3   3   OK	 -9
3*	 ALL   -1   -1	 OK	  1
3*	 ALL   -1   -2	 OK	  2
3*	 ALL   -2   -1	 OK	  2
3*	 ALL   -2   -3	 OK	  6
3*	 ALL   -3   -2	 OK	  6
3*	 ALL   -3   -3	 OK	  9
! Some zero tests, round mode is irrelevant.
3*	 ALL   0   0   OK   0
3*	 ALL   -0   0   OK	 -0
3*	 ALL   0   -0   OK	 -0
3*	 ALL   -0   -0	 OK	  0
! Infinity tests, inf and round modes irrelevant.
3*	 ALL   H   H   OK   H
3*	 ALL   -H   H   OK	 -H
3*	 ALL   H   -H   OK	 -H
3*	 ALL   -H   -H	 OK	  H
! Inf * 0 -- always bad news.
3*	 ALL   H   0   i   Q
! <scp> 3*	 ALL   -0   H   i   -Q
3*	 ALL   -0   H   i   Q
! <scp> 3*	 ALL   H   -0   i   -Q
3*	 ALL   H   -0   i   Q
3*	 ALL   -0   -H	 i	 Q
! Inf * small_integer -> Inf.
3*	 ALL   H   1   OK   H
3*	 ALL   -2   H   OK	 -H
3*	 ALL   H   -3   OK	 -H
3*	 ALL   -4   -H	 OK	  H
3*	 ALL   5   H   OK   H
3*	 ALL   -H   6   OK	 -H
3*	 ALL   7   -H   OK	 -H
3*	 ALL   -H   -8	 OK	  H
! Inf * huge -> Inf.
3*	 ALL   Hm1	 H	 OK	  H
3*	 ALL   -Hm2	  H	  OK   -H
3*	 ALL   H   -Hm1	  OK   -H
3*	 ALL   -H   -Hm2   OK   H
3*	 ALL   H   Hm1d1   OK   H
3*	 ALL   -Hm2d1   H   OK	 -H
3*	 ALL   H   -Hd1	  OK   -H
3*	 ALL   -Hd1	  -H   OK   H
! Inf * tiny -> Inf.
3*	 ALL   E   H   OK   H
3*	 ALL   -Ep1	  H	  OK   -H
3*	 ALL   H   -Ep1	  OK   -H
3*	 ALL   -H   -E	 OK	  H
3*	 ALL   H   Ep1d1   OK   H
3*	 ALL   -Ei1	  H	  OK   -H
3*	 ALL   H   -Ei1	  OK   -H
3*	 ALL   -Ep1d1   -H	 OK	  H
! Inf * denormalized -> Inf.
3*	 ALL   0i1	 H	 OK	  H
3*	 ALL   -0i3	  H	  OK   -H
3*	 ALL   H   -0i2	  OK   -H
3*	 ALL   -H   -0i4   OK   H
3*	 ALL   H   Ed1	 OK	  H
3*	 ALL   -Ed1	  H	  OK   -H
3*	 ALL   H   -Ed1	  OK   -H
3*	 ALL   -Ed1	  -H   OK   H
! 0 * small_integer -> 0.
3*	 ALL   0   1   OK   0
3*	 ALL   -2   0   OK	 -0
3*	 ALL   0   -3   OK	 -0
3*	 ALL   -4   -0	 OK	  0
3*	 ALL   5   0   OK   0
3*	 ALL   -0   6   OK	 -0
3*	 ALL   7   -0   OK	 -0
3*	 ALL   -0   -8	 OK	  0
! 0 * huge -> 0.
3*	 ALL   Hm1	 0	 OK	  0
3*	 ALL   -Hm2	  0	  OK   -0
3*	 ALL   0   -Hm1	  OK   -0
3*	 ALL   -0   -Hm2   OK   0
3*	 ALL   0   Hm1d1   OK   0
3*	 ALL   -Hm2d1   0   OK	 -0
3*	 ALL   0   -Hm2d1   OK	 -0
3*	 ALL   -Hm1d1   -0	 OK	  0
3*	 ALL   Hd1		 0		 OK		 0
3*	 ALL   -Hd1		 -0		 OK		 0
3*	 ALL   0    -Hd1 OK		 -0
3*	 ALL   -0   Hd1	 OK		 -0
! 0 * tiny -> 0.
3*	 ALL   E   0   OK   0
3*	 ALL   -Ep1	  0	  OK   -0
3*	 ALL   0   -Ep1	  OK   -0
3*	 ALL   -0   -E	 OK	  0
3*	 ALL   0   Ep1d1   OK   0
3*	 ALL   -Ei1	  0	  OK   -0
3*	 ALL   0   -Ei1	  OK   -0
3*	 ALL   -Ep1d1   -0	 OK	  0
! 0 * denormalized -> 0.
3*	 ALL   0i1	 0	 OK	  0
3*	 ALL   -0i3	  0	  OK   -0
3*	 ALL   0   -0i2	  OK   -0
3*	 ALL   -0   -0i4   OK   0
3*	 ALL   0   Ed1	 OK	  0
3*	 ALL   -Ed1	  0	  OK   -0
3*	 ALL   0   -Ed1	  OK   -0
3*	 ALL   -Ed1	  -0   OK   0
! Exact cases huge and 2.
3*	 ALL   2   Hm2	 OK	  Hm1
3*	 ALL   Hm2	 -2	  OK   -Hm1
3*	 ALL   -2   Hm2d1   OK	 -Hm1d1
3*	 ALL   2   -Hm2d3   OK	 -Hm1d3
3*	 ALL   2   Hm2	 OK	  Hm1
3*	 ALL   Hm2	 -2	  OK   -Hm1
3*	 ALL   -2   Hm2d1   OK	 -Hm1d1
3*	 ALL   2   -Hm2d3   OK	 -Hm1d3
3*	 ALL   2   Hm1d1   OK   Hd1
3*	 ALL   Hm1d1   -2   OK	 -Hd1
3*	 ALL   -2   Hm2i1   OK	 -Hm1i1
3*	 ALL   2   -Hm2i3   OK	 -Hm1i3
3*	 ALL   2   Hm1d1   OK   Hd1
3*	 ALL   Hm1d1   -2   OK	 -Hd1
3*	 ALL   -2   Hm2i1   OK	 -Hm1i1
3*	 ALL   2   -Hm2i3   OK	 -Hm1i3
! Exact cases huge and 4.
3*	 ALL   4   Hm2d1   OK   Hd1
3*	 ALL   -4   Hm2d1   OK	 -Hd1
3*	 ALL   4   -Hm2d1   OK	 -Hd1
3*	 ALL   -4   -Hm2d1	 OK	  Hd1
3*	 ALL   4   Hm2d1   OK   Hd1
3*	 ALL   -4   Hm2d1   OK	 -Hd1
3*	 ALL   4   -Hm2d1   OK	 -Hd1
3*	 ALL   -4   -Hm2d1	 OK	  Hd1
3*	 ALL   Hm2d3   4   OK   Hd3
3*	 ALL   Hm2d3   -4   OK	 -Hd3
3*	 ALL   -Hm2d3   4   OK	 -Hd3
3*	 ALL   -Hm2d3   -4	 OK	  Hd3
3*	 ALL   Hm2d3   4   OK   Hd3
3*	 ALL   Hm2d3   -4   OK	 -Hd3
3*	 ALL   -Hm2d3   4   OK	 -Hd3
3*	 ALL   -Hm2d3   -4	 OK	  Hd3
! Exact cases tiny and 2.
3*	 ALL   2   E   OK   Ep1
3*	 ALL   E   -2   OK	 -Ep1
3*	 ALL   -2   Ei1	  OK   -Ep1i1
3*	 ALL   2   -Ei3	  OK   -Ep1i3
3*	 ALL   2   E   OK   Ep1
3*	 ALL   E   -2   OK	 -Ep1
3*	 ALL   -2   Ei9	  OK   -Ep1i9
3*	 ALL   2   -Ei5	  OK   -Ep1i5
3*	 ALL   2   Ei1	 OK	  Ep1i1
3*	 ALL   Ei1	 -2	  OK   -Ep1i1
3*	 ALL   -2   Ei5	  OK   -Ep1i5
3*	 ALL   2   -Ei3	  OK   -Ep1i3
3*	 ALL   2   Ei1	 OK	  Ep1i1
3*	 ALL   Ei1	 -2	  OK   -Ep1i1
3*	 ALL   -2   Ei5	  OK   -Ep1i5
3*	 ALL   2   -Ei3	  OK   -Ep1i3
! Just below denormalization threshold.
3*	 ALL   Ed1	 2	 OK	  Ep1d2
3*	 ALL   -2   Ed3	  OK   -Ep1d6
3*	 ALL   -Ed3	  -2   OK   Ep1d6
3*	 ALL   -2   Ed3	  OK   -Ep1d6
3*	 ALL   Ed4	 2	 OK	  Ep1d8
3*	 ALL   2   -Ed3	  OK   -Ep1d6
! Normalizing tinies.
3*	 ALL   0i1	 2	 OK	  0i2
3*	 ALL   3   0i2	 OK	  0i6
3*	 ALL   -0i1	  5	  OK   -0i5
3*	 ALL   1   -0i9	  OK   -0i9
3*	 ALL   -0i4	  -1   OK   0i4
3*	 ALL   4   0i2	 OK	  0i8
3*	 ALL   0i1	 2	 OK	  0i2
3*	 ALL   3   0i2	 OK	  0i6
3*	 ALL   -0i1	  5	  OK   -0i5
3*	 ALL   1   -0i9	  OK   -0i9
3*	 ALL   -0i4	  -1   OK   0i4
3*	 ALL   4   0i2	 OK	  0i8
3*	 ALL   0i1	 2	 OK	  0i2
3*	 ALL   3   0i2	 OK	  0i6
3*	 ALL   -0i1	  5	  OK   -0i5
3*	 ALL   1   -0i9	  OK   -0i9
3*	 ALL   -0i4	  -1   OK   0i4
3*	 ALL   4   0i2	 OK	  0i8
3*	 ALL   0i1	 2	 OK	  0i2
3*	 ALL   3   0i2	 OK	  0i6
3*	 ALL   -0i1	  5	  OK   -0i5
3*	 ALL   1   -0i9	  OK   -0i9
3*	 ALL   -0i4	  -1   OK   0i4
3*	 ALL   4   0i2	 OK	  0i8
! 1.0 * various.
3*	 ALL   1   Ep1i3   OK   Ep1i3
3*	 ALL   -Ep1d2   1   OK	 -Ep1d2
3*	 ALL   -1   Ei9	  OK   -Ei9
3*	 ALL   -Ei1	  -1   OK   Ei1
3*	 ALL   1   Ep1i3   OK   Ep1i3
3*	 ALL   -Ep1d2   1   OK	 -Ep1d2
3*	 ALL   -1   Ei9	  OK   -Ei9
3*	 ALL   -Ei1	  -1   OK   Ei1
3*	 ALL   1   Ed3	 OK	  Ed3
3*	 ALL   -0i2	  1	  OK   -0i2
3*	 ALL   -1   0i9	  OK   -0i9
3*	 ALL   -Ed1	  -1   OK   Ed1
3*	 ALL   1   Ed3	 OK	  Ed3
3*	 ALL   -0i2	  1	  OK   -0i2
3*	 ALL   -1   0i9	  OK   -0i9
3*	 ALL   -Ed1	  -1   OK   Ed1
! Now some tricky rounding cases involving
! 1.0 with some ulps.
! result = 1.00000...010|000...0001
3*	 =0<   1i1	 1i1   x   1i2
3*	 >	 1i1   1i1	 x	 1i3
! Try signs...
3*	 =0>   -1i1	  1i1   x   -1i2
3*	 <	 -1i1   1i1	  x	  -1i3
3*	 =0>   1i1	 -1i1   x   -1i2
3*	 <	 1i1   -1i1	  x	  -1i3
3*	 =0<   -1i1	  -1i1	 x	 1i2
3*	 >	 -1i1   -1i1   x   1i3
! result = 1.0000..011|0000100
3*	 =0<   1i2	 1i1   x   1i3
3*	 >	 1i2   1i1	 x	 1i4
! Try signs...
3*	 =0>   -1i2	  1i1   x   -1i3
3*	 <	 -1i2   1i1	  x	  -1i4
3*	 =0>   1i1	 -1i2   x   -1i3
3*	 <	 1i1   -1i2	  x	  -1i4
3*	 =0<   -1i2	  -1i1	 x	 1i3
3*	 >	 -1i1   -1i2   x   1i4
3*	 >	 -1i2   -1i1   x   1i4
3*	 =0<   -1i1	  -1i2	 x	 1i3
! (m + k ulps of m) * (1 + j ulps of 1)
!	    = m + (k + m*j/2^floor(log m)) ulps of m + tiny.
3*	    =>		 3i1   1i1	 x		 3i3
3*	    0<	    3i1	  1i1   x	    3i2
3*	    >=	    3i1	  1i3   x	    3i6
3*	    0<	    3i1	  1i3   x	    3i5
3*	    =<		 -3i1   1i1	  x		 -3i3
3*	    0>	   -3i1	  1i1   x	   -3i2
3*	    <=	    3i1	  -1i3	 x	    -3i6
3*	    0>	    3i1	  -1i3	 x	    -3i5
3*	    >	    5i1	  1i1   x	    5i3
3*	    =0<		 5i1   1i1	 x		 5i2
3*	    >	    -5i1  -1i1	 x		 5i3
3*	    =0<		 -5i1  -1i1	  x		  5i2
3*	    >=	    7i1	  1i1   x	    7i3
3*	    <0	    7i1	  1i1   x	    7i2
3*	    0<=		 3d1   1d1	 x		 3d2
3*	    >	    3d1	  1d1   x	    3d1
3*	    0<	    3d1	  1d3   x	    3d4
3*	    =>	    3d1	  1d3   x	    3d3
3*	    0>=		 -3d1   1d1	  x		 -3d2
3*	    <	   -3d1	  1d1   x	   -3d1
3*	    0>	    3d1	  -1d3	 x	    -3d4
3*	    =<	    3d1	  -1d3	 x	    -3d3
3*	    =>	    3d1	  1d2   x	    3d2
3*	    0<	    3d1	  1d2   x	    3d3
3*	    0<=	    5d1	  1d1   x	    5d2
3*	    >		 5d1   1d1	 x		 5d1
3*	    0<=	    -5d1  -1d1	 x		 5d2
3*	    >	    -5d1  -1d1	 x		 5d1
3*	    <=0	    7d1	  1d1   x	    7d2
3*	    >	    7d1	  1d1   x	    7d1
3*	    =>	    7d1	  1d4   x	    7d4
3*	    0<	    7d1	  1d4   x	    7d5
! Some overflow conditions, watching round mode.
3*	 =>	  Hm1   2   ox	 H
3*	 0<	  Hm1   2i1	  ox   Hd1
3*	 =<	  -3d2	 Hm1   ox   -H
3*	 0>	  Hm1   -4i5   ox   -Hd1
3*	 =>	  -5d2	 -Hm1   ox	 H
3*	 0<	  Hm1   6i1	  ox   Hd1
3*	 =<	  -7d7	 Hm1   ox   -H
3*	 0>	  Hm1   -8i3   ox   -Hd1
3*	 =>	  -9i1	 -Hm1   ox	 H
3*	 0<	  Hm1   6   ox	 Hd1
3*	 =<	  -9   Hm1	 ox	  -H
3*	 0>	  Hm1   -2	 ox	  -Hd1
3*	 0<	  -7   -Hm1	  ox   Hd1
3*	 =>	  Hm1   2   ox	 H
3*	 0>	  -5   Hm1	 ox	  -Hd1
3*	 0>	  Hm1   -2	 ox	  -Hd1
3*	 =>	  -3   -Hm1	  ox   H
! Heavy overflow conditions, watching round mode.
3*	 =>	  Hm1   Hm1	  xo   H
3*	 =<	  -Hd3	 Hm1   xo   -H
3*	 =<	  Hm1   -Hm2i4	 xo	  -H
3*	 =>	  -Hm1i5   -Hm1i1   ox	 H
3*	 =>	  Hm1i9	  Hd6   xo	 H
3*	 =<	  -Hm2d7   Hm1	 xo	  -H
3*	 =<	  Hm1   -Hm2   xo   -H
3*	 =>	  -Hd1	 -Hd1   xo	 H
3*	 0<	  Hm1   Hm2i6   xo	 Hd1
3*	 =<	  -Hm1d9   Hm2i1   xo   -H
3*	 =<	  Hm1   -Hm1   xo   -H
3*	 0<	  -Hm2d7   -Hd1	  xo   Hd1
3*	 =>	  Hm1   Hd2	  xo   H
3*	 0>	  -Hm2	 Hm1   xo   -Hd1
3*	 0>	  Hm1i9	  -Hm2i2   xo   -Hd1
3*	 =>	  -Hd3	 -Hm1i1	  xo   H
! Mixed bag overflow conditions, watching round mode
! Tricky cases require careful look at power series
! expansion.  Example --  -Hmd1 * 1i1 below:
! In single...
!  -(2^127 (1 - 2^-24)) * (1 + 2^-23) -->
!  -( 2^127 (1 + 2^-24 - 2^-47) ) -->
!   -2^127 except when rounding <, in which
!  case -( 2^127 (1 + 2^-23) ); that is,
!  -Hm or -Hmi1, respectively!
3*	 =0>   -Hm1d1   1i1	  x	  -Hm1
3*	 <	 -Hm1d1	  1i1   x   -Hm1i1
3*	 =0<   -1d1	  -Hd1	 x	 Hd2
3*	 >	 -1d1   -Hd1   x   Hd1
3*	 <	  -Hm2d1   2i1	 x	 -Hm1i1
3*	 =0>  -Hm2d1   2i1	 x	 -Hm1
3*	 <=	  Hm1d3	  -2i8	 xo	  -H
3*	 >0	  Hm1d3	  -2i8	 xo	  -Hd1
3*	 =0<   -Hm2d7   -4d1   x   Hd8
3*	 >	   -Hm2d7   -4d1   x   Hd7
3*	 =>	  1i2   Hd2	  xo   H
3*	 0<	  1i2   Hd2	  xo   Hd1
3*	 =<	  Hm1i9	  -6i2	 xo	  -H
3*	 0>	  Hm1i9	  -6i2	 xo	  -Hd1
3*	 =>	  -Hd3	 -3i1   xo	 H
3*	 0<	  -Hd3	 -3i1   xo	 Hd1
! Exact and below denomalization threshold -- no underflow.
3*	    ALL	    E	   1d2	 OK		 Ed1
3*	    ALL	    0i1	   1	 OK		 0i1
3*	    ALL	    1	   -0i1	 OK	    -0i1
3*	    ALL	    Ep1d2  1m1	 OK		  Ed1
3*	    ALL	   -Ep1d4  -1m1	  OK	   Ed2
3*	    ALL	    Ep1d2  -1m1	  OK	  -Ed1
3*	    ALL	   -Ep1d4  1m1	 OK		 -Ed2
3*	    ALL	    Ep1d8  1m1	 OK		  Ed4
3*	    ALL	    0i8	   1m3	 OK		 0i1
3*	    ALL	    0i6	   1m1	 OK		 0i3
3*	    ALL	   -0i8	   1m3	 OK	    -0i1
3*	    ALL	    0i6	  -1m1	 OK	    -0i3
! Inexact, extreme underflows.
3*	 =0<   E   E   xu   0
3*	 =0<   -E   -E	 xu	  0
3*	 >	 E	 Ep1   xu   0i1
3*	 >	 -Ep1   -Ep1   xu   0i1
3*	 =0>   -E   E   xu	 -0
3*	 =0>   E   -E   xu	 -0
3*	 <	 -E	  Ep1   xu	 -0i1
3*	 <	 E	 -E	  xu   -0i1
3*	 =0<   Ed1	 Ed2   xu   0
3*	 =0<   -Ed1	  -Ed2	 xu	  0
3*	 >	 Ed1   Ed2	 xu	  0i1
3*	 >	 -Ed1   -Ed2   xu   0i1
3*	 =0>   -Ed9	  Ep1i3	  xu   -0
3*	 =0>   Ed9	 -Ep1i3	  xu   -0
3*	 <	 -Ed9   Ep1i3   xu	 -0i1
3*	 <	 Ed9   -Ep1i3   xu	 -0i1
3*	    >	    0i1	  1m1   xu	    0i1
3*	    =0<	    0i1	  1m1   xu	    0
3*	    <	    1m1	  -0i1  xu	    -0i1
3*	    =0>	    1m1	  -0i1  xu	    -0
3*	    <0	    0i1	  1d1   xu		 0
3*	    =>	    0i1	  1d1   xu	    0i1
3*	    >	    0i1	  0i1   xu	    0i1
3*	    =0<	    0i1	  0i1   xu		 0
3*	    >0	   -0i1	  1d1   xu	    -0
3*	    =<	    0i1	 -1d1   xu	   -0i1
3*	    <	    0i1	 -0i1   xu	   -0i1
3*	    =0>	   -0i1	  0i1   xu	    -0
! Underflow, barely.
3*	    0<	   Ep1d1  1m1   xu	    Ed1
3*	    0<	   -Ep1d1  -1m1	  xu	  Ed1
3*	    0>	   -Ep1d1  1m1	 xu	    -Ed1
3*	    >=	   Ep1d1   1m1	 xu		 E
3*	    <=	   Ep1d1  -1m1	 xu	    -E
3*	    0<	   Ed1	   1i1	 xu		 Ed1
3*	    0>	   Ed1	  -1i1	 xu	    -Ed1
3*	    0<	    Ei1	    1d6	    xu	    Ed3
3*	    >	    Ed2	    1d4	    xu	    Ed3
3*	    0<	    Ed4	    1i1	    xu	    Ed4
3*	    0<	    Ei1	    1d2	    xu	    Ed1
! Underflow, unless detected as accuracy loss due to denormalization.
3*	    >=	   Ed2	   1i1	 ux		 Ed1
3*	    <=	   Ed2	  -1i1	 ux	    -Ed1
3*	    >=	   Ed8	   1i1	 ux		 Ed7
3*	    <=	  -Ed9	   1i1	 ux		 -Ed8
3*	    <=	   Ed8	  -1i1	 ux		 -Ed7
3*	    =>	    Ei1	    1d6	    ux	    Ed2
3*	    <=0	    Ed2	    1d4	    ux	    Ed4
! Underflow, only if tininess is detected before rounding.
3*	    >=	   Ed1	   1i1	 ux		 E
3*	    <=	  -Ed1	   1i1	 ux	    -E
3*	    >=	   Ed8	   1i8	 ux		 E
3*	    <=	   Ed8	  -1i8	 ux	    -E
3*	    >=	    Ei1	    1d2	    ux	    E
3*	    >=	    Ei2	    1d4	    ux	    E
! NaN operands.  Signaling NaN cases commented out <JPO, 4/29/93>.
3*	    ALL	    Q	    0	    OK	    Q
3*	    ALL	    Q	    -0	    OK	    Q
3*	    ALL	    0	    Q	    OK	    Q
3*	    ALL	    -0	    Q	    OK	    Q
3*	    ALL	    Q	    1	    OK	    Q
3*	    ALL	    Q	    -1	    OK	    Q
3*	    ALL	    1	    Q	    OK	    Q
3*	    ALL	    -1	    Q	    OK	    Q
3*	    ALL	    Ed1	 Q		 OK		 Q
3*	    ALL	    -Ed1 Q		 OK		 Q
3*	    ALL	    Q	    Ed1	 OK		 Q
3*	    ALL	    Q	    -Ed1 OK		 Q
3*	    ALL	    Q	    0i1	  OK	  Q
3*	    ALL	    Q	    -0i1  OK	  Q
3*	    ALL	    0i1	  Q		  OK	  Q
3*	    ALL	    -0i1  Q		  OK	  Q
3*	    ALL	    Q	    Hd1	 OK		 Q
3*	    ALL	    Q	    -Hd1 OK		 Q
3*	    ALL	    Hd1	 Q		 OK		 Q
3*	    ALL	    -Hd1 Q		 OK		 Q
3*	    ALL	    Q	    H	   OK	   Q
3*	    ALL	    Q	    -H	   OK	   Q
3*	    ALL	    H	   Q	   OK	   Q
3*	    ALL	    -H	   Q	   OK	   Q
3*	    ALL	    Q	    Q	    OK	    Q
!3*	    ALL	    S	    0	    i	    Q
!3*	    ALL	    S	    -0	    i	    Q
!3*	    ALL	    0	    S	    i	    Q
!3*	    ALL	    -0	    S	    i	    Q
!3*	    ALL	    S	    1	    i	    Q
!3*	    ALL	    S	    -1	    i	    Q
!3*	    ALL	    1	    S	    i	    Q
!3*	    ALL	    -1	    S	    i	    Q
!3*	    ALL	    Ed1	 S		 i		 Q
!3*	    ALL	    -Ed1 S		 i		 Q
!3*	    ALL	    S	    Ed1	 i		 Q
!3*	    ALL	    S	    -Ed1 i		 Q
!3*	    ALL	    S	    0i1	  i		  Q
!3*	    ALL	    S	    -0i1  i		  Q
!3*	    ALL	    0i1	  S		  i		  Q
!3*	    ALL	    -0i1  S		  i		  Q
!3*	    ALL	    S	    Hd1	 i		 Q
!3*	    ALL	    S	    -Hd1 i		 Q
!3*	    ALL	    Hd1	 S		 i		 Q
!3*	    ALL	    -Hd1 S		 i		 Q
!3*	    ALL	    S	    H	   i	   Q
!3*	    ALL	    S	    -H	   i	   Q
!3*	    ALL	    H	   S	   i	   Q
!3*	    ALL	    -H	   S	   i	   Q
!3*	    ALL	    Q	    S	    i	    Q
!3*	    ALL	    S	    Q	    i	    Q
!3*	    ALL	    S	    S	    i	    Q