head 1.1; branch 1.1.1; access; symbols netbsd-10-2-RELEASE:1.1.1.2 netbsd-9-5-RELEASE:1.1.1.2 netbsd-11-0-RELEASE:1.1.1.3 netbsd-11-0-RC7:1.1.1.3 netbsd-11-0-RC6:1.1.1.3 netbsd-11-0-RC5:1.1.1.3 netbsd-11-0-RC4:1.1.1.3 netbsd-11-0-RC3:1.1.1.3 netbsd-11-0-RC2:1.1.1.3 netbsd-11-0-RC1:1.1.1.3 perseant-exfatfs-base-20250801:1.1.1.3 netbsd-11:1.1.1.3.0.4 netbsd-11-base:1.1.1.3 netbsd-10-1-RELEASE:1.1.1.2 perseant-exfatfs-base-20240630:1.1.1.3 perseant-exfatfs:1.1.1.3.0.2 perseant-exfatfs-base:1.1.1.3 netbsd-8-3-RELEASE:1.1.1.1 netbsd-9-4-RELEASE:1.1.1.2 netbsd-10-0-RELEASE:1.1.1.2 netbsd-10-0-RC6:1.1.1.2 netbsd-10-0-RC5:1.1.1.2 netbsd-10-0-RC4:1.1.1.2 netbsd-10-0-RC3:1.1.1.2 netbsd-10-0-RC2:1.1.1.2 netbsd-10-0-RC1:1.1.1.2 mpc-1-3-1:1.1.1.3 netbsd-10:1.1.1.2.0.10 netbsd-10-base:1.1.1.2 netbsd-9-3-RELEASE:1.1.1.2 mpc-1-2-1:1.1.1.2 cjep_sun2x-base1:1.1.1.2 cjep_sun2x:1.1.1.2.0.8 cjep_sun2x-base:1.1.1.2 cjep_staticlib_x-base1:1.1.1.2 netbsd-9-2-RELEASE:1.1.1.2 cjep_staticlib_x:1.1.1.2.0.6 cjep_staticlib_x-base:1.1.1.2 netbsd-9-1-RELEASE:1.1.1.2 mpc-1-2-0:1.1.1.2 phil-wifi-20200421:1.1.1.2 phil-wifi-20200411:1.1.1.2 is-mlppp:1.1.1.2.0.4 is-mlppp-base:1.1.1.2 phil-wifi-20200406:1.1.1.2 netbsd-8-2-RELEASE:1.1.1.1 netbsd-9-0-RELEASE:1.1.1.2 netbsd-9-0-RC2:1.1.1.2 netbsd-9-0-RC1:1.1.1.2 phil-wifi-20191119:1.1.1.2 netbsd-9:1.1.1.2.0.2 netbsd-9-base:1.1.1.2 phil-wifi-20190609:1.1.1.2 netbsd-8-1-RELEASE:1.1.1.1 netbsd-8-1-RC1:1.1.1.1 pgoyette-compat-merge-20190127:1.1.1.1.28.1 pgoyette-compat-20190127:1.1.1.2 pgoyette-compat-20190118:1.1.1.2 pgoyette-compat-1226:1.1.1.2 pgoyette-compat-1126:1.1.1.2 pgoyette-compat-1020:1.1.1.2 pgoyette-compat-0930:1.1.1.2 pgoyette-compat-0906:1.1.1.2 mpc-1-1-0:1.1.1.2 netbsd-7-2-RELEASE:1.1.1.1 pgoyette-compat-0728:1.1.1.1 netbsd-8-0-RELEASE:1.1.1.1 phil-wifi:1.1.1.1.0.30 phil-wifi-base:1.1.1.1 pgoyette-compat-0625:1.1.1.1 netbsd-8-0-RC2:1.1.1.1 pgoyette-compat-0521:1.1.1.1 pgoyette-compat-0502:1.1.1.1 pgoyette-compat-0422:1.1.1.1 netbsd-8-0-RC1:1.1.1.1 pgoyette-compat-0415:1.1.1.1 pgoyette-compat-0407:1.1.1.1 pgoyette-compat-0330:1.1.1.1 pgoyette-compat-0322:1.1.1.1 pgoyette-compat-0315:1.1.1.1 netbsd-7-1-2-RELEASE:1.1.1.1 pgoyette-compat:1.1.1.1.0.28 pgoyette-compat-base:1.1.1.1 netbsd-7-1-1-RELEASE:1.1.1.1 matt-nb8-mediatek:1.1.1.1.0.26 matt-nb8-mediatek-base:1.1.1.1 mpc-1-0-3:1.1.1.1 perseant-stdc-iso10646:1.1.1.1.0.24 perseant-stdc-iso10646-base:1.1.1.1 netbsd-8:1.1.1.1.0.22 netbsd-8-base:1.1.1.1 prg-localcount2-base3:1.1.1.1 prg-localcount2-base2:1.1.1.1 prg-localcount2-base1:1.1.1.1 prg-localcount2:1.1.1.1.0.20 prg-localcount2-base:1.1.1.1 pgoyette-localcount-20170426:1.1.1.1 bouyer-socketcan-base1:1.1.1.1 pgoyette-localcount-20170320:1.1.1.1 netbsd-7-1:1.1.1.1.0.18 netbsd-7-1-RELEASE:1.1.1.1 netbsd-7-1-RC2:1.1.1.1 netbsd-7-nhusb-base-20170116:1.1.1.1 bouyer-socketcan:1.1.1.1.0.16 bouyer-socketcan-base:1.1.1.1 pgoyette-localcount-20170107:1.1.1.1 netbsd-7-1-RC1:1.1.1.1 pgoyette-localcount-20161104:1.1.1.1 netbsd-7-0-2-RELEASE:1.1.1.1 localcount-20160914:1.1.1.1 netbsd-7-nhusb:1.1.1.1.0.14 netbsd-7-nhusb-base:1.1.1.1 pgoyette-localcount-20160806:1.1.1.1 pgoyette-localcount-20160726:1.1.1.1 pgoyette-localcount:1.1.1.1.0.12 pgoyette-localcount-base:1.1.1.1 netbsd-7-0-1-RELEASE:1.1.1.1 netbsd-7-0:1.1.1.1.0.10 netbsd-7-0-RELEASE:1.1.1.1 netbsd-7-0-RC3:1.1.1.1 netbsd-7-0-RC2:1.1.1.1 netbsd-7-0-RC1:1.1.1.1 tls-maxphys-base:1.1.1.1 tls-maxphys:1.1.1.1.0.8 netbsd-7:1.1.1.1.0.6 netbsd-7-base:1.1.1.1 yamt-pagecache:1.1.1.1.0.4 yamt-pagecache-base9:1.1.1.1 tls-earlyentropy:1.1.1.1.0.2 tls-earlyentropy-base:1.1.1.1 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1 riastradh-drm2-base3:1.1.1.1 mpc-1-0-1:1.1.1.1 mpc:1.1.1; locks; strict; comment @# @; 1.1 date 2013.11.28.10.32.39; author mrg; state Exp; branches 1.1.1.1; next ; commitid q22cPE2uoE8G02fx; 1.1.1.1 date 2013.11.28.10.32.39; author mrg; state Exp; branches 1.1.1.1.4.1 1.1.1.1.8.1 1.1.1.1.28.1 1.1.1.1.30.1; next 1.1.1.2; commitid q22cPE2uoE8G02fx; 1.1.1.2 date 2018.09.04.04.28.13; author mrg; state Exp; branches; next 1.1.1.3; commitid oOC0vQcFoJw32KQA; 1.1.1.3 date 2023.03.05.22.35.52; author mrg; state Exp; branches; next ; commitid 51wiuXc1hHJseZfE; 1.1.1.1.4.1 date 2013.11.28.10.32.39; author yamt; state dead; branches; next 1.1.1.1.4.2; commitid nx2BSsHy0NPeAxBx; 1.1.1.1.4.2 date 2014.05.22.14.09.14; author yamt; state Exp; branches; next ; commitid nx2BSsHy0NPeAxBx; 1.1.1.1.8.1 date 2013.11.28.10.32.39; author tls; state dead; branches; next 1.1.1.1.8.2; commitid jTnpym9Qu0o4R1Nx; 1.1.1.1.8.2 date 2014.08.20.00.00.02; author tls; state Exp; branches; next ; commitid jTnpym9Qu0o4R1Nx; 1.1.1.1.28.1 date 2018.09.06.06.53.44; author pgoyette; state Exp; branches; next ; commitid HCi1bXD317XIK0RA; 1.1.1.1.30.1 date 2019.06.10.22.02.24; author christos; state Exp; branches; next ; commitid jtc8rnCzWiEEHGqB; desc @@ 1.1 log @Initial revision @ text @# Data file for mpc_mul # # Copyright (C) 2008, 2010, 2011, 2012 INRIA # # This file is part of GNU MPC. # # GNU MPC 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 3 of the License, or (at your #o ption) any later version. # # GNU MPC 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 this program. If not, see http://www.gnu.org/licenses/ . # # 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 particular values 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 0 0 15 2 15 0 15 -1 15 -1 15 -1 15 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 # intermediate over- and underflows - + 100 -inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@225000750 100 0x2@@225000750 N N - + 100 -inf 100 +inf 100 0x1@@225000750 100 0x2@@225000750 100 0x1@@125000750 100 0x3@@125000750 N N - - 100 -inf 100 -inf 100 0x1@@225000750 100 -0x2@@225000750 100 0x1@@125000750 100 -0x3@@125000750 N N + - 100 -0 100 +0 100 0x1@@-125000750 100 0x3@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 100 -0 100 +0 100 0x1@@-225000750 100 0x2@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N - - 100 +0 100 +0 100 0x3@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N - - 100 +0 100 +0 100 0x4@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 100 -0 100 +0 100 0x2@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N 0 - 100 +0 100 +0 100 0x1@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x1@@-125000750 N N 0 + 100 +0 100 +inf 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 0x1@@225000750 N N + 0 100 +inf 100 +0 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 -0x1@@225000750 N N # the same with directed rounding - + 10 -inf 10 +inf 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 D U + - 10 -0b1.111111111e1073741822 10 0b1.111111111e1073741822 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 U D + - 10 -0 10 +0 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 U D - + 10 -0b1e-1073741824 10 0b1e-1073741824 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 D U # starting with Karatsuba - + 10000 -inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@225000750 100 0x2@@225000750 N N - + 10000 -inf 100 +inf 100 0x1@@225000750 100 0x2@@225000750 100 0x1@@125000750 100 0x3@@125000750 N N - - 10000 -inf 100 -inf 100 0x1@@225000750 100 -0x2@@225000750 100 0x1@@125000750 100 -0x3@@125000750 N N + - 10000 -0 100 +0 100 0x1@@-125000750 100 0x3@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 10000 -0 100 +0 100 0x1@@-225000750 100 0x2@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N - - 10000 +0 100 +0 100 0x3@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N - - 10000 +0 100 +0 100 0x4@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 10000 -0 100 +0 100 0x2@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N 0 - 10000 +0 100 +0 100 0x1@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x1@@-125000750 N N 0 + 10000 +0 100 +inf 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 0x1@@225000750 N N + 0 10000 +inf 100 +0 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 -0x1@@225000750 N N + + 10000 +inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@143434706 100 0x2@@143434705 N N # improve code coverage: case where sign_x==0 in mpc_mul_karatsuba 0 0 2000 6 2000 8 2000 4 2000 2 2000 2 2000 1 N N 0 0 2000 0 2000 4 2000 2 2000 2 2000 1 2000 1 N N + 0 2 1 2 0x2p-536870913 2 1 2 0x1p-536870913 2 1 2 0x1p-536870913 N N 0 - 2 0 2 1 2 0x1p-536870913 2 1 2 1 2 0x1p-536870913 N N @ 1.1.1.1 log @initial import of MPC 1.0.1 package. changes since 0.9: Changes in version 1.0.1: - Switched to automake 1.11.6, see https://lists.gnu.org/archive/html/automake/2012-07/msg00023.html - #14669: Fixed extraction of CC from gmp.h - Fixed case of intermediate zero real or imaginary part in mpc_fma, found by hydra with GMP_CHECK_RANDOMIZE=1346362345 Changes in version 1.0: - First release as a GNU package - License change: LGPLv3+ for code, GFDLv1.3+ (with no invariant sections) for documentation - 100% of all lines are covered by tests - Functions renamed: mpc_mul_2exp to mpc_mul_2ui, mpc_div_2exp to mpc_div_2ui - 0^0, which returned (NaN,NaN) previously, now returns (1,+0) - Removed compatibility with K&R compilers, untestable due to lack of such compilers - New functions: mpc_log10, mpc_mul_2si, mpc_div_2si - Speed-ups: - mpc_fma - Bug fixes: - mpc_div and mpc_norm now return a value indicating the effective rounding direction, as the other functions - mpc_mul, mpc_sqr and mpc_norm now return correct results even if there are over- or underflows during the computation - mpc_asin, mpc_proj, mpc_sqr: Wrong result when input variable has infinite part and equals output variable is corrected - mpc_fr_sub: Wrong return value for imaginary part is corrected @ text @@ 1.1.1.1.30.1 log @Sync with HEAD @ text @a138 4 # the following is the square (x+i*y)^2 where |x| >= 2.34*2^768635652 and # |y| <= 13.09*2^768635572, thus x^2 >= 5.47*2^1537271304 and # y^2 <= 171.34*2^1537271144 < x*2^(-155) thus x^2-y^2 should overflow # with the default emax = 1073741821 d156 1 a156 3 # the following test assumes the maximum MPFR exponent is 1073741821 # and the minimum exponent is -1073741821 + - 10 -0b1.111111111e1073741820 10 0b1.111111111e1073741820 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 U D d158 1 a158 1 - + 10 -0b1e-1073741822 10 0b1e-1073741822 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 D U @ 1.1.1.1.28.1 log @Sync with HEAD Resolve a couple of conflicts (result of the uimin/uimax changes) @ text @a138 4 # the following is the square (x+i*y)^2 where |x| >= 2.34*2^768635652 and # |y| <= 13.09*2^768635572, thus x^2 >= 5.47*2^1537271304 and # y^2 <= 171.34*2^1537271144 < x*2^(-155) thus x^2-y^2 should overflow # with the default emax = 1073741821 d156 1 a156 3 # the following test assumes the maximum MPFR exponent is 1073741821 # and the minimum exponent is -1073741821 + - 10 -0b1.111111111e1073741820 10 0b1.111111111e1073741820 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 U D d158 1 a158 1 - + 10 -0b1e-1073741822 10 0b1e-1073741822 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 D U @ 1.1.1.2 log @import MPC 1.1.0. from their NEWS: Changes in version 1.1.0: - Minimally required library versions: GMP 5.0.0 and MPFR 3.0.0 - Fixed issues with MPFR 4.0.0 - New functions: mpc_cmp_abs, mpc_rootofunity - Improved speed for corner cases of mpc_asin, mpc_sin, see http://lists.gforge.inria.fr/pipermail/mpc-discuss/2013-December/001266.html - Rewrite of the testing framework - New mpcbench tool, used with "make bench" - Fixed handling of over- and underflows with directed rounding in the "other direction" for mpc_cos, mpc_sin, mpc_exp and mpc_pow, see http://lists.gforge.inria.fr/pipermail/mpc-discuss/2015-March/001336.html - Fixed a bug in mpc_atan(0,y) with |y| near 1, see http://lists.gforge.inria.fr/pipermail/mpc-discuss/2017-March/001404.html @ text @a138 4 # the following is the square (x+i*y)^2 where |x| >= 2.34*2^768635652 and # |y| <= 13.09*2^768635572, thus x^2 >= 5.47*2^1537271304 and # y^2 <= 171.34*2^1537271144 < x*2^(-155) thus x^2-y^2 should overflow # with the default emax = 1073741821 d156 1 a156 3 # the following test assumes the maximum MPFR exponent is 1073741821 # and the minimum exponent is -1073741821 + - 10 -0b1.111111111e1073741820 10 0b1.111111111e1073741820 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 U D d158 1 a158 1 - + 10 -0b1e-1073741822 10 0b1e-1073741822 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 D U @ 1.1.1.3 log @initial import of mpc 1.3.1. changes from 1.2.1 include: New function: mpc_agm New rounding modes "away from zero", indicated by the letter "A" and corresponding to MPFR_RNDA on the designated real or imaginary part. New experimental ball arithmetic. New experimental function: mpc_eta_fund Bug fixes: - mpc_asin for asin(z) with small |Re(z)| and tiny |Im(z)| - mpc_pow_fr: sign of zero part of result when the base has up to sign the same real and imaginary part, and the exponent is an even positive integer - mpc_fma: the returned int value was incorrect in some cases (indicating whether the rounded real/imaginary parts were smaller/equal/greater than the exact values), but the computed complex value was correct. - Remove the unmaintained Makefile.vc; build files for Visual Studio are maintained independently by Brian Gladman. @ text @d3 1 a3 1 # Copyright (C) 2008, 2010, 2011, 2012, 2022 INRIA a159 1 - + 10 -inf 10 +inf 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 A A a164 1 - + 10 -0b1e-1073741822 10 0b1e-1073741822 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 A A a184 3 # error in sign of 0 with exact Karatsuba found on 2022-11-30 0 0 1473 -50 1473 +0 20 1 20 2 20 -10 20 20 N N @ 1.1.1.1.8.1 log @file mul.dat was added on branch tls-maxphys on 2014-08-20 00:00:02 +0000 @ text @d1 178 @ 1.1.1.1.8.2 log @Rebase to HEAD as of a few days ago. @ text @a0 178 # Data file for mpc_mul # # Copyright (C) 2008, 2010, 2011, 2012 INRIA # # This file is part of GNU MPC. # # GNU MPC 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 3 of the License, or (at your #o ption) any later version. # # GNU MPC 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 this program. If not, see http://www.gnu.org/licenses/ . # # 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 particular values 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 0 0 15 2 15 0 15 -1 15 -1 15 -1 15 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 # intermediate over- and underflows - + 100 -inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@225000750 100 0x2@@225000750 N N - + 100 -inf 100 +inf 100 0x1@@225000750 100 0x2@@225000750 100 0x1@@125000750 100 0x3@@125000750 N N - - 100 -inf 100 -inf 100 0x1@@225000750 100 -0x2@@225000750 100 0x1@@125000750 100 -0x3@@125000750 N N + - 100 -0 100 +0 100 0x1@@-125000750 100 0x3@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 100 -0 100 +0 100 0x1@@-225000750 100 0x2@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N - - 100 +0 100 +0 100 0x3@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N - - 100 +0 100 +0 100 0x4@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 100 -0 100 +0 100 0x2@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N 0 - 100 +0 100 +0 100 0x1@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x1@@-125000750 N N 0 + 100 +0 100 +inf 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 0x1@@225000750 N N + 0 100 +inf 100 +0 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 -0x1@@225000750 N N # the same with directed rounding - + 10 -inf 10 +inf 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 D U + - 10 -0b1.111111111e1073741822 10 0b1.111111111e1073741822 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 U D + - 10 -0 10 +0 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 U D - + 10 -0b1e-1073741824 10 0b1e-1073741824 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 D U # starting with Karatsuba - + 10000 -inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@225000750 100 0x2@@225000750 N N - + 10000 -inf 100 +inf 100 0x1@@225000750 100 0x2@@225000750 100 0x1@@125000750 100 0x3@@125000750 N N - - 10000 -inf 100 -inf 100 0x1@@225000750 100 -0x2@@225000750 100 0x1@@125000750 100 -0x3@@125000750 N N + - 10000 -0 100 +0 100 0x1@@-125000750 100 0x3@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 10000 -0 100 +0 100 0x1@@-225000750 100 0x2@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N - - 10000 +0 100 +0 100 0x3@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N - - 10000 +0 100 +0 100 0x4@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 10000 -0 100 +0 100 0x2@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N 0 - 10000 +0 100 +0 100 0x1@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x1@@-125000750 N N 0 + 10000 +0 100 +inf 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 0x1@@225000750 N N + 0 10000 +inf 100 +0 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 -0x1@@225000750 N N + + 10000 +inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@143434706 100 0x2@@143434705 N N # improve code coverage: case where sign_x==0 in mpc_mul_karatsuba 0 0 2000 6 2000 8 2000 4 2000 2 2000 2 2000 1 N N 0 0 2000 0 2000 4 2000 2 2000 2 2000 1 2000 1 N N + 0 2 1 2 0x2p-536870913 2 1 2 0x1p-536870913 2 1 2 0x1p-536870913 N N 0 - 2 0 2 1 2 0x1p-536870913 2 1 2 1 2 0x1p-536870913 N N @ 1.1.1.1.4.1 log @file mul.dat was added on branch yamt-pagecache on 2014-05-22 14:09:14 +0000 @ text @d1 178 @ 1.1.1.1.4.2 log @sync with head. for a reference, the tree before this commit was tagged as yamt-pagecache-tag8. this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments") @ text @a0 178 # Data file for mpc_mul # # Copyright (C) 2008, 2010, 2011, 2012 INRIA # # This file is part of GNU MPC. # # GNU MPC 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 3 of the License, or (at your #o ption) any later version. # # GNU MPC 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 this program. If not, see http://www.gnu.org/licenses/ . # # 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 particular values 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 0 0 15 2 15 0 15 -1 15 -1 15 -1 15 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 # intermediate over- and underflows - + 100 -inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@225000750 100 0x2@@225000750 N N - + 100 -inf 100 +inf 100 0x1@@225000750 100 0x2@@225000750 100 0x1@@125000750 100 0x3@@125000750 N N - - 100 -inf 100 -inf 100 0x1@@225000750 100 -0x2@@225000750 100 0x1@@125000750 100 -0x3@@125000750 N N + - 100 -0 100 +0 100 0x1@@-125000750 100 0x3@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 100 -0 100 +0 100 0x1@@-225000750 100 0x2@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N - - 100 +0 100 +0 100 0x3@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N - - 100 +0 100 +0 100 0x4@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 100 -0 100 +0 100 0x2@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N 0 - 100 +0 100 +0 100 0x1@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x1@@-125000750 N N 0 + 100 +0 100 +inf 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 0x1@@225000750 N N + 0 100 +inf 100 +0 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 -0x1@@225000750 N N # the same with directed rounding - + 10 -inf 10 +inf 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 D U + - 10 -0b1.111111111e1073741822 10 0b1.111111111e1073741822 10 0x1@@125000750 10 0x3@@125000750 10 0x1@@225000750 10 0x2@@225000750 U D + - 10 -0 10 +0 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 U D - + 10 -0b1e-1073741824 10 0b1e-1073741824 10 0x1@@-125000750 10 0x3@@-125000750 10 0x1@@-225000750 10 0x2@@-225000750 D U # starting with Karatsuba - + 10000 -inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@225000750 100 0x2@@225000750 N N - + 10000 -inf 100 +inf 100 0x1@@225000750 100 0x2@@225000750 100 0x1@@125000750 100 0x3@@125000750 N N - - 10000 -inf 100 -inf 100 0x1@@225000750 100 -0x2@@225000750 100 0x1@@125000750 100 -0x3@@125000750 N N + - 10000 -0 100 +0 100 0x1@@-125000750 100 0x3@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 10000 -0 100 +0 100 0x1@@-225000750 100 0x2@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N - - 10000 +0 100 +0 100 0x3@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N - - 10000 +0 100 +0 100 0x4@@-125000750 100 0x1@@-125000750 100 0x1@@-225000750 100 0x2@@-225000750 N N + - 10000 -0 100 +0 100 0x2@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x3@@-125000750 N N 0 - 10000 +0 100 +0 100 0x1@@-225000750 100 0x1@@-225000750 100 0x1@@-125000750 100 0x1@@-125000750 N N 0 + 10000 +0 100 +inf 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 0x1@@225000750 N N + 0 10000 +inf 100 +0 100 0x1@@125000750 100 0x1@@125000750 100 0x1@@225000750 100 -0x1@@225000750 N N + + 10000 +inf 100 +inf 100 0x1@@125000750 100 0x3@@125000750 100 0x1@@143434706 100 0x2@@143434705 N N # improve code coverage: case where sign_x==0 in mpc_mul_karatsuba 0 0 2000 6 2000 8 2000 4 2000 2 2000 2 2000 1 N N 0 0 2000 0 2000 4 2000 2 2000 2 2000 1 2000 1 N N + 0 2 1 2 0x2p-536870913 2 1 2 0x1p-536870913 2 1 2 0x1p-536870913 N N 0 - 2 0 2 1 2 0x1p-536870913 2 1 2 1 2 0x1p-536870913 N N @