1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
# Data file for mpc_mul
#
# Copyright (C) 2008, 2010 Philippe Th\'eveny, Andreas Enge, Paul Zimmermann
#
# This file is part of the MPC Library.
#
# The MPC Library is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or (at your
# option) any later version.
#
# The MPC Library is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
# License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with the MPC Library; see the file COPYING.LIB. If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA.
#
# The line format respects the parameter order in function prototype as
# follow:
#
# INEX_RE INEX_IM PREC_ROP_RE ROP_RE PREC_ROP_IM ROP_IM PREC_OP1_RE OP1_RE PREC_OP1_IM OP1_IM PREC_OP2_RE OP2_RE PREC_OP2_IM OP2_IM RND_RE RND_IM
#
# See add.dat for more details.
# special values (following ISO C99 standard, G.5.1)
0 0 53 nan 53 +inf 53 -inf 53 -inf 53 -inf 53 -inf N Z
0 0 53 nan 53 +inf 53 -inf 53 +inf 53 +1 53 -inf Z U
0 0 53 +inf 53 -inf 53 +inf 53 -inf 53 +inf 53 +0 U D
0 0 53 +inf 53 -inf 53 +inf 53 +inf 53 -0 53 -1 D N
0 0 53 -inf 53 +inf 53 -inf 53 -inf 53 -0 53 -1 N U
0 0 53 -inf 53 +inf 53 -inf 53 +inf 53 +inf 53 nan Z D
0 0 53 -inf 53 -inf 53 +inf 53 -inf 53 nan 53 -1 U N
0 0 53 nan 53 nan 53 +inf 53 +inf 53 -0 53 nan D Z
0 0 53 nan 53 nan 53 -inf 53 -inf 53 nan 53 nan N D
0 0 53 -inf 53 -inf 53 -1 53 -inf 53 +inf 53 -1 N D
0 0 53 -inf 53 nan 53 -inf 53 +1 53 +inf 53 -0 Z N
0 0 53 +inf 53 nan 53 +1 53 -inf 53 -0 53 +1 U Z
0 0 53 nan 53 nan 53 +inf 53 +1 53 -0 53 -0 D U
0 0 53 nan 53 -inf 53 -1 53 -inf 53 +inf 53 nan N N
0 0 53 nan 53 -inf 53 -inf 53 +1 53 nan 53 +1 Z Z
0 0 53 nan 53 nan 53 +1 53 -inf 53 -0 53 nan U U
0 0 53 nan 53 nan 53 +inf 53 +1 53 nan 53 nan D D
0 0 53 +inf 53 nan 53 -0 53 -inf 53 +0 53 +inf D D
0 0 53 -inf 53 nan 53 -inf 53 +0 53 +1 53 -0 N Z
0 0 53 nan 53 nan 53 +0 53 -inf 53 -0 53 -0 Z U
0 0 53 -inf 53 nan 53 +inf 53 +0 53 -inf 53 nan U D
0 0 53 -inf 53 nan 53 -0 53 -inf 53 nan 53 -1 D N
0 0 53 nan 53 nan 53 -inf 53 +0 53 +0 53 nan N U
0 0 53 nan 53 nan 53 +0 53 -inf 53 nan 53 nan Z D
0 0 53 +1 53 -0 53 +0 53 +1 53 -0 53 -1 Z D
0 0 53 -0 53 +0 53 -1 53 -0 53 +0 53 -0 U N
0 0 53 -inf 53 nan 53 -0 53 +1 53 nan 53 +inf D Z
0 0 53 nan 53 nan 53 +1 53 -0 53 -1 53 nan N D
0 0 53 nan 53 nan 53 +0 53 +1 53 nan 53 -0 Z N
0 0 53 nan 53 nan 53 -1 53 -0 53 nan 53 nan U Z
0 0 53 +0 53 +0 53 -0 53 +0 53 +0 53 -0 U Z
0 0 53 nan 53 nan 53 +0 53 -0 53 nan 53 -inf D U
0 0 53 nan 53 nan 53 +0 53 +0 53 -1 53 nan N N
0 0 53 nan 53 nan 53 -0 53 -0 53 nan 53 -0 Z Z
0 0 53 nan 53 nan 53 -0 53 +0 53 nan 53 nan U U
0 0 53 +inf 53 nan 53 nan 53 -inf 53 nan 53 +inf U U
0 0 53 -inf 53 nan 53 +inf 53 nan 53 -1 53 nan D D
0 0 53 nan 53 nan 53 nan 53 -inf 53 nan 53 -0 N Z
0 0 53 nan 53 nan 53 -inf 53 nan 53 nan 53 nan Z U
0 0 53 nan 53 nan 53 +1 53 nan 53 nan 53 -1 Z U
0 0 53 nan 53 nan 53 nan 53 +1 53 -0 53 nan U D
0 0 53 nan 53 nan 53 -1 53 nan 53 nan 53 nan D N
0 0 53 nan 53 nan 53 nan 53 +0 53 +0 53 nan D N
0 0 53 nan 53 nan 53 +0 53 nan 53 nan 53 nan N U
0 0 53 nan 53 nan 53 nan 53 nan 53 nan 53 nan N U
# pure real arguments
0 0 53 0x10000000000001p-52 53 -0 53 +1 53 -0 53 0x10000000000001p-52 53 -0 N N
0 0 53 0x10000000000001p-52 53 -0 53 +1 53 -0 53 0x10000000000001p-52 53 -0 Z Z
0 0 53 0x10000000000001p-52 53 -0 53 +1 53 -0 53 0x10000000000001p-52 53 -0 U U
0 0 53 -0x10000000000001p-52 53 -0 53 -1 53 -0 53 0x10000000000001p-52 53 -0 D D
# one pure real argument
0 0 53 0x10000000000001p-52 53 0x10000000000001p-52 53 +1 53 +1 53 0x10000000000001p-52 53 -0 N N
0 0 53 0x10000000000001p-52 53 -0x10000000000001p-51 53 +1 53 -2 53 0x10000000000001p-52 53 -0 Z Z
- + 53 -0x30000000000004p-52 53 0x30000000000004p-52 53 -3 53 +3 53 0x10000000000001p-52 53 +0 N N
+ - 53 -0x30000000000002p-52 53 0x30000000000002p-52 53 -3 53 +3 53 0x10000000000001p-52 53 +0 Z Z
+ + 53 -0x30000000000002p-52 53 0x30000000000004p-52 53 -3 53 +3 53 0x10000000000001p-52 53 +0 U U
- - 53 -0x30000000000004p-52 53 0x30000000000002p-52 53 -3 53 +3 53 0x10000000000001p-52 53 +0 D D
0 0 53 -0x10000000000001p-52 53 -0x10000000000001p-50 53 -1 53 -4 53 0x10000000000001p-52 53 +0 D D
0 0 53 +0 53 +0 53 +0 53 +0 53 0x10000000000001p-52 53 -1 N N
0 0 53 +0 53 -0 53 +0 53 -0 53 0x10000000000001p-52 53 -2 Z Z
0 0 53 +0 53 +0 53 +0 53 +0 53 0x10000000000001p-52 53 +3 U U
0 0 53 -0 53 -0 53 -0 53 -0 53 0x10000000000001p-52 53 +4 D D
# pure imaginary arguments
0 0 53 -0x10000000000001p-52 53 -0 53 -0 53 0x10000000000001p-52 53 -0 53 +1 N N
0 0 53 -0x10000000000001p-52 53 +0 53 +0 53 0x10000000000001p-52 53 -0 53 +1 Z Z
0 0 53 -0x10000000000001p-52 53 +0 53 +0 53 0x10000000000001p-52 53 -0 53 +1 U U
0 0 53 -0x10000000000001p-52 53 -0 53 -0 53 0x10000000000001p-52 53 -0 53 +1 D D
# one pure imaginary argument
0 0 53 -0x10000000000001p-52 53 -0x10000000000001p-52 53 -0 53 0x10000000000001p-52 53 -1 53 +1 N N
0 0 53 +0x10000000000001p-52 53 -0x10000000000001p-51 53 +0 53 0x10000000000001p-52 53 -2 53 -1 Z Z
+ - 53 0x30000000000004p-52 53 -0x30000000000004p-52 53 +0 53 0x10000000000001p-52 53 -3 53 -3 N N
- + 53 0x30000000000002p-52 53 -0x30000000000002p-52 53 +0 53 0x10000000000001p-52 53 -3 53 -3 Z Z
+ + 53 0x30000000000004p-52 53 -0x30000000000002p-52 53 +0 53 0x10000000000001p-52 53 -3 53 -3 U U
- - 53 0x30000000000002p-52 53 -0x30000000000004p-52 53 +0 53 0x10000000000001p-52 53 -3 53 -3 D D
0 0 53 +0x10000000000001p-52 53 -0x10000000000001p-50 53 -0 53 0x10000000000001p-52 53 -4 53 -1 D D
# big precision uses Karatsuba method
0 0 4096 0x1420176785BD601FC018AD36471p-96 4096 -0x1ECCDBDA38B2611A32848E7ADF43p-100 53 0x6B2E363676587p-44 53 0x1AC20AAC49ED37p-47 53 0x12264C57B44C6Bp-53 53 -0x138639A4B8D8B3p-50 N N
# Karatsuba case where x=0 since ad=bc: (1+i)^2 at artificially high
# precision so that Karatsuba is actually used.
0 0 4096 0 4096 2 4096 1 4096 1 4096 1 4096 1 N N
# trigger the line reducing prec_x to prec_u
0 0 4096 0 4096 2 40960 1 40960 1 40960 1 40960 1 N N
# another particular cases
+ + 6 -0x9p-497 6 0x33p-315 6 -0x1dp-73 6 0x3p148 6 0x11p-463 6 0x3p-645 N N
+ - 6 0x33p-315 6 0x9p-497 6 0x3p148 6 0x1dp-73 6 0x11p-463 6 0x3p-645 N N
0 0 4 0x1p-1902 4 0x3p-1085 4 -0x1p-892 4 -0x3p-75 4 -0x1p-1010 4 0 N N
# a few values, previously hard-coded in tmul.c
0 0 8 10 8 -5 8 4 8 3 8 1 8 -2 N N
+ + 27 0b1.10110000001100010010000000e-3 27 0b1.00111100000010100001011001e-1 27 0b1.11111011011000010101000000e-2 27 0b1.11010001010110111001110001e-3 27 0b1.10100101110110011011100100e-1 27 0b1.10111100011000001100110011e-1 N N
# check squares, copied from sqr.dat
+ - 53 0xfdbac097c8dc58p+2096 53 -0x7f6e5d4c3b2a2p+1036 53 -0xfedcba9876543p+1024 53 0x10000000000001p-42 53 -0xfedcba9876543p+1024 53 0x10000000000001p-42 U D
+ 0 30 309485009533114692573069312 30 18889465966662952943616 30 17592186044416 30 536870913 30 17592186044416 30 536870913 N N
0 0 4 0 4 2 4 1 4 1 4 1 4 1 N N
+ + 8 0b1.1000111e-3 8 0b1.1100111e-3 27 0b1.11111011011000010101000000e-2 27 0b1.11010001010110111001110001e-3 27 0b1.11111011011000010101000000e-2 27 0b1.11010001010110111001110001e-3 N N
? + 3464 inf 3464 inf 866 -0x2.5763c6519ef1510f8afa101a210b8030b1909cc17004db561a25d9b53e2c08c41c01e8bbac5af6299b9d8786030aa14943d841798c8c369287942e4d4cec42a60ab0922af931159805e631128e97f973754ad53972d5d320a651a3b4a667f0ef2b92dbd698d159c3642675140@192158913 866 -0xd.15f2d530934dd930d66e89d70762d2337a8f973dd6915eb6b532fd372fcc955df1d852632d4e46fe64154ceda991a1302caf1b0ec622497e3e5724dd05b1c89a06e28d7e18e8af58f5ff4c9998cb31714688867524f41e0b31e847c1bf40de5127f858069998efd7c3e599080@192158893 866 -0x2.5763c6519ef1510f8afa101a210b8030b1909cc17004db561a25d9b53e2c08c41c01e8bbac5af6299b9d8786030aa14943d841798c8c369287942e4d4cec42a60ab0922af931159805e631128e97f973754ad53972d5d320a651a3b4a667f0ef2b92dbd698d159c3642675140@192158913 866 -0xd.15f2d530934dd930d66e89d70762d2337a8f973dd6915eb6b532fd372fcc955df1d852632d4e46fe64154ceda991a1302caf1b0ec622497e3e5724dd05b1c89a06e28d7e18e8af58f5ff4c9998cb31714688867524f41e0b31e847c1bf40de5127f858069998efd7c3e599080@192158893 N N
? + 2256 0 2256 -0 564 0xc.87999bfd1cb1a64288881e214b7cf1af979863b23c030b79c4a8bebb39177967608388a2e4df527977e7755a25df8af8f72fdd6dd2f42bd00de83088b4e9b59ce85caf2e6b0c0@-184298749 564 -0x2.5109af459d4daf357e09475ec991cdc9b02c8f7dfacdc060d2a24710d09c997f8aea6dbd46f10828c30b583fdcc90d7dcbb895689d594d3813db40784d2309e450d1fb6e38da8@-184298726 564 0xc.87999bfd1cb1a64288881e214b7cf1af979863b23c030b79c4a8bebb39177967608388a2e4df527977e7755a25df8af8f72fdd6dd2f42bd00de83088b4e9b59ce85caf2e6b0c0@-184298749 564 -0x2.5109af459d4daf357e09475ec991cdc9b02c8f7dfacdc060d2a24710d09c997f8aea6dbd46f10828c30b583fdcc90d7dcbb895689d594d3813db40784d2309e450d1fb6e38da8@-184298726 N N
|