This patch contains some more tests for the pow and atan families of
 opcodes; it should cover all the different possible combinations of 
 n, i, nc and nc.

 Simon Glover


--- trans.old   Sun Dec  2 20:00:01 2001
+++ trans.t     Fri Dec 14 16:47:13 2001
@@ -288,37 +288,114 @@
 ok 2
 OUTPUT
 
-output_is( <<"CODE", <<OUTPUT, "atan" );
+output_is( <<"CODE", <<OUTPUT, "atan2" );
 @{[ $fp_equality_macro]}
+        set N0, 0.0
+        set I0, 0
        set N1, 1.0
        set I1, 1
        set N2, 1.0
        set I2, 1
-       atan N3, N1, N2
-       fp_eq   N3, 0.785398, EQ1
+        set I3, -1
+        set N3, -1.0
+
+       atan N4, N1, N2
+       fp_eq   N4, 0.785398, EQ1
        print "not "
 EQ1:   print "ok 1\\n"
 
-       atan N3, N1, I2
-       fp_eq   N3, 0.785398, EQ2
+       atan N4, N1, I2
+       fp_eq   N4, 0.785398, EQ2
        print "not "
 EQ2:   print "ok 2\\n"
 
-       atan N3, I1, N2
-       fp_eq   N3, 0.785398, EQ3
+       atan N4, I1, N2
+       fp_eq   N4, 0.785398, EQ3
        print "not "
 EQ3:   print "ok 3\\n"
 
-       atan N3, I1, I2
-       fp_eq   N3, 0.785398, EQ4
+       atan N4, I1, I2
+       fp_eq   N4, 0.785398, EQ4
        print "not "
 EQ4:   print "ok 4\\n"
-       end
+       
+        atan N4, N3, 1.0
+        fp_eq   N4, -0.785398, EQ5
+       print "not "
+EQ5:   print "ok 5\\n"
+
+        atan N4, N1, 0
+        fp_eq   N4, 1.570796, EQ6
+       print "not "
+EQ6:   print "ok 6\\n"
+
+        atan N4, I3, 0.0
+        fp_eq   N4, -1.570796, EQ7
+       print "not "
+EQ7:   print "ok 7\\n"
+
+        atan N4, I3, -1
+        fp_eq   N4, -2.356194, EQ8
+       print "not "
+EQ8:   print "ok 8\\n"
+
+        atan N4, 1.0, N3
+        fp_eq   N4, 2.356194, EQ9
+       print "not "
+EQ9:   print "ok 9\\n"
+        
+        atan N4, 1.0, I0
+        fp_eq   N4, 1.570796, EQ10
+       print "not "
+EQ10:  print "ok 10\\n"
+
+        atan N4, 1, N1
+        fp_eq   N4, 0.785398, EQ11
+       print "not "
+EQ11:  print "ok 11\\n"
+
+        atan N4, 1, I1
+        fp_eq   N4, 0.785398, EQ12
+       print "not "
+EQ12:  print "ok 12\\n"
+
+        atan N4, 0.0, 1.0
+        fp_eq   N4, 0.000000, EQ13
+       print "not "
+EQ13:  print "ok 13\\n"
+
+        atan N4, -1.0, 0
+        fp_eq   N4, -1.570796, EQ14
+       print "not "
+EQ14:  print "ok 14\\n"
+
+        atan N4, 1, -1.0
+        fp_eq   N4, 2.356194, EQ15
+       print "not "
+EQ15:  print "ok 15\\n"
+
+        atan N4, 0, 1
+        fp_eq   N4, 0.000000, EQ16
+       print "not "
+EQ16:  print "ok 16\\n"
+        end
 CODE
 ok 1
 ok 2
 ok 3
 ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+ok 10
+ok 11
+ok 12
+ok 13
+ok 14
+ok 15
+ok 16
 OUTPUT
 
 output_is( <<"CODE", <<OUTPUT, "log2" );
@@ -405,32 +482,109 @@
        set I1, 3
        set N2, 5.0
        set I2, 5
-       pow_n_n_n N3, N1, N2
+       pow N3, N1, N2
        fp_eq   N3, 243.0, EQ1
        print "not "
 EQ1:   print "ok 1\\n"
 
-       pow_n_n_i N3, N1, I2
+       pow N3, N1, I2
        fp_eq   N3, 243.0, EQ2
        print "not "
 EQ2:   print "ok 2\\n"
 
-       pow_n_i_n N3, I1, N2
+       pow N3, I1, N2
        fp_eq   N3, 243.0, EQ3
        print "not "
 EQ3:   print "ok 3\\n"
 
-       pow_n_i_i N3, I1, I2
+       pow N3, I1, I2
        fp_eq   N3, 243.0, EQ4
        print "not "
 EQ4:   print "ok 4\\n"
 
+        set N0, 0.0
+        set I0, 0
+        set N1, 1.0
+        set I1, 1
+        set N2, 4.0
+        set I2, 4
+       pow N3, N2, 2.5 
+       fp_eq   N3, 32.0, EQ5
+       print "not "
+EQ5:   print "ok 5\\n"
+
+       pow N3, N2, -2
+       fp_eq   N3, 0.0625, EQ6
+       print "not "
+EQ6:   print "ok 6\\n"
+
+       pow N3, I2, 0.5
+       fp_eq   N3, 2.0, EQ7
+       print "not "
+EQ7:   print "ok 7\\n"
+
+       pow N3, I2, 0
+       fp_eq   N3, 1.0, EQ8
+       print "not "
+EQ8:   print "ok 8\\n"
+
+       pow N3, 0.0, N2
+       fp_eq   N3, 0.0, EQ9
+       print "not "
+EQ9:   print "ok 9\\n"
+
+       pow N3, 2.5, 0.0
+       fp_eq   N3, 1.0, EQ10
+       print "not "
+EQ10:  print "ok 10\\n"
+
+       pow N3, 2.5, I2
+       fp_eq   N3, 39.0625, EQ11
+       print "not "
+EQ11:  print "ok 11\\n"
+
+       pow N3, 2.0, -4
+       fp_eq   N3, 0.0625, EQ12
+       print "not "
+EQ12:  print "ok 12\\n"
+
+       pow N3, 0, N2
+       fp_eq   N3, 0.0, EQ13
+       print "not "
+EQ13:  print "ok 13\\n"
+
+       pow N3, 4, -0.5
+       fp_eq   N3, 0.5, EQ14
+       print "not "
+EQ14:  print "ok 14\\n"
+
+       pow N3, 4, I2
+       fp_eq   N3, 256.0, EQ15
+       print "not "
+EQ15:  print "ok 15\\n"
+
+       pow N3, 4, -1
+       fp_eq   N3, 0.25, EQ16
+       print "not "
+EQ16:  print "ok 16\\n"
        end
 CODE
 ok 1
 ok 2
 ok 3
 ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+ok 10
+ok 11
+ok 12
+ok 13
+ok 14
+ok 15
+ok 16
 OUTPUT
 
 1;

Reply via email to