Output of check, i think ;-)
[cacao.git] / tests / fptest.output
1 ---------------------------- tests NaNs and Infs -------------------
2    0.    ------------------- print NaNs and Infs
3    1.    NaNQ float:  NaN
4    2.    +INF float:  Infinity
5    3.    -INF float:  -Infinity
6    4.    NaNQ double: NaN
7    5.    +INF double: Infinity
8    6.    -INF double: -Infinity
9    7.    ------------------- test zero division
10    8.    0 / 0 = NaNQ float:  NaN
11    9.    + / 0 = +INF float:  Infinity
12   10.    - / 0 = -INF float:  -Infinity
13   11.    0 / 0 = NaNQ double: NaN
14   12.    + / 0 = +INF double: Infinity
15   13.    - / 0 = -INF double: -Infinity
16   14.    ------------------- test conversions
17   15.    convert NaNQ (NaN,NaN) to int:    0
18   16.    convert NaNQ (NaN,NaN) to int:    0
19   17.    convert NaNQ (NaN,NaN) to long:   0
20   18.    convert NaNQ (NaN,NaN) to long:   0
21   19.    convert +INF (Infinity,Infinity) to int:    2147483647
22   20.    convert +INF (Infinity,Infinity) to int:    2147483647
23   21.    convert +INF (Infinity,Infinity) to long:   9223372036854775807
24   22.    convert +INF (Infinity,Infinity) to long:   9223372036854775807
25   23.    convert -INF (-Infinity,-Infinity) to int:    -2147483648
26   24.    convert -INF (-Infinity,-Infinity) to int:    -2147483648
27   25.    convert -INF (-Infinity,-Infinity) to long:   -9223372036854775808
28   26.    convert -INF (-Infinity,-Infinity) to long:   -9223372036854775808
29   27.    convert  MAX (3.4028235E38,1.7976931348623157E308) to int:    2147483647
30   28.    convert  MAX (3.4028235E38,1.7976931348623157E308) to int:    2147483647
31   29.    convert  MAX (3.4028235E38,1.7976931348623157E308) to long:   9223372036854775807
32   30.    convert  MAX (3.4028235E38,1.7976931348623157E308) to long:   9223372036854775807
33   31.    convert  MIN (1.4012985E-45,5.0E-324) to int:    0
34   32.    convert  MIN (1.4012985E-45,5.0E-324) to int:    0
35   33.    convert  MIN (1.4012985E-45,5.0E-324) to long:   0
36   34.    convert  MIN (1.4012985E-45,5.0E-324) to long:   0
37   35.    convert MAXINT-1 (2.147483648E9,2.147483646E9) to int:    2147483647
38   36.    convert MAXINT-1 (2.147483648E9,2.147483646E9) to int:    2147483646
39   37.    convert MAXINT-1 (2.147483648E9,2.147483646E9) to long:   2147483648
40   38.    convert MAXINT-1 (2.147483648E9,2.147483646E9) to long:   2147483646
41   39.    convert MAXINT+0 (2.147483648E9,2.147483647E9) to int:    2147483647
42   40.    convert MAXINT+0 (2.147483648E9,2.147483647E9) to int:    2147483647
43   41.    convert MAXINT+0 (2.147483648E9,2.147483647E9) to long:   2147483648
44   42.    convert MAXINT+0 (2.147483648E9,2.147483647E9) to long:   2147483647
45   43.    convert MAXINT+1 (2.147483648E9,2.147483648E9) to int:    2147483647
46   44.    convert MAXINT+1 (2.147483648E9,2.147483648E9) to int:    2147483647
47   45.    convert MAXINT+1 (2.147483648E9,2.147483648E9) to long:   2147483648
48   46.    convert MAXINT+1 (2.147483648E9,2.147483648E9) to long:   2147483648
49   47.    convert -MAXINT+1 (-2.147483648E9,-2.147483647E9) to int:    -2147483648
50   48.    convert -MAXINT+1 (-2.147483648E9,-2.147483647E9) to int:    -2147483647
51   49.    convert -MAXINT+1 (-2.147483648E9,-2.147483647E9) to long:   -2147483648
52   50.    convert -MAXINT+1 (-2.147483648E9,-2.147483647E9) to long:   -2147483647
53   51.    convert -MAXINT+0 (-2.147483648E9,-2.147483648E9) to int:    -2147483648
54   52.    convert -MAXINT+0 (-2.147483648E9,-2.147483648E9) to int:    -2147483648
55   53.    convert -MAXINT+0 (-2.147483648E9,-2.147483648E9) to long:   -2147483648
56   54.    convert -MAXINT+0 (-2.147483648E9,-2.147483648E9) to long:   -2147483648
57   55.    convert -MAXINT-1 (-2.147483648E9,-2.147483649E9) to int:    -2147483648
58   56.    convert -MAXINT-1 (-2.147483648E9,-2.147483649E9) to int:    -2147483648
59   57.    convert -MAXINT-1 (-2.147483648E9,-2.147483649E9) to long:   -2147483648
60   58.    convert -MAXINT-1 (-2.147483648E9,-2.147483649E9) to long:   -2147483649
61   59.    convert MAXLNG-1 (9.223372E18,9.223372036854776E18) to int:    2147483647
62   60.    convert MAXLNG-1 (9.223372E18,9.223372036854776E18) to int:    2147483647
63   61.    convert MAXLNG-1 (9.223372E18,9.223372036854776E18) to long:   9223372036854775807
64   62.    convert MAXLNG-1 (9.223372E18,9.223372036854776E18) to long:   9223372036854775807
65   63.    convert MAXLNG+0 (9.223372E18,9.223372036854776E18) to int:    2147483647
66   64.    convert MAXLNG+0 (9.223372E18,9.223372036854776E18) to int:    2147483647
67   65.    convert MAXLNG+0 (9.223372E18,9.223372036854776E18) to long:   9223372036854775807
68   66.    convert MAXLNG+0 (9.223372E18,9.223372036854776E18) to long:   9223372036854775807
69   67.    convert MAXLNG+1 (9.223372E18,9.223372036854776E18) to int:    2147483647
70   68.    convert MAXLNG+1 (9.223372E18,9.223372036854776E18) to int:    2147483647
71   69.    convert MAXLNG+1 (9.223372E18,9.223372036854776E18) to long:   9223372036854775807
72   70.    convert MAXLNG+1 (9.223372E18,9.223372036854776E18) to long:   9223372036854775807
73   71.    convert -MAXLNG+1 (-9.223372E18,-9.223372036854776E18) to int:    -2147483648
74   72.    convert -MAXLNG+1 (-9.223372E18,-9.223372036854776E18) to int:    -2147483648
75   73.    convert -MAXLNG+1 (-9.223372E18,-9.223372036854776E18) to long:   -9223372036854775808
76   74.    convert -MAXLNG+1 (-9.223372E18,-9.223372036854776E18) to long:   -9223372036854775808
77   75.    convert -MAXLNG+0 (-9.223372E18,-9.223372036854776E18) to int:    -2147483648
78   76.    convert -MAXLNG+0 (-9.223372E18,-9.223372036854776E18) to int:    -2147483648
79   77.    convert -MAXLNG+0 (-9.223372E18,-9.223372036854776E18) to long:   -9223372036854775808
80   78.    convert -MAXLNG+0 (-9.223372E18,-9.223372036854776E18) to long:   -9223372036854775808
81   79.    convert -MAXLNG-1 (-9.223372E18,-9.223372036854776E18) to int:    -2147483648
82   80.    convert -MAXLNG-1 (-9.223372E18,-9.223372036854776E18) to int:    -2147483648
83   81.    convert -MAXLNG-1 (-9.223372E18,-9.223372036854776E18) to long:   -9223372036854775808
84   82.    convert -MAXLNG-1 (-9.223372E18,-9.223372036854776E18) to long:   -9223372036854775808
85   83.    ------------------- test NaNQ op value
86   84.    NaNQ + 5.0 = float:  NaN
87   85.    NaNQ - 5.0 = float:  NaN
88   86.    NaNQ * 5.0 = float:  NaN
89   87.    NaNQ / 5.0 = float:  NaN
90   88.    NaNQ % 5.0 = float:  NaN
91   89.    NaNQ + 5.0 = double: NaN
92   90.    NaNQ - 5.0 = double: NaN
93   91.    NaNQ * 5.0 = double: NaN
94   92.    NaNQ / 5.0 = double: NaN
95   93.    NaNQ % 5.0 = double: NaN
96   94.     (NaNQ == 5.0) = false
97   95.     (NaNQ != 5.0) = true
98   96.     (NaNQ <  5.0) = false
99   97.     (NaNQ <= 5.0) = false
100   98.     (NaNQ >  5.0) = false
101   99.     (NaNQ >= 5.0) = false
102  100.    !(NaNQ == 5.0) = true
103  101.    !(NaNQ != 5.0) = false
104  102.    !(NaNQ <  5.0) = true
105  103.    !(NaNQ <= 5.0) = true
106  104.    !(NaNQ >  5.0) = true
107  105.    !(NaNQ >= 5.0) = true
108  106.     (NaNQ == 5.0) = false
109  107.     (NaNQ != 5.0) = true
110  108.     (NaNQ <  5.0) = false
111  109.     (NaNQ <= 5.0) = false
112  110.     (NaNQ >  5.0) = false
113  111.     (NaNQ >= 5.0) = false
114  112.    !(NaNQ == 5.0) = true
115  113.    !(NaNQ != 5.0) = false
116  114.    !(NaNQ <  5.0) = true
117  115.    !(NaNQ <= 5.0) = true
118  116.    !(NaNQ >  5.0) = true
119  117.    !(NaNQ >= 5.0) = true
120  118.    ------------------- test value op NaNQ
121  119.    5.0 + NaNQ = float:  NaN
122  120.    5.0 - NaNQ = float:  NaN
123  121.    5.0 * NaNQ = float:  NaN
124  122.    5.0 / NaNQ = float:  NaN
125  123.    5.0 % NaNQ = float:  NaN
126  124.    5.0 + NaNQ = double: NaN
127  125.    5.0 - NaNQ = double: NaN
128  126.    5.0 * NaNQ = double: NaN
129  127.    5.0 / NaNQ = double: NaN
130  128.    5.0 % NaNQ = double: NaN
131  129.     (5.0 == NaNQ) = false
132  130.     (5.0 != NaNQ) = true
133  131.     (5.0 <  NaNQ) = false
134  132.     (5.0 <= NaNQ) = false
135  133.     (5.0 >  NaNQ) = false
136  134.     (5.0 >= NaNQ) = false
137  135.    !(5.0 == NaNQ) = true
138  136.    !(5.0 != NaNQ) = false
139  137.    !(5.0 <  NaNQ) = true
140  138.    !(5.0 <= NaNQ) = true
141  139.    !(5.0 >  NaNQ) = true
142  140.    !(5.0 >= NaNQ) = true
143  141.     (5.0 == NaNQ) = false
144  142.     (5.0 != NaNQ) = true
145  143.     (5.0 <  NaNQ) = false
146  144.     (5.0 <= NaNQ) = false
147  145.     (5.0 >  NaNQ) = false
148  146.     (5.0 >= NaNQ) = false
149  147.    !(5.0 == NaNQ) = true
150  148.    !(5.0 != NaNQ) = false
151  149.    !(5.0 <  NaNQ) = true
152  150.    !(5.0 <= NaNQ) = true
153  151.    !(5.0 >  NaNQ) = true
154  152.    !(5.0 >= NaNQ) = true
155  153.    ------------------- test +INF op value
156  154.    +INF + 5.0 = float:  Infinity
157  155.    +INF - 5.0 = float:  Infinity
158  156.    +INF * 5.0 = float:  Infinity
159  157.    +INF / 5.0 = float:  Infinity
160  158.    +INF % 5.0 = float:  NaN
161  159.    +INF + 5.0 = double: Infinity
162  160.    +INF - 5.0 = double: Infinity
163  161.    +INF * 5.0 = double: Infinity
164  162.    +INF / 5.0 = double: Infinity
165  163.    +INF % 5.0 = double: NaN
166  164.     (+INF == 5.0) = false
167  165.     (+INF != 5.0) = true
168  166.     (+INF <  5.0) = false
169  167.     (+INF <= 5.0) = false
170  168.     (+INF >  5.0) = true
171  169.     (+INF >= 5.0) = true
172  170.    !(+INF == 5.0) = true
173  171.    !(+INF != 5.0) = false
174  172.    !(+INF <  5.0) = true
175  173.    !(+INF <= 5.0) = true
176  174.    !(+INF >  5.0) = false
177  175.    !(+INF >= 5.0) = false
178  176.     (+INF == 5.0) = false
179  177.     (+INF != 5.0) = true
180  178.     (+INF <  5.0) = false
181  179.     (+INF <= 5.0) = false
182  180.     (+INF >  5.0) = true
183  181.     (+INF >= 5.0) = true
184  182.    !(+INF == 5.0) = true
185  183.    !(+INF != 5.0) = false
186  184.    !(+INF <  5.0) = true
187  185.    !(+INF <= 5.0) = true
188  186.    !(+INF >  5.0) = false
189  187.    !(+INF >= 5.0) = false
190  188.    ------------------- test +INF op value
191  189.    5.0 + +INF = float:  Infinity
192  190.    5.0 - +INF = float:  -Infinity
193  191.    5.0 * +INF = float:  Infinity
194  192.    5.0 / +INF = float:  0.0
195  193.    5.0 % +INF = float:  5.0
196  194.    5.0 + +INF = double: Infinity
197  195.    5.0 - +INF = double: -Infinity
198  196.    5.0 * +INF = double: Infinity
199  197.    5.0 / +INF = double: 0.0
200  198.    5.0 % +INF = double: 5.0
201  199.     (5.0 == +INF) = false
202  200.     (5.0 != +INF) = true
203  201.     (5.0 <  +INF) = true
204  202.     (5.0 <= +INF) = true
205  203.     (5.0 >  +INF) = false
206  204.     (5.0 >= +INF) = false
207  205.    !(5.0 == +INF) = true
208  206.    !(5.0 != +INF) = false
209  207.    !(5.0 <  +INF) = false
210  208.    !(5.0 <= +INF) = false
211  209.    !(5.0 >  +INF) = true
212  210.    !(5.0 >= +INF) = true
213  211.     (5.0 == +INF) = false
214  212.     (5.0 != +INF) = true
215  213.     (5.0 <  +INF) = true
216  214.     (5.0 <= +INF) = true
217  215.     (5.0 >  +INF) = false
218  216.     (5.0 >= +INF) = false
219  217.    !(5.0 == +INF) = true
220  218.    !(5.0 != +INF) = false
221  219.    !(5.0 <  +INF) = false
222  220.    !(5.0 <= +INF) = false
223  221.    !(5.0 >  +INF) = true
224  222.    !(5.0 >= +INF) = true
225  223.    ------------------- test -INF op value
226  224.    -INF + 5.0 = float:  -Infinity
227  225.    -INF - 5.0 = float:  -Infinity
228  226.    -INF * 5.0 = float:  -Infinity
229  227.    -INF / 5.0 = float:  -Infinity
230  228.    -INF % 5.0 = float:  NaN
231  229.    -INF + 5.0 = double: -Infinity
232  230.    -INF - 5.0 = double: -Infinity
233  231.    -INF * 5.0 = double: -Infinity
234  232.    -INF / 5.0 = double: -Infinity
235  233.    -INF % 5.0 = double: NaN
236  234.     (-INF == 5.0) = false
237  235.     (-INF != 5.0) = true
238  236.     (-INF <  5.0) = true
239  237.     (-INF <= 5.0) = true
240  238.     (-INF >  5.0) = false
241  239.     (-INF >= 5.0) = false
242  240.    !(-INF == 5.0) = true
243  241.    !(-INF != 5.0) = false
244  242.    !(-INF <  5.0) = false
245  243.    !(-INF <= 5.0) = false
246  244.    !(-INF >  5.0) = true
247  245.    !(-INF >= 5.0) = true
248  246.     (-INF == 5.0) = false
249  247.     (-INF != 5.0) = true
250  248.     (-INF <  5.0) = true
251  249.     (-INF <= 5.0) = true
252  250.     (-INF >  5.0) = false
253  251.     (-INF >= 5.0) = false
254  252.    !(-INF == 5.0) = true
255  253.    !(-INF != 5.0) = false
256  254.    !(-INF <  5.0) = false
257  255.    !(-INF <= 5.0) = false
258  256.    !(-INF >  5.0) = true
259  257.    !(-INF >= 5.0) = true
260  258.    ------------------- test -INF op value
261  259.    5.0 + -INF = float:  -Infinity
262  260.    5.0 - -INF = float:  Infinity
263  261.    5.0 * -INF = float:  -Infinity
264  262.    5.0 / -INF = float:  -0.0
265  263.    5.0 % -INF = float:  5.0
266  264.    5.0 + -INF = double: -Infinity
267  265.    5.0 - -INF = double: Infinity
268  266.    5.0 * -INF = double: -Infinity
269  267.    5.0 / -INF = double: -0.0
270  268.    5.0 % -INF = double: 5.0
271  269.     (5.0 == -INF) = false
272  270.     (5.0 != -INF) = true
273  271.     (5.0 <  -INF) = false
274  272.     (5.0 <= -INF) = false
275  273.     (5.0 >  -INF) = true
276  274.     (5.0 >= -INF) = true
277  275.    !(5.0 == -INF) = true
278  276.    !(5.0 != -INF) = false
279  277.    !(5.0 <  -INF) = true
280  278.    !(5.0 <= -INF) = true
281  279.    !(5.0 >  -INF) = false
282  280.    !(5.0 >= -INF) = false
283  281.     (5.0 == -INF) = false
284  282.     (5.0 != -INF) = true
285  283.     (5.0 <  -INF) = false
286  284.     (5.0 <= -INF) = false
287  285.     (5.0 >  -INF) = true
288  286.     (5.0 >= -INF) = true
289  287.    !(5.0 == -INF) = true
290  288.    !(5.0 != -INF) = false
291  289.    !(5.0 <  -INF) = true
292  290.    !(5.0 <= -INF) = true
293  291.    !(5.0 >  -INF) = false
294  292.    !(5.0 >= -INF) = false
295  293.    ------------------- test MAX op value
296  294.    MAX + 5.0 = float:  3.4028235E38
297  295.    MAX - 5.0 = float:  3.4028235E38
298  296.    MAX * 5.0 = float:  Infinity
299  297.    MAX / 5.0 = float:  6.805647E37
300  298.    MAX % 5.0 = float:  0.0
301  299.    MAX + 5.0 = double: 1.7976931348623157E308
302  300.    MAX - 5.0 = double: 1.7976931348623157E308
303  301.    MAX * 5.0 = double: Infinity
304  302.    MAX / 5.0 = double: 3.5953862697246315E307
305  303.    MAX % 5.0 = double: 3.0
306  304.    ------------------- test value op MAX
307  305.    5.0 + MAX = float:  3.4028235E38
308  306.    5.0 - MAX = float:  -3.4028235E38
309  307.    5.0 * MAX = float:  Infinity
310  308.    5.0 / MAX = float:  1.4693681E-38
311  309.    5.0 % MAX = float:  5.0
312  310.    5.0 + MAX = double: 1.7976931348623157E308
313  311.    5.0 - MAX = double: -1.7976931348623157E308
314  312.    5.0 * MAX = double: Infinity
315  313.    5.0 / MAX = double: 2.781342323134002E-308
316  314.    5.0 % MAX = double: 5.0
317  315.    ------------------- test MIN op value
318  316.    MIN + 5.0 = float:  5.0
319  317.    MIN - 5.0 = float:  -5.0
320  318.    MIN * 5.0 = float:  7.006492E-45
321  319.    MIN / 5.0 = float:  0.0
322  320.    MIN % 5.0 = float:  1.4012985E-45
323  321.    MIN + 5.0 = double: 5.0
324  322.    MIN - 5.0 = double: -5.0
325  323.    MIN * 5.0 = double: 2.5E-323
326  324.    MIN / 5.0 = double: 0.0
327  325.    MIN % 5.0 = double: 5.0E-324
328  326.    ------------------- test value op MIN
329  327.    5.0 + MIN = float:  5.0
330  328.    5.0 - MIN = float:  5.0
331  329.    5.0 * MIN = float:  7.006492E-45
332  330.    5.0 / MIN = float:  Infinity
333  331.    5.0 % MIN = float:  0.0
334  332.    5.0 + MIN = double: 5.0
335  333.    5.0 - MIN = double: 5.0
336  334.    5.0 * MIN = double: 2.5E-323
337  335.    5.0 / MIN = double: Infinity
338  336.    5.0 % MIN = double: 0.0
339  337.